Home   Profil   Fun
#28 Linux  03.06.2007

Wie man Prozesse findet die zu offenen Ports gehören


Hat man einmal einen offenen Port auf seinem System entdeckt, den man sich nicht erklären kann so lässt sich auf einfache Weise der Prozess identifizieren, der diesen Port verwendet.
Hierzu lassen wir uns zuerst mal eine Liste aller offenen Ports ausgeben.
netstat -an
Am Begin der Liste sieht man die Spaltenüberschriften Local Address und Foreign Address. Darunter sieht man die Nummern der geöffneten Ports im Anschluss an die IP-Adressen..

Für eine bessere Übersicht kann man sich die IP-Adressen auch in die Servernamen auflösen lassen.
netstat -a

Jetzt nimmt man die Portnummer die einen interessiert vom ersten Listing und verwendet sie zusammen mit lsof. In diesem Beispiel den Port 25.
lsof -i:25
Als Ergenis erhält man nun die Prozess-ID (PID) und den Namen des Prozesses der auf dem angegebenen Port lauscht.

Mit der PID hat man alles was man benötigt und kann, sofern /proc gemountet ist, detaillierte Informationen zu dem Prozess abrufen. Oder einfach mit ps auxf nachsehen. Das folgende Beispiel gibt das aktuelle Arbeitsverzeichnis des Prozesses aus.
ls -ld /proc/[PID]/cwd


Noch einfacher geht es mit weiteren Parametern zu netstat. Hierbei wird die PID in der letzten Spalte aufgelistet:
netstat -tulpen