14 julio 2017

Viernes tecnológicos: un webhosting en casita


Iba a escribir de otra cosa pero me entusiasmé con la instalación del servidor Apache, así es que haremos cambio de tema por hoy. Esta misma entrada está en un blog de Wordpress que pueden ver haciendo clic aquí. No se cuantas conexiones aguantará con mi famélico ancho de banda así es que les quiero pedir un gran favor: hagan clic en el link y si pueden conectarse dejen un comentario allá (se comenta igual que en este blog), si no pueden conectarse dejen el comentario acá, esa información me ayudaría muchísimo. En fin, aquí va mi entrada de hoy, que está repetida en el blog de Wordpress con hosting en mi casa.

Esta es mi primera entrada de este experimento con un servidor casero de la Raspberry Pi veremos como funciona.

Lo que hice fue instalar un servidor Apache, la base de datos MySql y un sistema de DNS dinámicas que permite tener acceso a mi equipo desde cualquier parte del mundo donde tenga Internet, esto no parece muy impresionante pero si lo es, como trataré de explicar en seguida.

Hosting
Las páginas web, blogs y todo lo que vemos en la web está alojado en los discos de los servidores de los proveedores de hosting de Internet. Por ejemplo mi página http://bradanovic.cl está alojada en un servidor ubicado en Nueva York (con el alto auspicio de mi buen amigo Logan Susnik), mi otro blog está en los servidores de Google, etc. Así, Internet es una “nube de redes” que se pueden interconectar y la información está guardada en los servidores de los servicios de hosting mientras que en nuestra casa tenemos nuestra red privada donde están conectados nuestros equipos. En Internet cada uno de los millones de equipos conectados tiene un número único compuesto de cuatro grupos separados por puntos, esa es nuestra IP pública, que nos entrega nuestro proveedor de Internet, por ejemplo la dirección pública de la conexión de mi casa ahora es 181.72.92.70.


Pero dentro de mi casa hay, en estos momentos, 7 equipos conectados a mi red privada: el laptop con que escribo ahora, el de la Pilar, el del Tomás Jr., la Raspberry y 3 teléfonos. Esos equipos tienen direcciones IP que son válidas solo dentro de mi red privada, por ejemplo la Raspberry es 192.168.0.21, mi laptop 192.168.0.13, etc.. Todas las direcciones dentro de mi casa (y de cualquier red privada) son de la forma 192.168.x.x. El router 181.72.92.70 es la puerta de entrada o perro guardián que cuida que nadie pueda entrar a mis equipos sin permiso.


Las IP privadas no son fijas
Ok, tenemos entonces una red privada e Internet con sus millones de equipos en todo el mundo. Como las posibles direcciones de Internet no son infinitas, a cada proveedor de Internet le dan cierto rango para que le asigne a los router de sus clientes, entonces los proveedores tienen un sistema que va repartiendo las IP a los clientes a medida que las necesitan. Los clientes que quieren una IP fija, que no cambie, deben pagar mucho más que nosotros los perejiles que usamos el sistema DHCP, que es como se llama esta distribución a medida que se necesitan. Entonce la conexión de mi casa hoy tiene la IP 181.72.92.70, pero en un rato más o mañana tendrá otra. Ese es el problema cuando queremos tener un servidor en nuestra casa.

La Raspberry Pi es especial como servidor pequeño, porque gasta un mínimo de energía eléctrica, no se calienta y se puede dejar encendida por meses o años sin problema, el problema ocurre cuando me cambian la IP ¿como voy a saber donde conectarme si el proveedor cambia la IP a cada rato?

Servicio de DNS dinámico
Para eso existen los servicios de DDNS (o DNS dinámicas). Primero veamos que es un DNS: simplificando son los nombres de dominio, como bradanovic.cl, tombrad.dynu.net, google.com, etc. Son nombres que nos evitan tener que memorizar los números de las IP. Un DNS (servidor de nombres de dominio) es una especie de diccionario electrónico que toma un nombre y lo convierte en su IP y viceversa, es como -hoy obsoleta- la guía de teléfonos.

