netstat und lsof – finden wir heraus, wer da über unsere Ports sendet!

Bei Tests mit dem Mailserver ist mir ein offener Port aufgefallen. Beim Überprüfen stellte sich heraus, dass die Verbindung der HHVM gehört. Damit konnte ich nach einer Lösung suchen und die Verbindung schließlich umstellen. Nun läuft sie nur noch über „localhost“.
Um offene Verbindungen aufzustöbern, helfen uns zwei kleine Tools: netstat und lsof. Hier zeige ich Dir, wie Du damit Deinen Server auf offene Ports abklapperst und herausfindest, welches Programm dahinter steckt…

Zuerst brauchen wir root-Rechte
sudo -i

Beide Programme sind Teil der Linux-Installation und müssten daher schon ohne weiteres Zutun auf unserem System laufen…

netstat

Als root dürfen wir netstat ausführen. Dazu gibt es einige Parameter. Wir verwenden hier -pnat

netstat -pnat

Der Befehl zeigt uns die offenen Ports, und welche Programme darüber auf unserem Server die Verbindungen aufmachen.

### Unsere Optionen bedeuten

  • p | Gibt zusätzlich die PID des Programms und den Namen des Dämons an, der dafür verantwortlich ist.
  • n | Schreibt die Ports und IPs als Ziffern und nicht als Name (z.B. „Port 25“ – statt „Port smtp“)
  • a | Zeigt *alle* Verbindungen, also auch die, welche nur lauschen (LISTEN), aber momentan nicht verbunden sind.
  • t | Spart die Detailliste aus und zeigt uns nur die Server.

Sehen wir uns das Ergebnis mal an:
netstat-verbindungen

Ganz links steht der Verbindungstyp. Die meisten Dämonen laufen über TCP.

Daneben befinden sich Host/Port, auf dem unser Server erreichbar ist. Steht 0.0.0.0, darf er jede verfügbare IP des Servers nutzen und ist aus dem Internet erreichbar. Das ist bei den Mail- und Webservern so gewollt. Unser MySQL-Server hingegen lauscht nur auf 127.0.0.1 – dem „localhost“. Hier würde eine Verbindung aus dem Internet auf Port 3306 nicht funktionieren. Und das ist ebenso gewollt und Gut so.

Eins weiter steht, von welchem Host und Port aus unser Server Verbindungen annimmt. Hier könnten wir zum Beispiel einschränken, dass nur unser Backup-Server mit einer festen IP Zugriff auf bestimmte Ports bekommt. Bei den verfügbaren Diensten stehen diese aber alle auf 0.0.0.0:* – also ist jede IP und jeder Port erlaubt.

In der nächsten Spalte teilt uns netstat mit, ob der Dienst nur lauscht, oder ob eine aktive Verbindung hergestellt ist. Bei SSH ist das der Fall, da bin ich selbst eingeloggt. Bei allen anderen Diensten ist der Dämon in Lauerstellung und wartet auf jemand, mit dem er eine Verbindung aufnehmen kann.

Die letzte Spalte sehen wir, weil wir die Option „-p“ gewählt haben. Hier gibt uns netstat die PID und den Namen des Dämons aus, der die Verbindung erstellt. Dadurch können wir feststellen, wer welchen Port verwendet. Und überprüfen, ob auch das Programm, das wir erwarten, auf dem Port liegt.
Installieren wir beispielsweise zwei Mail- oder Webserver, würden diese um den Port „streiten“. Einer startet, der andere sollte erkennen, dass der Port schon belegt ist, und den Start verweigern. In dem Fall sehen wir sofort, wer gerade läuft und wen wir anpassen müssen.

lsof

Mit lsof können wir einfach nachprüfen, ob auf einem Port eine offene Verbindung läuft.

Möchten wir zum Beispiel nur schnell herausfinden, ob – und wenn ja – wer Port 25 in Beschlag hat, tippen wir

lsof -i tcp:25

lsof-tcp-port-25
lsof teilt uns dann mit, dass Port 25 zwei Mal in Verwendung ist. Einmal unter TCPv4 und einmal unter TCPv6. Und dass es beide Male der Dämon „master“ ist, der auf diesem Port lauscht. Das ist der Postfix-Server, also passt das in diesem Fall.

Fazit

Mit den beiden kleinen Tools netstat und lsof können wir schnell überprüfen, welche Programme Verbindungen auf unserem Server öffnen. Oder ob ein Programm auch auf dem richtigen Port läuft, wenn wir beim Konfigurieren seltsame Verbindungsprobleme haben. Probier es aus! Das ist ganz einfach :)

Unsere Firewall „frisst“ alle Versuche, auf Ports zuzugreifen, die wir nicht freigegeben haben. Aber immer darauf vertrauen? Lieber sehen wir nach, ob da jemand zu offenherzig mit dem Internet kommunizieren will und stellen das ab.

„Better Safe than Sorry“

Haftungsausschluss!

Bitte lies Dir den Disclaimer durch, bevor Du eine Anleitung umsetzt...

Anzeige *

Kommentar verfassen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.