Offene Ports sind unerlässlich, wenn man die auf einem heimischen NAS gespeicherten Daten über das Internet erreichen oder die Heizung vom Büro aus steuern will. Dann muss im Router mindestens ein Port geöffnet werden. Externe Anfragen werden dann intern an das gewünschte Gerät weitergeleitet. Ein solcher Zutrittspunkt wird aber auch schnell wieder vergessen und das ist bei schwacher Zugangssicherung (Kennwörter) fatal. Nmap ist ein seit vielen Jahren bewährtes Werkzeug, um sich über den Status von Netzwerkports zu informieren.
Wann Sie Nmap brauchen
Mit Nmap können Sie einen Rechner oder ein gesamtes Subnetzwerk auf offene Ports untersuchen. Das Werkzeug für die Kommandozeile hilft Ihnen herauszufinden, ob ein bestimmter Port auf dem Zielsystem geöffnet ist. Wie bei allen Sicherheitswerkzeugen gilt auch hier, dass Sie Ihre Untersuchungen auf eigene Systeme beschränken sollten. Im lokalen Netzwerk ist Nmap jederzeit erlaubt. Die nachfolgenden Beispiele verwenden aus diesem Grund ausschließlich lokale Adressen. Beachten Sie aber, dass der eigentlich sicherheitsrelevante Scan der Ihrer öffentlichen Adresse darstellt. Beschränken Sie sich beim Scannen öffentlicher IP-Adressen aber immer auf diejenige, die Ihr Router als Ihre eigene anzeigt (etwa die Fritzbox unter „Übersicht“), oder gegebenenfalls auf diejenige Ihres eigenen Webauftritts bei einem Internethoster. Beim Nmap-Scan fremder Adressen begehen Sie nicht nur einen unfreundlichen Akt, sondern können sich strafbar machen. Linux-Nutzer finden Nmap in den Paketquellen der Distribution. Wer das Werkzeug unter Windows einsetzen will oder eine bestimmte Version aus dem Quellcode kompilieren möchte, muss die Projektseite aufsuchen . Nmap ist ein Kommandozeilenprogramm, es gibt aber mit Zenmap auch ein grafisches Front-End, das die Aufträge an Nmap weiterreicht und dabei auch über die Nmap-Syntax informiert.
Linux-Firewall einrichten: Iptables erklärt
Geöffnete Ports analysieren

Ein physikalischer Server kann verschiedene Dienste parallel anbieten. Das NAS im Wohnzimmer kann beispielsweise über ein Terminal erreicht werden (SSH-Sitzung) und stellt eine Weboberfläche zur Verfügung (HTTP-Zugang). Damit sich die Datenpakete, die in der Regel über das gleiche Protokoll abgewickelt werden (heute in der Regel TCP/IP), nicht in die Quere kommen, werden die Dienste auf unterschiedlichen Ports bereitgestellt. Hier hat sich eine Reihe von Standards etabliert. Beispielsweise werden die Anfragen an einen Webserver üblicherweise über Port 80 abgewickelt, SSH über Port 22 und viele weitere .
Für eine erste Abfrage genügt der Terminalbefehl nmap [Adresse/Adressraum] , etwa:
nmap 192.168.178.10
Wenn Sie Zenmap verwenden, tragen Sie Einzeladresse oder Adressraum in das Feld „Ziel“ ein und drücken ohne weitere Veränderungen auf „Scan“. Statt der IP-Adresse können Sie auch den Hostnamen verwenden. Als Rückmeldung erhalten Sie eine Übersicht der geöffneten Ports mit der jeweiligen Nummer, dem Status und dem Service, der auf diesem Port aktiv ist. Falls Sie die Rückmeldung erhalten, dass das Zielsystem nicht erreichbar („Down“) ist, Sie aber sicher sind, dass der Rechner läuft, ergänzen Sie den Aufruf mit „-Pn“:
nmap -Pn 192.168.178.10
Damit unterdrückt Nmap seine Pingabfrage, denn manche Systeme sind so konfiguriert, dass sie auf Pings nicht antworten (auch bei Routern einstellbar). In der Ergebnisliste können Sie jetzt überprüfen, ob die geöffneten Ports wirklich benötigt werden. Vielleicht haben Sie im Router ja einmal einen Port für ein Onlinespiel oder eine Filesharing-Anwendung geöffnet, die Sie schon lange nicht mehr nutzen? Eine Internet-Portfreigabe im Router können Sie manuell schließen (Fritzbox: „Internet –› Freigaben –› Portfreigaben“), einen offenen Port im lokalen Netz nur dadurch, dass Sie das verantwortliche Programm beenden.
Nmap kann auch ganz gezielt nach einzelnen Ports oder einem Portbereich fahnden, wenn Sie den Schalter „-p“ verwenden:
nmap -p 22 192.168.178.10
Dieser Befehl ermittelt, ob auf dem Rechner der Standardport 22 für SSH aktiv ist. Danach erhalten Sie wichtige Hinweise auf den Status eines Ports:
Open: Ein Dienst ist bereit, auf diesem Port Datenpakete in Empfang zu nehmen. Es ist Hauptaufgabe von Nmap, solche offenen Ports zu finden, um danach nicht benötigte zu schließen oder benötigte gut zu sichern (Kennwort).
Closed: Es sind keine Verbindungen auf diesem Port möglich.
Blocked: Um Ports zu schützen, werden diese oft durch Firewalls und andere Sicherheitseinrichtungen geschützt. Der Scanner kann nicht feststellen, ob der Port geöffnet oder geschlossen ist.
Unblocked: Nmap kann nicht feststellen, ob der Port offen oder geschlossen ist. Der Port ist nicht durch eine Firewall geschützt.
Anleitung: Linux-Server rundherum absichern
Alle Netzwerkgeräte finden

