Wie überprüfe ich, ob ein UDP-Port offen ist? [geschlossen]


13

Ich habe hier ein Dilemma. Ich habe ein Gerät, das mit einem anderen Remote-Gerät kommuniziert, aber zwischen diesen befindet sich eine Firewall. Da es sich um eine UDP-Verbindung handelt, können die TCP-Dienstprogramme nicht testen, ob der betreffende Port geöffnet ist. Ich weiß, dass wir das von der Firewall bekommen könnten, aber ich habe keinen Zugriff, also muss ich beweisen, dass der Port nicht offen ist.

Das Quellsystem ist ein Windows 7-System und das Zielsystem ist eine Appliance unter Linux.


1
Ohne Zugriff auf die Firewall können Sie das wirklich nicht feststellen (es sei denn, Ihre Systeme funktionieren natürlich).
Ron Trunk

Fragen zu Netzwerken, auf die Sie keinen Einfluss haben, werden hier ausdrücklich nicht behandelt.
Ron Maupin

2
Ich würde dafür stimmen, es offen zu lassen. Ich denke, dies fällt in die Grauzone, und es ist eine nützliche Theorie- / Fehlerbehebungsfrage.
Ron Trunk

1
... haben Sie die Kontrolle über die Firewall und die Netzwerke? Wenn nicht, dann ist dies hier kein Thema.
Craig Constantine

Dies ist eine Laborumgebung, in der wir versuchen, eine zukünftige Produktionssituation zu simulieren. Ich möchte eine Möglichkeit zur Fehlerbehebung bei UDP-Sitzungen erhalten, ohne die Protokolle auf der Serverseite analysieren zu müssen. Aber danke, ich glaube, das ist aufgrund der Art der Kommunikation nicht möglich.
JoeliNNaBit

Antworten:


10

UDP ist offensichtlich ein Send-and-Forget-Protokoll. Während eines NMap-UDP-Scans können Sie beispielsweise nur dann definitiv nachweisen, dass ein UDP-Port offen ist, wenn Sie eine Antwort von diesem Port erhalten. Beachten Sie, dass viele Dienste möglicherweise nicht auf beliebige Daten antworten und protokoll- oder anwendungsspezifische Anforderungen erfordern, um eine Antwort zu gewährleisten. Bestimmte ICMP-Codes können jedoch garantieren, dass der Port geschlossen ist. RFC 792 und RFC 1122 geben uns einige gute Informationen darüber, was zu erwarten ist, wenn ein Port geschlossen ist.

Beispielsweise ist ein ICMP-Typ-3-Code 3 "Destination Port Unreachable" (Zielport nicht erreichbar) in jeder Hinsicht fast garantiert ein geschlossener Port.

Eine vollständige Liste der Codes finden Sie hier:

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


1
Danke für die Antwort. Ich werde mehr über ICMP Typ 3 Anfragen untersuchen.
JoeliNNaBit

7

Dies ist ein schnelles Rezept:

1) Starten Sie einen Paket-Sniffer:

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) Senden Sie ein UDP-Paket:

$ echo reply-me | nc -u 1.0.0.2 1000

3) Wenn Sie "ICMP-Port nicht erreichbar" erhalten, wird dieser UDP-Port geschlossen:

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) Andernfalls ist normalerweise entweder der Port offen oder etwas blockiert ICMP.


1
Da das Quellsystem Windows 7 ist, funktionieren die Linux-Befehle nicht.
Ron Maupin

1
Ja, das stimmt, aber ich werde versuchen, eine virtuelle Maschine zu überprüfen, ob es funktioniert.
JoeliNNaBit

4

"nc -uvz ip port"ist irgendwie nicht genau, sollten Sie wahrscheinlich verwenden "nmap -sU -p port ip", wenn das Ergebnis "open" zeigt, dann ist der udp-Port wahrscheinlich offen, wenn es "open | gefiltert" zeigt, dann ist es wahrscheinlich geschlossen oder gefiltert.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.