Comprueba si tu firewall está bloqueando los puertos de salida

Comprueba si tu firewall está bloqueando los puertos de salida

José Antonio Lorenzo

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 se puede utilizar gracias a este sitio web y más.

Qué es un puerto TCP o UDP

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:

  • Para crear un servidor FTP y acceder remotamente a tus archivos. En este caso deberías abrir el puerto de control de FTP que normalmente es el 21.
  • La configuración de un servidor SSH en tu equipo para que podamos controlarlo de forma remota. Aquí habitualmente se utiliza el puerto 22.
  • Si realizas descargas con programas P2P como Emule o BitTorrent.
  • También cuando necesitemos realizar una conexión desde Internet hacia tu red local interna ya sea un PC, consola o servidor.

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.

Ventajas protocolo TCP

El protocolo TCP es el más utilizado en el mundo de las redes, es muy sencillo de implementar y nos proporciona garantías de que los datos han llegado a su destino en orden y de manera correcta. Este protocolo nos permite realizar comunicaciones entre redes multiplataforma, y es de código abierto, por lo cual puede ser utilizado por cualquier usuario que decida darle uso.

Este protocolo es un protocolo conectivo, fiable y orientado a conexión. Antes de empezar a enviar datos es totalmente necesario establecer una conexión gracias al 3-way handshake, un procedimiento necesario para que tanto origen como destino se «preparen» para intercambiar los datos de manera fiable y correcta. Una de las características más importantes de este protocolo es que garantiza que todos los paquetes llegarán en orden a las capas superiores, si un paquete llega antes que otro por algún motivo, el propio protocolo se encarga de reordenarlos. Además, otro aspecto muy importante es la fiabilidad, y es que TCP nos indicará si se ha perdido algún paquete, e incluso se encargará de «recuperarlo» volviéndoselo a pedir al emisor.

El protocolo TCP es ampliamente utilizado por la gran mayoría de protocolos de la capa de aplicación, como HTTP, HTTPS, FTP, FTPES, SSH, POP3, IMAP y muchos más. La gran mayoría de protocolos de la capa de transporte utiliza este protocolo por sus cualidades, y es que poder enviar y recibir la información de manera fiable es algo fundamental en el mundo de las redes.

Ventajas protocolo UDP

En el caso del protocolo UDP, sus ventajas están más enfocadas en las aplicaciones que este pueda tener, y no en un uso genérico de la red. Como puede ser los retrasos en la transmisión, donde UDP es el más adecuado para procesos los cuales son muy sensibles y no pueden permitirse ningún tipo de retraso en las comunicaciones. La velocidad también ayuda en este aspecto, la cual es útil para modos de consulta y obtener de este modo respuestas rápidas.

El protocolo UDP es no conectivo, no fiable y no orientado a conexión. Esto significa que no es necesario establecer una comunicación previa para que emisor y receptor hablen, sino que se envían los datos directamente sin preguntar. Otro aspecto muy importante es que es un protocolo no fiable, esto significa que puede haber pérdida de datos en la comunicación, y son las capas superiores (capa de aplicación) quien debe encargarse de volver a solicitar la información para que sea enviada.

Este también nos proporciona una baja latencia, ya que no tiene restricciones por parte de ningún modelo de comunicación que se base en la conexión. Por lo cual este es ideal para su uso de forma intensiva del ancho de banda, ya que al no garantizarse el orden de los paquetes puede soportar su pérdida, lo cual afecta directamente a la congestión que se pueda ocasionar en la red. Algunos de los usos recomendados son la Voz IP, los videojuegos online y la transmisión de medios en general.

El protocolo UDP se usa ampliamente para las comunicaciones de DHCP y también DNS, donde es necesario que sea muy rápido, aunque no es tan necesario que sea muy fiable como ocurre con TCP.

Qué es y cómo funciona portquiz.net

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 los tengamos bien abiertos. Aquí nos encontramos con un servidor que es capaz de 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:

  1. Usando el navegador web, en el que pondremos la URL de portquiz.net y el puerto correspondiente que queramos comprobar.
  2. Utilizando el comando netcat.

Antes de comenzar, comentar que el 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 esté 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.

Gracias a esta herramienta, podremos comprobar solamente si nuestros puertos de salida están bloqueados. Generalmente, con el objetivo de tener la máxima seguridad posible, no solamente podemos bloquear los puertos entrantes, sino que también podemos bloquear ciertos puertos de salida para evitar que el malware se pueda propagar por toda la red local, e incluso para no transferir datos a un ciberdelincuente que coloque su ordenador en Internet. Por este motivo, si estás configurando un firewall, es muy importante conocer qué puertos de entrada y salida estás bloqueando o permitiendo.

Comprobar si estás bloqueando los puertos de salida

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:

  • http://portquiz.net:443
  • http://portquiz.net:8080

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 de salida.

Por otra parte, si algo está bloqueando los puertos de salida obtendremos 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.

Comprueba los puertos con portquiz y netcat

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.

¡Sé el primero en comentar!