Wie Sie prüfen, ob ein Port offen ist
Um zu prüfen, ob ein Port von außen offen ist, müssen Sie von außen testen: Ein Verbindungsversuch aus einem anderen Netzwerk ist das einzige Ergebnis, das etwas aussagt. Ein Port, der von Ihrem eigenen Rechner aus antwortet, kann trotzdem durch eine Firewall, eine Security Group oder Ihren Hosting-Anbieter blockiert werden, bevor ein externer Besucher ihn erreicht.
Der schnelle Weg: von außerhalb Ihres Netzwerks testen
Geben Sie den Hostnamen oder die IP-Adresse und die Portnummer in ein Port-Check-Tool ein und lassen Sie es eine Verbindung von einer Maschine irgendwo sonst im Internet öffnen. Ob der Dienst läuft, ist eine andere Frage. Was Sie wissen müssen, ist, ob irgendjemand da draußen ihn erreichen kann, und ein Test vom selben Server oder aus demselben Büronetzwerk überspringt genau die Schichten, die das Problem meist verursachen.
Der manuelle Weg: nc, nmap und telnet
Von jeder anderen Maschine in einem anderen Netzwerk erledigen drei Werkzeuge die Aufgabe:
nc -zv example.com 443 # single port, zero-I/O scan, verbose
nmap -Pn -p 22,80,443 example.com # several ports, reports open/closed/filtered
telnet example.com 25 # old but universal; Ctrl+] then "quit" to exit
nc (netcat) ist am einfachsten: -z bedeutet verbinden und sofort trennen, ohne Daten zu senden, -v gibt das Ergebnis aus. Es antwortet mit "erfolgreich" oder "abgelehnt / Timeout" und sonst nichts. Greifen Sie zu nmap, wenn die Unterscheidung wichtig ist, denn es ist von den dreien das einzige, das eine abgelehnte Verbindung zuverlässig von einer verworfenen unterscheidet, und -Pn weist es an, seine Ping-Prüfung zu überspringen und den Port auch dann zu testen, wenn der Host nicht auf Pings antwortet. telnet ist fast überall installiert, und bei textbasierten Protokollen wie SMTP oder HTTP zeigt es Ihnen zusätzlich das Begrüßungsbanner, das der Dienst sendet.
Um zu sehen, was auf der Maschine selbst lauscht, was eine andere Frage ist, nutzen Sie ss -tulpn unter Linux oder netstat -ano unter Windows. Lauscht ein Port dort, ist aber von außen geschlossen, liegt die Blockade dazwischen: eine Host-Firewall, eine Cloud-Security-Group oder der Anbieter.
Offen, geschlossen und gefiltert sind drei verschiedene Antworten
- Offen. Etwas hat den TCP-Handshake abgeschlossen. Ein Dienst lauscht und hat die Verbindung angenommen.
- Geschlossen. Der Host hat geantwortet, aber mit einer Ablehnung (ein TCP-Reset). Die Maschine ist erreichbar, und auf diesem Port lauscht nichts. Das ist eine schnelle, eindeutige Antwort.
- Gefiltert. Es kam überhaupt nichts zurück. Eine Firewall hat das Paket verworfen, ohne zu antworten, sodass die Prüfung in ein Timeout läuft. Das ist die langsame Antwort, und sie bedeutet, dass eine Firewall im Weg steht, nicht dass der Dienst ausgefallen ist.
Geschlossen verweist Sie auf die Dienstkonfiguration. Gefiltert verweist Sie auf eine Firewall-Regel, eine Security Group oder einen Internetanbieter, der den Port blockiert. Viele Anbieter blockieren Port 25 ausgehend standardmäßig, und einige blockieren 445 und andere häufig missbrauchte Ports, was ein gefiltertes Ergebnis erzeugt, das keine noch so umfangreiche serverseitige Konfiguration ändern wird.
UDP ist ein Sonderfall. UDP kennt keinen Handshake, weshalb ein Scanner oft nicht zwischen einem offenen und einem gefilterten Port unterscheiden kann, und Schweigen ist bei einem gesunden UDP-Dienst eine gültige Antwort. Behandeln Sie UDP-Ergebnisse als deutlich schwächeren Beleg als TCP-Ergebnisse.
Warum ein offener Port kein funktionierender Dienst ist
Ein offener Port beweist, dass sich eine TCP-Verbindung aufbauen lässt. Er sagt nichts darüber aus, was danach passiert. All das sind offene Ports mit defekten Diensten:
- Ein Webserver, der Verbindungen auf 443 annimmt, dabei aber 502 ausliefert, weil die dahinterliegende Anwendung abgestürzt ist.
- Eine Datenbank, die auf ihrem Port lauscht, aber jeden Login ablehnt.
- Ein Mailserver, der den Handshake abschließt und die Sitzung dann beendet, bevor er eine Nachricht annimmt.
- Ein Dienst, dessen TLS-Zertifikat letzte Nacht abgelaufen ist. Der Port öffnet sich, und jeder Client lehnt die Verbindung ab.
- Ein Port, der an die falsche interne Maschine weitergeleitet wird, die Verbindungen annimmt und nichts Brauchbares antwortet.
Eine Portprüfung ist also der erste Schritt einer Diagnose, nicht die ganze Diagnose. Sobald der Port antwortet, prüfen Sie das Protokoll: fordern Sie eine Seite an und lesen Sie den Statuscode, führen Sie einen echten Login aus oder senden Sie eine Testnachricht. Die Reihenfolge zählt, denn eine Portprüfung schließt die gesamte Netzwerkebene schnell aus und erlaubt Ihnen, dort nicht mehr weiterzusuchen.
Eine kurze Checkliste, wenn sich ein Port nicht öffnen lässt
- Bestätigen Sie, dass der Dienst auf der Maschine lauscht, und auf der richtigen Schnittstelle. Ein Dienst, der an
127.0.0.1gebunden ist, ist von nirgendwo sonst erreichbar, und das ist eine sehr häufige Ursache. - Prüfen Sie die Host-Firewall (
ufw,firewalldoder die Windows-Firewall). - Prüfen Sie die Cloud-Security-Group oder das Netzwerk-ACL, eine von der Host-Firewall getrennte Schicht, die häufig vergessen wird.
- Prüfen Sie eine etwaige Router- oder NAT-Portweiterleitung, falls die Maschine nicht direkt auf einer öffentlichen Adresse liegt.
- Bestätigen Sie, dass der Anbieter diesen Port nicht blockiert, besonders bei Mail-Ports.
- Testen Sie erneut aus einem dritten Netzwerk, um eine eigene ausgehende Filterung auszuschließen.
Wiederholte Prüfung nach Zeitplan
Eine Portprüfung sagt Ihnen den Zustand gerade jetzt, von wo auch immer die Prüfung lief. Ports schließen sich normalerweise nicht von selbst. Firewall-Regeln werden geändert, Security Groups werden verschärft, Zertifikate laufen ab, und Dienste starten nach einem Neustart nicht mehr neu, und nichts davon kündigt sich an. Geplantes Port-Monitoring baut die Verbindung in einem Intervall von mehreren Standorten aus erneut auf und schlägt Alarm, sobald die Verbindung nicht mehr gelingt, was auch den Fall erkennt, in dem der Port aus einer Region erreichbar und aus einer anderen gefiltert ist. Testen Sie jetzt einen Port mit dem Port-Check-Tool. Öffnet sich der Port, schlägt aber TLS fehl, lesen Sie als Nächstes wie Sie den Zertifikatsablauf prüfen.