Die Annäherung eines Hackers an ein unbekanntes Netzwerk beginnt in der Regel mit der Abfrage der darin vorhandenen Rechner. Für diese „Host Discovery“gibt es mit Nmap verschiedene Wege. Der unauffällige Listscan geht lediglich alle IP-Adressen in einem Netzwerk durch und nutzt die sogenannte Reverse-DNS-Abfrage. Standardmäßig setzt Nmap einen Pingpefehl auf die Zieladresse ab, der bemerkt werden könnte. Wird auf den Ping verzichtet, ergibt sich aus Sicht des Netzbetreibers nur „normaler“ DNS-Verkehr.
Schon eine solche einfache Liste kann Schwächen des Netzwerks zeigen. Denn bei der Installation eines Betriebssystems müssen die Anwender oft einen Hostnamen angeben. Wenn Sie diesen nicht editieren, wird dann ein vom Hersteller definierter Eintrag verwendet, der den Gerätetyp verrät. Viele Administratoren nutzen zur leichteren Orientierung auch den Hostnamen, um Hinweise auf die Verwendung des Systems zu geben. Die Abfrage mit
nmap -sL 192.168.1.*
fördert eine Liste der Rechner im Netz herbei. Wird die Abfrage um „-Pn“ ergänzt, unterbleibt der (für einen Hacker) verräterische Ping.
Detailanalyse in einem Netzwerk
Ein komplexes Beispiel soll zeigen, wie mächtig Nmap ist. Dazu wird ein ganzes Netzwerk untersucht. Statt einer IP-Adresse wird ein ganzer Adressraum genutzt, um alle dort laufenden Rechner zu prüfen. Wieder wird die Pingabfrage unterbunden, also der Schalter „-Pn“ verwendet. Und hier soll Nmap außderdem ermitteln, welche Software hinter einem Port läuft (Schalter „-sV“). Für möglichst genaue Portinfos sorgt der Schalter „-version-all“. Der weitere allgemeine Parameter „-v“ macht Nmap insgesamt so gesprächig wie möglich:
nmap -Pn -sV --version-all -v 192.168.178.*
Ihre Geduld wird auf jeden Fall belohnt werden. Denn Sie erhalten nicht nur Hinweise darauf, welchen Status die Ports besitzen, sondern können ermitteln, welche Serversoftware eingesetzt wird. Das wiederum kann die Ausgangsbasis für weitere Analysen liefern, etwa um die Sicherheit der eingesetzten Programme genauer unter die Lupe zu nehmen.