claim.gif
Linux Magazin Linux User Easy Linux Ubuntu User International Linux Community
Erschienen in EasyLinux 03/2005   »   Ausgabe bestellen

Portscanner Nmap

Anklopfen

von Elisabeth Bauer


Um die Sicherheit des eigenen Systems zu überprüfen oder einfach mal zu schauen, welche Dienste ein Server im Internet anbietet, erweist sich ein so genannter Portscanner als nützlich. Wir stellen Nmap, das Standard-Tool unter Linux, in der Kommandozeilen- und einer grafischen Version vor.

Für die einen sind sie schon fast kriminell, für die anderen wichtige Sicherheitswerkzeuge: Mit so genannten Portscannern überprüfen Sie, welche Dienste auf einem Rechner im Netzwerk von außen zugänglich sind. Der beliebteste Portscanner unter Linux heißt Nmap. Neben einer Version für die Kommandozeile bringen die meisten Distributionen auch das grafische Frontend NmapFE mit, mit dem sich Anfänger unter Umständen leichter tun. Wir erklären in diesem Artikel, wie Sie Nmap einsetzen und die Ausgaben des Programms richtig interpretieren.

Ein Hinweis vorweg: Da auch Hacker als erste Stufe eines Angriffs erstmal einen Portscan starten, werden solche Aktionen von einigen Leuten nicht gern gesehen, und auch manche Personal Firewalls sind so konfiguriert, dass sie bei Portscans warnen. Prinzipiell sind Portscans nicht illegal, doch sollten Sie sie mit Bedacht einsetzen -- zum Beispiel um die Sicherheit Ihres Rechners oder der Computer von Freunden von außen zu überprüfen. Wenn Sie wahllos Rechner anderer Leute scannen, fangen Sie sich unter Umständen Beschwerden ein.

Installation

Bei Mandrake Linux ist Nmap schon installiert, Suse-Nutzer installieren das Tool mit YaST nach. Starten Sie den Paketverwalter über den Eintrag System / YaST im K-Menü und authentifizieren Sie sich mit Ihrem Administratorpasswort. Klicken Sie auf Software installieren oder löschen und geben Sie ins Suchfeld nmap ein. YaST liefert daraufhin zwei Ergebnisse, nmap und nmap-gtk, das grafische Frontend für den Portscanner. Markieren Sie beide Pakete und stoßen mit einem Klick auf Übernehmen die Installation an. Legen Sie die angeforderte CD oder DVD ein, YaST spielt dann die Pakete ein.

Auch unter Fedora Core 2 müssen Sie Nmap nachträglich installieren. Rufen Sie dazu Systemeinstellungen / Paketmanagement im K-Menü auf und geben Sie Ihr Root-Passwort ein. Nmap finden Sie in der Kategorie Systemtools / Systemtools. Über Details gelangen Sie in den Dialog, in dem Sie nmap-frontend und nmap zur Installation markieren. Mit einem Klick auf Schließen und dann auf Aktualisieren spielen Sie die Pakete ein.

Um alle Features von Nmap auszunutzen, müssen Sie das Tool als Root starten. Öffnen Sie dazu ein Terminal und geben Sie su - und in der folgenden Abfrage Ihr Root-Passwort ein. Dass Sie nun als Root angemeldet sind, erkennen Sie am Prompt: Statt $ steht dort #.

Rufen Sie nmap ohne zusätzliche Angaben auf, erhalten Sie eine recht verwirrende Übersicht über die möglichen Optionen (Abbildung 1). Im Folgenden erklären wir die wichtigsten Aufrufparameter.

Abb. 1: Ohne Parameter aufgerufen, gibt Nmap eine Liste möglicher Aktionen aus.

Einen einfachen Scan starten Sie mit dem Befehl

nmap -sT -p 1-1024 <i>Server-Name<i>

