Tengo aquí un dilema. Tengo un dispositivo que se comunica con otro dispositivo remoto, pero hay un firewall entre ellos. Es una conexión UDP, por lo que las utilidades TCP no funcionan para probar si el puerto específico está abierto. Sé que podríamos obtener eso del firewall, pero no tengo acceso, así que tengo que demostrar que el puerto no está abierto.
El sistema de origen es un sistema Windows 7 y el sistema de destino es un dispositivo que ejecuta Linux.
security
troubleshooting
udp
JoeliNNaBit
fuente
fuente
Respuestas:
UDP es obviamente un protocolo de enviar y olvidar. Por ejemplo, durante un escaneo UDP NMap, la única forma de probar definitivamente que un puerto UDP está abierto es si recibe una respuesta de ese puerto. Tenga en cuenta que muchos servicios pueden no responder a datos arbitrarios y requieren protocolos o solicitudes específicas de la aplicación para garantizar una respuesta. Sin embargo, ciertos códigos ICMP pueden garantizar que el puerto esté cerrado. RFC 792 y RFC 1122 nos dan buena información sobre qué esperar cuando un puerto está cerrado.
Por ejemplo, un ICMP tipo 3 código 3 "Puerto de destino inalcanzable" es, a todos los efectos, casi garantizado como un puerto cerrado.
Puede encontrar una lista completa de códigos aquí:
http://www.iana.org/assignments/icmp-parameters/icmp-parameters.xhtml
fuente
Esta es una receta rápida:
1) Inicie un sniffer de paquetes:
2) Enviar un paquete UDP:
3) Si recibe 'Puerto ICMP inalcanzable', ese puerto UDP está cerrado:
4) De lo contrario, generalmente el puerto está abierto o algo está bloqueando ICMP.
fuente
"nc -uvz ip port"
no es de alguna manera precisa, probablemente debería usar"nmap -sU -p port ip"
, si el resultado muestra "abierto", entonces el puerto udp probablemente esté abierto, si muestra "abierto | filtrado", entonces probablemente esté cerrado o filtrado.fuente