Come verificare che una porta UDP sia aperta? [chiuso]


13

Ho qui un dilemma. Ho un dispositivo che comunica con un altro dispositivo remoto ma tra loro c'è un firewall. È una connessione UDP, quindi le utility TCP non funzionano per verificare se la porta specifica è aperta. So che potremmo ottenerlo dal firewall ma non ho accesso, quindi devo dimostrare che la porta non è aperta.

Il sistema di origine è un sistema Windows 7 e il sistema di destinazione è un'appliance che esegue Linux.


1
Senza l'accesso al firewall, non puoi davvero dirlo (a meno che, ovviamente, i tuoi sistemi non funzionino).
Ron Trunk,

Le domande che riguardano reti sulle quali non hai alcun controllo sono esplicitamente fuori tema qui.
Ron Maupin

2
Vorrei votare per lasciarlo aperto. Penso che questo rientri nell'area grigia ed è un'utile domanda di teoria / risoluzione dei problemi.
Ron Trunk,

1
... hai il controllo del firewall e delle reti? In caso contrario, questo è fuori tema qui.
Craig Constantine,

Questo è ormai un ambiente di laboratorio, stiamo cercando di simulare una situazione di produzione futura. Vorrei trovare un modo per risolvere le sessioni UDP senza analizzare i log sul lato server. Ma grazie credo che ciò non sia possibile per la natura del tipo di comunicazione.
JoeliNNaBit,

Risposte:


10

UDP è ovviamente un protocollo di invio e dimenticanza. Ad esempio, durante una scansione UDP NMap, l'unico modo per dimostrare definitivamente che una porta UDP è aperta è ricevere una risposta da quella porta. Tieni presente che molti servizi potrebbero non rispondere a dati arbitrari e richiedere richieste di protocollo o specifiche dell'applicazione per giustificare una risposta. Tuttavia, alcuni codici ICMP possono garantire la chiusura della porta. RFC 792 e RFC 1122 ci danno alcune buone informazioni su cosa aspettarsi quando una porta è chiusa.

Ad esempio, un codice 3 di tipo 3 ICMP "Porta di destinazione non raggiungibile" è, a tutti gli effetti, quasi garantito che sia una porta chiusa.

Un elenco completo di codici è disponibile qui:

http://www.iana.org/assignments/icmp-parameters/icmp-parameters.xhtml


1
Grazie per la risposta. Studierò di più sulle richieste dell'ICMP di tipo 3.
JoeliNNaBit,

7

Questa è una ricetta veloce:

1) Avvia uno sniffer di pacchetti:

sudo tcpdump -n -i eth2 icmp &
[1] 1409
$ tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth2, link-type EN10MB (Ethernet), capture size 262144 bytes

2) Invia un pacchetto UDP:

$ echo reply-me | nc -u 1.0.0.2 1000

3) Se ricevi "Porta ICMP non raggiungibile", quella porta UDP viene chiusa:

20:54:15.475211 IP 1.0.0.2 > 1.0.0.1: ICMP 1.0.0.2 udp port 1000 unreachable, length 45

4) Altrimenti, di solito o la porta è aperta o qualcosa sta bloccando ICMP.


1
Poiché il sistema di origine è Windows 7, i comandi di Linux non funzioneranno.
Ron Maupin

1
Sì, è vero, ma proverò su una macchina virtuale e verificherò se funziona.
JoeliNNaBit,

4

"nc -uvz ip port"non è in qualche modo accurato, probabilmente dovresti usarlo "nmap -sU -p port ip", se il risultato mostra "open", allora la porta udp probabilmente è aperta, se mostra "open | filtered" allora probabilmente è chiusa o filtrata.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.