Als Server-Namen geben Sie entweder die IP-Adresse oder den Domain-Namen des Rechners an, den Sie überprüfen wollen. -sT bezeichnet den Typ des Scans, in diesem Fall beschränkt sich Nmap auf TCP-Ports. Hinter dem Parameter -p stehen die Ports, die Nmap scannen soll. Wollen Sie erfahren, welche Dienste ein Rechner anbietet, zum Beispiel ob dort ein Web- oder Mail-Server läuft, geben Sie den Bereich von Port 1 bis 1024 an: Auf diesen so genannten privilegierten Ports laufen normalerweise die klassischen Linux-Server-Dienste. Böswillige Software wie Trojaner versteckt sich dagegen oft auch auf höheren Portnummern. Wenn Sie beispielsweise einen Windows-Rechner auf Schad-Software überprüfen wollen, sollten Sie einen größeren Bereich wählen. Einzelne Ports geben Sie durch Kommas getrennt an.

Je mehr Ports Nmap scannt, desto länger dauert es. Mit [Strg-C] brechen Sie das Programm ab, falls Ihnen die Geduld ausgeht. Ohne die Option -p prüft Nmap standardmässig die Ports von 1-1024 sowie alle, die auf seiner Liste von Diensten stehen. Ist Nmap fertig, zeigt er eine Liste der offenen Ports an. Die Angaben in der Spalte SERVICE entsprechen dabei nicht immer dem Dienst, der tatsächlich auf diesem Port läuft. Nmap bezieht diese Informationen aus einer mitgelieferten Datei.

Um herauszufinden, welche Programme sich wirklich dahinter verbergen, verwenden Sie wie im zweiten Befehl in Abbildung 2 die Option -sV. Dabei versucht Nmap, anhand typischer Antwortmuster die Programme und deren Versionen zu erkennen. Dieses Verfahren funktioniert nicht hundertprozentig zuverlässig, aber oft gewinnen Sie daraus interessante Erkenntnisse. Der zweite Befehl in Abbildung 2 bezieht sich auf ein Fedora-Core-2-System. Im Vergleich dazu zeigt Abbildung 3 ein typisches Server-System: Hier haben wir easylinux.de gescannt.

Sind Ports durch eine Firewall geschützt, gibt Nmap für diese den Status filtered (gefiltert) zurück; Ports, auf denen kein Dienst horcht, sind closed (geschlossen).

Abb. 2: Nmap scannt die Ports 1 bis 1024 auf dem Rechner kira. Im zweiten Befehl (Option -sV) versucht Nmap herauszufinden, welche Programme auf den offenen Ports ihre Dienste anbieten.

Scannen ist eine Sache, etwas anderes ist es, die gewonnenen Daten richtig zu interpretieren. Was bedeutet ein offener Port? Zunächst einmal heißt das nicht mehr, als dass dort ein von anderen Rechnern zugänglicher Dienst läuft. Das kann Absicht oder ein Versehen sein. Zeigt Ihnen Nmap beispielsweise als Ausgabe Port 80 als offen an, läuft dort aller Wahrscheinlichkeit nach ein Web-Server. Im Browser können Sie die Adresse eingeben und über das HTTP-Protokoll von diesem Rechner Web-Seiten abrufen. Ein offener Port 22 deutet auf eine Secure-Shell (SSH) hin: Auf diesem Rechner können Sie sich, sofern Sie einen Linux-Benutzer-Account darauf haben, mit dem Kommando ssh rechnername anmelden. Auf Port 25 wartet meist ein Mail-Server auf E-Mails.

All das stellt noch keine Gefahr dar, solange der Eigentümer des Rechners diesen Dienst bewusst aktiviert hat. Gehört Ihnen der gescannte Rechner und haben Sie den Dienst weder absichtlich angeschaltet noch aktuellen Bedarf dafür, sollten Sie ihn deaktivieren. Das erledigen Sie, wie in [2] beschrieben, über den Runlevel-Editor Ihrer Distribution.

Sag mir, welches System du bist...

