Cómo hacer que tu web alojada en casa sea visible desde Internet

He recibido un correo de Diego (sí, se llama igual que yo) desde Melilla:

He instalado un servidor UBUNTUSERVER en el VMWARE, que gracias a ti conocí…, hasta ahí bien… Lo siguiente fue instalar Apache, que veo desde el portatil y el fijo. Lo siguiente fue hacerme una cuenta en Dyndns y guay, pero pongo en el navegador la direccion y me sale mi router… ¿como hago para ver el servidor?… toy hecho un lio… echame un cable pleaseeeeeeeeeeee.

Veamos. Supongamos que tu portátil tiene una IP como 192.168.1.x, con x entre 1 y 254. Es decir, que está en una red interna. Las direcciones 192.168.x.x están reservadas para las direcciones privadas, las que usamos en las redes locales. Hay otros rangos (10.x.x.x y 172.16.x.x)

Cuando tu portátil se trata de conectar a Google, pregunta por su dirección y se manda una petición HTTP (para ver una página web) al servidor web de Google (bueno, con uno de ellos, tienen decenas de miles). El servidor web de Google debe entonces responder a tu portátil para que tú puedas ver la página en tu navegador. Si se encuentra una dirección privada ¿cómo llegar hasta tí?. ¿A cual, de los miles y miles de ordenadores situados en redes privadas con las mismas IPs debe responder Google?. Evidentemente este problema no lo tienes, es decir, puedes navegar. Ello es debido a que tu router de acceso a Internet hace IP masquerading, también conocida como NAT: al detectar una conexión desde un ordenador de tu red hacia fuera, cambia en la cabecera del mensaje la IP original por la suya propia (por la del router) que es pública. Google ahora sabe a quién responder. Es trabajo del router (y de NAT) deshacer ahora el cambio y entregar al equipo de la red interna la p?gina web solicitada.

En tu el caso es al revés. Quieres que desde fuera puedan ver un servidor web en tu red interna. Usualmente este tipo de servidores se colocan en un segmento protegido de la red interna llamado DMZ (zona desmilitarizada), mientras que otro segmento queda inaccesible desde el exterior (la MZ, zona militarizada). Por sencillez puedes dejarlo en la interna, aunque es menos seguro.

El caso es que debes hacer dos cosas:

  1. abrir el firewall en entrada para el puerto 80 para la IP de tu portátil, es decir, permitir a cualquiera desde fuera que se conecte al puerto 80 de tu máquina, que está en la red interna.
  2. crear una regla en el router de “port forwarding”. Esto es algo similar a NAT, pero aquí se cambia la IP de destino, no la de origen como antes. Si alguien intenta conectarse a tu router en el puerto 80, éste le pasa la tarea a tu portátil. Como ves, la IP destino (originalmente la IP pública de tu router, que es lo que se ve desde Internet), se cambia por la IP de tu portátil (que está en la red interna). El paso inverso (llevar la respuesta desde el portátil) lo hace el router, como antes con NAT.

Evidentemente, los firewalls deben permitir conexiones entrantes por el puerto 80. Las salientes ya las permiten porque puedes navegar ¿no?

One comment

Comments are closed.