Un servicio DDNS instala un programa en la Raspberry que verifica cada 5 minutos nuestra IP y le avisa a un servidor DNS, ellos me dan un nombre de dominio que no cambia nunca tombrad.dynu.net en mi caso y se preocupan que la IP se vaya actualizando cada vez que cambia.

El perro guardián
Y algo que se me olvidaba, para que el asunto funcione y mi DNS tombrad.dynu.net sepa que tiene que ir hacia las Raspberry y no a ninguno de los otros equipos conectados, tengo que hacer dos cosas: primero fijar una dirección para la Raspberry en el router, que se mantenga igual aunque el router cambie la IP de Raspberry y luego "abrir el puerto" 80, que es el que usa en servidor Apache para comunicarse, así, el router que es mi perro guardián, dejará pasar peticiones por el puerto 80 hacia mi red privada.

Hay varios servicios de DDNS, algunos pagados y otros gratis, yo uso uno gratis de Dynamic DNS Service que parece bastante bueno y ahora lo estoy probando. En eso su ayuda sería muy valiosa: si dejan un comentario en este blog de WordPress me podría hacer una idea de cuanto soporta mi conexión sin colapsar, si no pueden entrar al blog de WordPress les agradecería un comentario en Blogger diciéndome que no se conectó.

Una aplicación interesante
¿Y para que sirve todo esto? Ni se imaginan para todo lo que podría servir, además de poner un blog o tonteras por el estilo, mi próximo paso será tratar de comandar unos relés eléctricos usando la Raspberry para enviar señales de control desde cualquier lugar del mundo a mi casa. Así podría prender las luces desde Tacna, comandar cámaras de seguridad y si entra un ladrón hacer explotar una bomba de tamaño mediano -suficiente para mutilarlo, sería un juego de niños, podría hacerlo desde Tacna, Nueva York o desde el Lejano Oriente. Michael Townley debe estar encantado jugando con su Arduino, estoy seguro de eso,

