domingo, 11 de julio de 2010

Cómo establecer un servidor estándar detrás de un proxy/router de ADSL

Cuando se comparte la conexión a internet o se usa un router de ADSL en modo multipuesto creamos una red interna que está "oculta" al exterior. Mi conexión a internet puede tener IP 62.42.172.3, por ejemplo, y los ordenadores de dentro de la red interna tendrán IP's diferentes, por ejemplo, 192.168.0.1 y 192.168.0.2. Elegir esos números no es casualidad. Las direcciones 192.168.xxx.xxx se usan para redes internas porque esas direcciones IP no se usan para internet, de modo que no hay riesgo de que una IP interna coincida con una IP de internet. Si yo pido una página web desde un ordeandor de la red interna, el router o el proxy toman "nota" de quién hace el "pedido" de esa página y cuando llegue se la devuelve al ordenador que la pidió. Es como una aduana.

Cuando tenemos un "servidor", del tipo que sea, dentro de la red interna tenemos un problema: un ftp usa el puerto 21, por ejemplo. Alguien conoce mi IP de internet y hace una petición al puerto 21. La petición llega al proxy/router que es el que controla la IP de internet (o sea, la conexión) pero... ¿a qué ordenador le entrega el router/proxy la petición? Esa petición llega de fuera, no de dentro, luego como no sabe a quién dársela, esa petición "muere en la aduana".

Ahora bien, si hacemos un "mapeado de puertos" la cosa se soluciona. Un mapeado consiste en decirle al "aduanero" (proxy/router) "Mira, colega, cuando alguien te pida conexión al puerto 21, se la mandas a la IP interna 192.168.0.1"

Los servicios de internet más usados usan los siguientes puertos:

21 Servidores FTP
22 SSH
23 Telnet
25 Servidores de Correo SMTP
43 Servidores de Correo IMAP4
53 Servidores de Dominio
68 DHCP
79 Finger
80 Servidor de Páginas Web
81 Servidor de Páginas Web Seguras
110 Servidores de Correo POP3
137 NetBIOS
139 Servicio de NetBIOS para compartir ficheros e impresoras
161 SNMP
445 Compartir ficheros e impresoras en Windows 2000

Ten en cuenta estos puertos se usan "de común acuerdo". Si a mí me da la gana puedo poner un servidor FTP en el puerto 80 y un servidor de páginas web en el puerto 21, pero en ese caso un cliente FTP *NO* podría acceder a nuestro servidor A NO SER que manualmente le indiquemos al cliente FTP que use el puerto 80, ya que por defecto siempre usarán el 21. Del mismo modo, un navegador de internet no cargaría una página web de un servidor que usara el puerto 21 para servir las páginas porque todos los navegadores por defecto piden las páginas al puerto 80

En el siguiente enlace encontrarás el listado más detallado de puertos que conozco, pero te aviso que puede resultar un tanto "agobiante" y que quizás no saques mucho en claro si no conoces los servicios mencionados:: http://www.iana.org/assignments/port-numbers

Servidores no estándar
Puede suceder que para un único servicio no baste con mapear un sólo puerto y haya que mapear varios. Te tecuerdo que mapear es decirle al router/proxy/cortafuegos que dirija a una IP interna concreta las peticiones a unos determinados puertos. De modo que si al proxy/router/cortafuegos le llega una petición al puerto 21 y tenemos un servidor FTP en el ordenador 192.168.0.2 que le "pase la llamada" correctamente . Pongamos el GP500 como ejemplo: los tres puertos que necesitamos mapear son:

2300 TCP
2350 UDP
47624 TCP

Lo de TCP o UDP son tipos de conexiones distintas. Hay que tener cuidado en indicarlo correctamente. Las conexiones TCP son más lentas, pero también más seguras y viceversa. Una conexión UDP es más rápida (hay menos verificaciones) pero esa características también las hace más inseguras.

Una vez mapeados esos tres puertos todas las peticiones a nuestra IP de internet que lleguen a esos puertos serán dirigidas al ordenador que nosotros queramos (la del ordenador con el que vayamos a crear la partida)

Bajo Windows o Linux/Unix, la ejecución del siguiente comando en la consola permite mostrar una lista de puertos abiertos en el PC:
netstat -a

No hay comentarios:

Publicar un comentario