Neben Port-Scannen besitzt Nmap eine weitere Funktion, die in der Fachsprache OS-Fingerprinting heißt -- Sie nehmen sozusagen einen Fingerabdruck des Betriebssystems ("Operating System" -- OS -- auf Englisch). Rufen Sie Nmap in der Form

nmap -0 <i>Server-Name<i>

auf, versucht das Programm, das Betriebssystem des Rechners zu bestimmen. Dazu analysiert es das Antwortverhalten laufender Dienste, braucht also zumindest einige offene Ports. Wie beim Erkennen der Programmversionen sollten Sie hier ebenfalls keine perfekte Genauigkeit erwarten. Sind alle Ports durch eine Firewall geschützt, also im Zustand Filtered, kann Nmap in der Regel keine Aussage treffen.

Nmap grafisch

Für Anwender, die eine grafische Applikation bevorzugen, bieten die Nmap-Entwickler das Tool NmapFE an. Genau wie die Kommandozeilenversion starten Sie dieses am besten als Root. Öffnen Sie dazu mit [Alt-F2] ein Schnellstartfenster und geben Sie dort kdesu nmapfe ein.

Ins Feld Target(s) tragen Sie den Namen oder die IP-Adresse des Rechners ein, den sie überprüfen wollen. Für einen einfachen Portscan brauchen Sie nur den ersten Reiter Scan. Im Drop-Down-Menü von Scan type sind hauptsächlich die Optionen Connect Scan, SYN Stealth Scan und UDP Portscan interessant. Die ersten beiden prüfen TCP-, die dritte UDP-Ports. Das Protokoll TCP wird zum Beispiel für Mail- oder Web-Server benutzt, UDP dagegen ist ein so genanntes verbindungsloses Protokoll, das dort eingesetzt wird, wo schnell große Datenmengen übertragen werden sollen, zum Beispiel bei der Internet-Telefonie. Der Connect Scan und der SYN Stealth Scan unterscheiden sich dadurch, dass letzterer keine kompletten Verbindungen zur Prüfung aufbaut, sondern abbricht. Dadurch werden solche Portscans seltener in Logfiles mitgeschnitten.

Unter Scanned Ports wählen Sie entweder in der Drop-Down-Box eine Option aus oder tragen im Feld Range von Hand die gewünschten Ports ein. Zur Kontrolle können Sie ganz unten bei Command überprüfen, wie der entsprechende Kommandozeilenbefehl aussähe. Ist alles zur Zufriedenheit eingestellt, starten Sie die Überprüfung mit einem Klick auf Scan (Abbildung 3). (eba)

Abb. 3: Das grafische Frontend NmapFE überprüft den Server von "easylinux.de" und findet dort einen FTP-, einen Mail- und einen Web-Server, der auch SSL anbietet ("https"). Außerdem läuft ein SSH-Daemon. Die restlichen Ports sind von einer Firewall geschützt ("filtered").
Infos
[1] Port-Liste bekannter Trojaner: http://www.doshelp.com/trojanports.htm
[2] Andrea Müller und Elisabeth Bauer: "Boot-Vorgang unter der Lupe", EasyLinux 01/2004, S. 74

Dieser Online-Artikel kann Links enthalten, die auf nicht mehr vorhandene Seiten verweisen. Wir ändern solche "broken links" nur in wenigen Ausnahmefällen. Der Online-Artikel soll möglichst unverändert der gedruckten Fassung entsprechen.

Druckerfreundliche Version | Feedback zu dieser Seite | Datenschutz | © 2017 COMPUTEC MEDIA GmbH | Last modified: 2007-04-05 11:10

Nutzungsbasierte Onlinewerbung

[Linux-Magazin] [LinuxUser] [Linux-Community] [Admin-Magazin] [Ubuntu User] [Smart Developer] [Linux Events] [Linux Magazine] [Ubuntu User] [Admin Magazine] [Smart Developer] [Linux Magazine Poland] [Linux Community Poland] [Linux Magazine Brasil] [Linux Magazine Spain] [Linux Technical Review]