5.8. Bestätigen, welche Ports auf Verbindungen abhören

Nachdem Sie die Netzwerk-Services konfiguriert haben, ist es wichtig, zu überprüfen, welche Ports die Netzwerkschnittstellen im System tatsächlich abhören. Alle offenen Ports können Beweis für ein unbefugtes Eindringen sein.

Es gibt zwei grundlegende Herangehensweisen für das Auflisten der Ports, die das Netzwerk abhören. Die weniger zuverlässige Methode ist, den Netzwerkstack durch Befehle wie netstat -an oder lsof -i abzufragen. Diese Methode ist daher unzuverlässiger, da die Programme sich nicht vom Netzwerk aus mit dem Computer verbinden, sondern eher prüfen, was auf dem System ausgeführt wird. Aus diesen Grund sind diese Applikationen häufig Ziel für Ersetzungen durch Angreifer. Durch diese Methode versuchen Cracker ihre Spuren zu verwischen, wenn diese unbefugt Netzwerkports geöffnet haben.

Ein etwas zuverlässigerer Weg für das Prüfen, welche Ports das Netzwerk abhören, ist mit einem Port-Scanner wie z.B. nmap.

Der folgende Befehl, von einer Konsole aus eingegeben, stellt fest, welche Ports auf TCP-Verbindungen aus dem Netzwerk mithören.

nmap -sT -O localhost

Die Ausgabe dieses Befehls sieht wie folgt aus:

Starting nmap V. 3.00 ( www.insecure.org/nmap/ )
Interesting ports on localhost.localdomain (127.0.0.1):
(The 1596 ports scanned but not shown below are in state: closed)
Port       State       Service
22/tcp     open        ssh
111/tcp    open        sunrpc
515/tcp    open        printer
834/tcp    open        unknown
6000/tcp   open        X11
Remote OS guesses: Linux Kernel 2.4.0 or Gentoo 1.2 Linux 2.4.19 rc1-rc7)

Nmap run completed -- 1 IP address (1 host up) scanned in 5 seconds

Diese Ausgabe zeigt, dass das System portmap ausführt, dadurch, dass der Service sunrpc vorhanden ist. Es wird jedoch auch ein unbekannter Service auf Port 834 ausgeführt. Um zu prüfen, ob dieser Port zu der offiziellen Liste bekannter Services gehört, geben Sie folgendes ein:

cat /etc/services | grep 834

Dieser Befehl erhält keine Ausgabe. Dies bedeutet, dass der Port im reservierten Bereich (0 bis 1023) liegt und Root-Zugang zum Öffnen benötigt, jedoch nicht mit einem bekannten Service assoziiert ist.

Als nächstes können Sie Informationen über den Port mittels netstat oder lsof abrufen. Um Port 834 mit Hilfe vonnetstat zu prüfen, geben Sie folgenden Befehl ein:

netstat -anp | grep 834

Dieser Befehl erhält folgende Ausgabe:

tcp   0    0 0.0.0.0:834    0.0.0.0:*   LISTEN   653/ypbind

Das Vorhandensein eines offenen Ports in netstat ist beruhigend, da ein Cracker, der einen Port wiederholt auf einem geknackten System öffnet , das Anzeigen des Ports durch diesen Befehl höchstwahrscheinlich nicht zulassen würde.Desweiteren zeigt die Option [p] die Prozess-ID (PID) des Services an, der diesen Port geöffnet hat. In diesem Fall gehört der offene Port zu ypbind (NIS), ein RPC-Service, der zusammen mit dem portmap-Service abläuft.

Der lsof-Befehl zeigt ähnliche Informationen an, da auch hiermit offene Ports mit Services verknüpft werden:

lsof -i | grep 834

Unten finden Sie den betreffenden Teil der Ausgabe für diesen Befehl:

ypbind      653        0    7u  IPv4       1319                 TCP *:834 (LISTEN)
ypbind      655        0    7u  IPv4       1319                 TCP *:834 (LISTEN)
ypbind      656        0    7u  IPv4       1319                 TCP *:834 (LISTEN)
ypbind      657        0    7u  IPv4       1319                 TCP *:834 (LISTEN)

Wie Sie sehen, können diese Tools eine Menge Informationen über den Status von Services auf einem Computer geben. Diese Tools sind flexibel und liefern eine Vielzahl von Informationen zu den Netzwerkservices und zur Konfiguration. Es wird deswegen dringend empfohlen, die man-Seiten zu lsof, netstat, nmap und services zu lesen.