La mayoría de los programas que utilizamos en nuestros equipos no requieren que abramos puertos para que funcionen de forma correcta. Un ejemplo típico es nuestro navegador de Internet, que para que funcione no necesitamos hacer nada especial, porque todos los routers hacen uso de NAT, por lo que se permite cualquier acceso desde la red interna hacia Internet sin ninguna limitación. Sin embargo, es posible que el firewall del router o de tu equipo esté bloqueando los puertos de salida, por tanto, no podrás conectarte a determinados servicios haciendo uso de los puertos de destino, ya sea TCP o UDP. Hoy os vamos a explicar cómo puedes comprobar fácilmente si tu firewall o router está bloqueando los puertos de destino.
Vamos a empezar explicando brevemente qué es un puerto y cuáles son los que abrimos más habitualmente. Luego conoceremos qué es y cómo funciona portquiz.net poniendo una serie de ejemplos. A continuación, hablaremos de netcat y cómo puede utilizarse gracias a este sitio web y más.
Los protocolos de la capa de transporte, tanto TCP como UDP, hacen uso de «puertos» de origen y destino para poder comunicarse punto a punto entre los diferentes equipos. Un puerto podemos definirlo como un valor que se utiliza para distinguir diferentes servicios (sockets) que podemos tener abiertos en un mismo host, servidor o PC. También hay que señalar que la IANA que viene de las siglas en inglés Internet Assigned Numbers Authority es la entidad que se encarga de asignar los puertos.
Actualmente este organismo controla los puertos del 0 al 1023 que se les conoce como los puertos más conocidos. Algunos ejemplos en los que necesitamos abrir puertos serían:
No solamente es importante abrir puertos en la «NAT» de nuestro router, para que desde el exterior puedan acceder a servicios que están dentro de la NAT, también es muy importante que el firewall del router o del PC en cuestión, permita la comunicación hacia el exterior. Actualmente los firewalls no solamente permiten o deniegan el acceso desde el exterior, también son los encargados de permitir o denegar el acceso desde la red interna a la red externa, o directamente bloquear cualquier tráfico de salida en los ordenadores finales.
En muchas ocasiones, si hemos abierto un puerto en el firewall del router o PC en sentido entrante, si no hemos hecho lo mismo en sentido salida, no podrá haber comunicación. Por este motivo, lo más útil es usar una herramienta online llamada portquiz.net, la cual nos va a permitir comprobar si nuestro firewall/router o PC permiten las conexiones en sentido de salida.
Gracias al sitio web portquiz.net nos encontramos con una herramienta online donde podremos comprobar si se están bloqueando los puertos de salida en el que uno de los causantes puede ser un firewall o que no lo tengamos bien abiertos. Aquí nos encontramos con un servidor que es capaz escuchar en todos los puertos TCP. Así, gracias a este sitio web nos va permitir probar cualquier puerto TCP saliente desde el 1 al 65535.
En cuanto a su forma de utilización para comprobar si se están bloqueando los puertos de salida o no tenemos dos formas:
Antes de comenzar, comentar que responsable y creador del servidor portquiz.net manifiesta que en algunos puertos no se puede usar para obtener resultados fiables. Uno de los puertos que no debemos usar es el 445 porque su compañía de hosting probablemente este bloqueándolo. Los otros puertos que no se pueden comprobar son el 22 y 25 porque este servidor los está utilizando para servicios reales y en funcionamiento, el resto de puertos TCP los podremos comprobar sin ningún problema.
La forma de comprobar si estás bloqueando los puertos en sentido de salida es muy sencilla, en la barra de direcciones de nuestro navegador escribiremos http://portquiz.net:XXXX. Lo único que en vez de XXXX los sustituiremos por el puerto que corresponda a comprobar. Así podríamos comprobar si realmente se están bloqueando los puertos de salida o los podemos utilizar con normalidad.
Alguno ejemplos que podríamos utilizar son:
La primera vez que accedemos a portquiz.net por defecto comprobará el puerto 80, ya que es el puerto que se corresponde con el protocolo HTTP para la navegación web. Estos son los resultados que he obtenido:
Aquí nos comenta que hemos llegado a esta web usando el puerto 80 por lo que significa que podemos utilizarlo. Abajo, señalado con la segunda flecha roja nos muestra la IP de salida que normalmente se corresponderá con la IP pública nuestra, salvo que se use una VPN. Esto es ideal para comprobar realmente si nuestra conexión pasa por CG-NAT, por un proxy o por un servidor VPN que está bloqueando los puertos en salida.
Por otra parte, si algo está bloqueando los puertos de salida obtendríamos unos resultados como estos:
El puerto 23 de telnet en muchos routers lo tienen cerrado por seguridad. Así que es normal que sea uno de la lista de los que estén bloqueando los puertos de salida. Lo habitual es que la gran mayoría muestre el mismo resultado que el primero de arriba, en el que se vea que tengamos acceso a la web por ese puerto.
En el caso de que estés comprobando el firewall de un servidor al que has accedido por comandos, y, por tanto, no tengas un navegador web, entonces podrás usar el comando netcat por la línea de comandos. Gracias a netcat, podremos comprobar qué puertos TCP en salida estamos filtrando, ya sea el propio servidor donde estamos conectados, el router/firewall instalado o directamente el proveedor de Internet.
Usando el servidor de portquiz.net y el comando netcat podríamos comprobar puertos utilizando una sintaxis como esta:
Tal y como habéis visto, comprobar los puertos abiertos en sentido de salida es realmente sencillo haciendo uso de esta herramienta tan interesante, rápida y totalmente gratuita. Además, el punto fuerte de portquiz es que podremos comprobar fácilmente los puertos abiertos en salida tanto vía web con el navegador, como también con comandos usando netcat, ideal para servidores o routers donde nos conectamos por SSH.