22 comentarios:

  1. No pude entrar. Carga hasta cierto punto y la carga de la pagina se queda pegada.

    ResponderBorrar
  2. A mí me pasó lo mismo que a Sergio Meza. No pude entrar ...

    ResponderBorrar
  3. Pude entrar sin problemas y leer el artículo completo.

    ResponderBorrar
  4. Recien me conecté y me encontré con esta joya... me recordó mis años de redes en el CFT. ya quiero probarlo!

    ResponderBorrar
  5. El ingreso a wordpress es lento. Al tratar de comentar me da un mensaje de error, indicando que la dirección está errónea, después de esperar bastante en comparación al ingreso a este blog y su sección de comentarios.

    ResponderBorrar
  6. "It Works!" Dijo San Apache.

    A todo esto, sugiero que en algún momento exista un compilado de este blog para quienes queramos seguir leyéndolo en donde no haya conexión, sea en la Antártica, Isla de Pascua, El norte de Canadá o la punta del cerro. Es algo que muchos agradeceríamos.

    ResponderBorrar
  7. entre mas lento que un bolero eso sí y cargo todo el texto si tienes imagenes no las ví ... saludos

    ResponderBorrar
  8. Entre rápido y sin problemas a la pagina del link, cargando solo el texto. Al marcar letras azules o comentar me indica error y me manda a la página de wordpress. Saludos

    ResponderBorrar
  9. Hola Tomás, soy Jorval, estoy en un computador público y me conecté sin problemas, pero al tratar de hacerte un comentario en ¡Alo... me salió un mensaje de error. Mas rato probaré también desde mi computador. Saludos.

    ResponderBorrar
  10. Entra pero al clikear alega que http://192.168.0.21/ tarda demasiado en responder

    ResponderBorrar
  11. Entré al servidor, pero lo despliega en html estándar, sin CSS ni JS, lo que probablemente se deba a restricciones de mi salida a internet.

    Demoró un poco, pero cargó. Claro que sin CSS ni JS, no puedo enviar comentarios por allá.

    Saludos cordiales,
    JMS.

    ResponderBorrar
  12. Amigos muchísimas gracias!
    Veo que funciona todo, lo que le pasó a Franco, Sergio y WIlson que no pudieron entrar y Gonzalo, Rolando que demora mucho son problemas de mi raquítico ancho de banda (solo 6Mbs de bajada y 0.7 de subida, apenas). Me imagino que basta con que se junten 2 o 3 al mismo tiempo y mi suer duer se vuelve loco.

    Muy interesante el comentario de JMS, es un asunto de permisos sin duda, yo tuve que cambiar permisos con "chmod", "chown", "chgrp" para subir el Wordpress pero como soy bastante ignorante en asuntos de seguridad de servidores, prefiero dejarlo hasta ahí nomás. En todo caso yo si puedo colocar comentarios pero es medio peligroso ponerse a abrir las puertas a mi red privada sin conocer bien lo que estoy haciendo.

    ResponderBorrar
  13. Recibí un comentario de Julio Costa por FB, corroborado por Cherubini y me di cuenta que los links de Wordpress no apuntan a mi dominio tombrad.dynu.net, sino a mi dirección privada 192.168.0.2, o sea es lógico que nadie pueda hacer comentarios fuera de mi red! Tendría que arreglar eso en el Wordpress, veré si encuentro como se hace

    ResponderBorrar
  14. Pude entrar, pero al pulsar cualquier link, se cae, así que no pude comentar.


    Saludos,
    El triministro.

    ResponderBorrar
  15. No pude, ya que redirige directamente a la IP y no a la pagina. tambien está asquerosamente lento y es por tu ancho de banda.

    ResponderBorrar
  16. Triministro, José, esto pasa porque instalé el Wordpress antes que tuviera mi dominio tombrad.dynu.net, entonces todas las subcarpetas están direccionadas a las IPfísicas de mi red privada 192.168.0.2/...

    Tengo dos alternativas, reinstalar Wordpress o cambiar los links, las dos son una lata

    ResponderBorrar
  17. pasé por acá.
    http://www.subirimagenes.com/imagedata.php?url=http://s2.subirimagenes.com/otros/9767598dddddddddd.jpg
    ahí la captura.

    ResponderBorrar
  18. Tomas, ten cuidado con las puertas que tienes abierto al mundo...
    Su cortafuegos debe de pasar solamente puerta 80 y solo a este servidor, no a su red interno.
    Sugiero un portscan desde otro IP.

    ResponderBorrar
  19. ¡Perfecto, que buen dato!
    Veo que no se ve en CSS sino en HTML crudo, bueno, algo es algo dijo el diablo
    Gracias!

    ResponderBorrar
  20. John, efectivamente, eso de dejar puertos abiertos no es nada sano, me podrían robar la pornografía que tanto me ha costado reunir.

    Si, solo abrí el puerto 80, el 21 y el 22. Creo que estos últimos los voy a cerrar, no tiene objeto dejar ftp abierto por ahora, gracias por el aviso

    ResponderBorrar
  21. Hola Tomas, en Facebook te comenté los pasos para cambiar la URL del sitio. Saludos

    ResponderBorrar
  22. Buena Julio! lo acabo de arreglar, no se si se verá ahora el CSS pero al menos desde mi casa todo se redirecciona correctamente a mi dominio tombrad, ¡Chas gracias!

    ResponderBorrar

"Send me a postcard, drop me a line
Stating point of view
Indicate precisely what you mean to say
Yours sincerely, wasting away
Give me your answer, fill in a form
Mine for evermore
Will you still need me, will you still feed me
When I'm sixty-four"