Wenn Sie sehen möchten, ob Sie von einem Remotecomputer aus eine TCP-Verbindung herstellen können, installieren Sie OpenCSW auf diesem und dem Zielcomputer und installieren Sie netcat auf beiden Computern. Dies ist die Syntax für die Verwendung von netcat zum Testen von TCP-Verbindungen:
nc -vz targetServer portNum
So überprüfen Sie beispielsweise SSH auf "homeServer1":
nc -vz homeserver1 22
Auf diese Weise können Sie die Konnektivität auf TCP-Ebene vom Remotesystem aus testen. Netcat kann auch so konfiguriert werden, dass es einen Port überwacht und nicht als Client fungiert. So lauschen Sie auf TCP / 8443:
Auf dem Server, auf dem sich die Anwendung befindet: nc -l homeserver1 8443
Auf einem Computer außerhalb der Firewall: nc -vz homeserver.fqdn 8443
Dies ist ein Beispiel für eine erfolgreiche Ausführung:
[jadavis6@ditirlns01 ~]$ nc -vz ditirlns01.ncat.edu 8443
Connection to ditirlns01.ncat.edu 8443 port [tcp/pcsync-https] succeeded!
Eine fehlgeschlagene Ausführung:
[jadavis6@ditirlns01 ~]$ nc -vz ditirlns01.ncat.edu 8443
nc: connect to ditirlns01.ncat.edu port 8443 (tcp) failed: Connection refused
nc
Meldung "Verbindung abgelehnt" angezeigt wird, wenn auf den Port zugegriffen werden kann, aber kein Listener vorhanden ist, und "Netzwerk ist nicht erreichbar", wenn die Anforderung von einer Firewall über icmp zurückgewiesen wurde (was bedeutet, dass möglicherweise ein Dienst auf dem Port vorhanden ist oder nicht ). Wenn die Firewall das Paket verwirft, anstatt es tatsächlich abzulehnen,nc
bleibt sie nur eine Weile hängen.Firewalls sollten mit einer ICMP-Nachricht antworten , wenn sie eine Anfrage blockieren. Dies ist jedoch nicht unbedingt der Fall (Sie werden an diesem schönen Artikel interessiert sein ).
Sie können von außen testen, ob über eine Firewall auf einen Port zugegriffen werden kann, und wenn ja, ob etwas darauf wartet. Hier sind drei verschiedene Szenarien mit einer TCP-Anfrage, die Sie beobachten können
wireshark
, oder einem anderen Paket-Sniffer, und was Sie sehen werden:1) Firewall lehnt Anfrage ab
Sie erhalten eine ICMP-Nachricht zurück, und das anfordernde Tool sollte Ihnen sofort einen entsprechenden Hinweis geben ("nicht erreichbar, Administrator verboten" usw.). Mit "Tool" meine ich den Client, den Sie zum Senden der Anfrage verwenden (ich habe verwendet
telnet
). Die Details der Nachricht 1 hängen davon ab, wie die Firewall konfiguriert ist, aber "Port nicht erreichbar" ist wahrscheinlich die häufigste."Keine Route zum Host" weist möglicherweise darauf hin, kann aber auch auf subtilere Routing-Probleme hinweisen.
2) Firewall lässt Paket fallen
Da keine Antwort eingeht, wartet das Tool, bis die Zeit abgelaufen ist oder Sie sich langweilen.
3) Firewall erlaubt Paket (oder es gibt keine Firewall), aber nichts lauscht auf dem Port.
Sie erhalten eine TCP RST / ACK-Nachricht zurück. Ich nehme an, dass das TCP-Protokoll dies erfordert. Mit anderen Worten, wenn der Port nicht abgehört wird, sendet das Betriebssystem selbst diese Antwort. Es kann schwierig sein , dies von 1 # unterscheiden nur auf das, was ein Tool meldet, weil es kann dasselbe in beiden Fällen sagen (aber höchstwahrscheinlich diese unterscheiden als „Verbindung abgelehnt“ vs. # 1, „Netzwerk nicht erreichbar“ ). In einem Paketsniffer auf dem Clientcomputer werden Szenario 1 (ICMP-Ablehnungsnachricht) und 3 (TCP-RST / ACK-Nachricht) deutlich voneinander unterschieden.
Die einzige andere Möglichkeit ist, dass das Paket von der Firewall durchgelassen wird und etwas lauscht, sodass Sie eine erfolgreiche Verbindung erhalten.
Mit anderen Worten: Wenn Sie davon ausgehen, dass Ihr Netzwerk im Allgemeinen ordnungsgemäß funktioniert, bedeutet dies, dass eine Firewall den Zugriff auf den Port aktiv verhindert, wenn Sie die Nummer 1 oder 2 erhalten. # 3 wird passieren, wenn Ihr Server nicht läuft, aber auf den Port zugegriffen werden kann, und natürlich (implizit) # 4 ist eine erfolgreiche Verbindung.
quelle
Mit dem Befehl können Sie feststellen
netstat
, ob ein Port geöffnet ist und empfangsbereit ist.Beispiel
Die Ausgabe zeigt Prozesse (Spalte ganz rechts) , die TCP-Ports überwachen. Die Portnummern sind die Nummern, die den Doppelpunkten nach den IP-Adressen folgen (0.0.0.0:111 wäre beispielsweise Port 111).
Die IP-Adressen zeigen lokale und fremde Adressen an . Lokal ist Ihr System, während Fremd Adressen sind, die entweder eine Verbindung zu Ihrem TCP-Port herstellen oder Sie eine Verbindung zu einem ihrer TCP-Ports herstellen.
Im Fall von Port 22 ist dies der ssh-Daemon, der auf meinem System ausgeführt wird. Dies ist LISTENING for connections. Sobald jemand versucht, eine Verbindung zum
ssh
Dämon herzustellen, wird eine Kopie von sich selbst abgefragt und diese Verbindung auf einen anderen Port verschoben, wobei TCP-Port 22 für zusätzliche Verbindungen offen bleibt, sobald sie eingehen.quelle
netstat -a -P tcp -f inet | awk '/LISTEN$/ {print $0}'
Die Konfiguration und der Status der Firewall-Konfiguration sind firewall- / betriebssystemspezifisch.
Was Sie tun können, ist es von Server2 zu versuchen:
quelle
Vor kurzem habe ich die gleiche Anfrage bekommen und bin auf den Thread gekommen. Ich konnte offene Ports auf der FW mit dem Befehl nc wie folgt scannen, während ich die Ausgabe abfrage:
Grundsätzlich bedeutet eine Zeitüberschreitung, dass der Port an der FW nicht geöffnet ist.
quelle
Sie können ein Online-Tool wie www.firewallruletest.com verwenden, um festzustellen, ob externe Hosts TCP-Verbindungen herstellen können.
quelle