Comprueba si tu firewall está bloqueando los puertos de salida
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. Aunque, también te daremos otra alternativa si usas el firewall de Windows y quieres salir de dudas.
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 (aunque no tendría porque ser este, y deberíamos comprobarlo).
- La configuración de un servidor SSH en tu equipo para que podamos controlarlo de forma remota. Aquí habitualmente se utiliza el puerto 22 (aunque no tendría porque ser este, y deberíamos comprobarlo).
- 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:
- Usando el navegador web, en el que pondremos la URL de portquiz.net y el puerto correspondiente que queramos comprobar.
- 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.
Desde el panel de control de Windows
Por ejemplo, si usas el firewall de Windows, desde las opciones del panel de control tienes la oportunidad de comprobar si se están bloqueando puertos o no, además de saber qué puertos son los afectados. Para ello, lo primero que tenemos que hacer es entrar directamente a este menú del sistema operativo de tu PC.
Después, una vez que estemos dentro de este apartado, toca pulsar sobre Sistema y seguridad. Luego hay que entrar en Herramientas administrativas e ir a Windows Defender Firewall con seguridad avanzada. Cuando ya estemos dentro, toca pulsar sobre Acción > Propiedades.
Aquí, tendremos que pulsar el perfil que queramos, ya sea público o no. Y en Inicio de sesión, habrá que tocar en la opción de Personalizar. A continuación, dentro de Registrar paquetes descartados, que suele estar en predeterminado como No, hay que elegir Sí y aceptar.
Una vez seguidos todos estos pasos, hay que ir a la herramienta Explorador de archivos del PC y entrar en la ruta en la que esté guardado en log. Como puede ser %systemroot%system32LogFilesFirewall. Entra en el archivo pfirewall.log, desde este podrás ver los puertos que ha bloqueado el cortafuegos de Windows.
Lo que está claro es que tipo de opción es una de las mejores alternativas para que podamos comprobar si el firewall de Windows está o no afectando a los puertos. Todo dependerá de si usas o no en tu equipo este cortafuegos.
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. Es decir, posiblemente sea el método más cómodo, rápido y que nos servirá en cualquier dispositivo o sistema.
Qué hacer para solucionarlo
Si tu firewall está bloqueando algún puerto que impide el acceso a determinados sitios, existen varias formas de poder evadirlo, aunque la principal ya la hemos explicado, y consistiría simplemente en identificar el puerto correspondiente y permitirlo. Aunque si esa no es posible por la razón que sea, o no lo deseas hacer, podrás usar trucos temporales:
- Desactivar el firewall: Parece una tontería, y no es nada seguro ni recomendable, sin embargo, si tenemos algún error y solo queremos revisar un sitio web en unos minutos sin problemas, podemos desactivar todo el firewall, navegar sin problema (siempre que sepamos que es un lugar confiable) y posteriormente activarlo de nuevo al acabar.
- Usar una VPN: el uso de una VPN puede encapsular tu tráfico y sortear las restricciones del firewall, por lo que activarla y desactivarla en los momentos oportunos podría ayudarnos a navegar sin problemas sin tener que tocar ninguna configuración del propio firewall.
- Proxy: Utilizar un servidor proxy para redirigir tu tráfico a través de puertos que no estén bloqueados. Puede ser algo más tedioso, pero si buscas una manera temporal sin acceso o necesidad de configurar el firewall, también serviría.
Obviamente, como decíamos, estos métodos son solamente para emergencias, y lo mejor sería dejar el firewall bien configurado, sobre todo después de seguir el tutorial de hoy y conocer en que puertos está el problema, pudiendo resolverlo de forma sencilla impidiendo que se bloqueen, siempre y cuando tengamos presentes los posibles problemas de seguridad.