Los firewalls deben responder con un mensaje ICMP cuando bloquean una solicitud. Sin embargo, este no es necesariamente el caso (le interesará este bonito artículo ).
Puede probar desde el exterior para ver si se puede acceder a un puerto a través de un firewall y, si es así, si hay algo escuchando en él. Aquí hay tres escenarios diferentes que involucran una solicitud de TCP que puede observar con wireshark
, o algún otro sniffer de paquetes, y lo que verá:
1) Firewall rechaza la solicitud
Recibirá un mensaje ICMP, y la herramienta que realiza la solicitud debe decirle inmediatamente algo al respecto ("inalcanzable, prohibido por el administrador", etc.). Por "herramienta" me refiero al cliente que está utilizando para enviar la solicitud (que utilicé telnet
). Los detalles del mensaje 1 dependen de cómo esté configurado el firewall, pero el "puerto inalcanzable" es probablemente el más común.
"Ninguna ruta al host" puede indicar esto, pero también puede indicar problemas de enrutamiento más sutiles.
2) Firewall descarta el paquete
No hay respuesta, por lo que la herramienta espera hasta que se agote el tiempo o se aburra.
3) Firewall permite paquetes (o no hay firewall), pero nada está escuchando en el puerto.
Recibirá un mensaje TCP RST / ACK. Supongo que el protocolo TCP requiere esto. En otras palabras, si nada está escuchando en el puerto, el sistema operativo envía esta respuesta. Puede ser difícil distinguir esto del # 1 solo en función de lo que informa una herramienta, porque puede decir lo mismo en ambos casos (sin embargo, lo más probable es que lo distinga como "conexión rechazada" vs. # 1, "red inalcanzable" ) Observado en un sniffer de paquetes en la máquina cliente, el escenario n. ° 1 (mensaje de rechazo ICMP) y el n. ° 3 (mensaje TCP RST / ACK) son claramente distintos.
La única otra opción aquí es que el firewall deja pasar el paquete y algo está escuchando, por lo que obtienes una conexión exitosa.
En otras palabras: suponiendo que su red en general funciona correctamente, si obtiene # 1 o # 2, significa que un firewall impide activamente el acceso al puerto. # 3 sucederá si su servidor no se está ejecutando pero el puerto es accesible, y por supuesto (el implícito) # 4 es una conexión exitosa.
- Por ejemplo, "puerto inalcanzable", "host prohibido", varias otras combinaciones de host / puerto / administrador e inalcanzable / prohibido ; búsquelos en el mensaje, ya que son una indicación explícita de un firewall IP en juego.
nc
informa "Conexión rechazada" cuando el puerto es accesible, pero no hay escucha, y "La red no está disponible" cuando la solicitud ha sido rechazada por un firewall a través de icmp (lo que significa que puede o no haber un servicio en el puerto ) Si el cortafuegos deja caer el paquete en lugar de rechazarlo,nc
se bloqueará por un tiempo.