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

Nachdem Sie die Netzwerk-Dienste 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 3.55 ( http://www.insecure.org/nmap/ ) at 2004-09-24 13:49 EDT
Interesting ports on localhost.localdomain (127.0.0.1):
(The 1653 ports scanned but not shown below are in state: closed)
PORT      STATE SERVICE
22/tcp    open  ssh
25/tcp    open  smtp
111/tcp   open  rpcbind
113/tcp   open  auth
631/tcp   open  ipp
834/tcp   open  unknown
2601/tcp  open  zebra
32774/tcp open  sometimes-rpc11
Device type: general purpose
Running: Linux 2.4.X|2.5.X|2.6.X
OS details: Linux 2.5.25 - 2.6.3 or Gentoo 1.2 Linux 2.4.19 rc1-rc7)
Uptime 12.857 days (since Sat Sep 11 17:16:20 2004)
 
Nmap run completed -- 1 IP address (1 host up) scanned in 5.190 seconds

Diese Ausgabe zeigt, dass das System portmap ausführt, dadurch, dass der Dienst sunrpc vorhanden ist. Es wird jedoch auch ein unbekannter Dienst auf Port 834 ausgeführt. Um zu prüfen, ob dieser Port zu der offiziellen Liste bekannter Dienste 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 Dienste 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 heimlich 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 Dienstes an, der diesen Port geöffnet hat. In diesem Fall gehört der offene Port zu ypbind (NIS), ein RPC-Dienst, der zusammen mit dem portmap-Dienst abläuft.

Der lsof-Befehl zeigt ähnliche Informationen an, da auch hiermit offene Ports mit Diensten 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 Diensten auf einem Computer geben. Diese Tools sind flexibel und liefern eine Vielzahl von Informationen zu den Netzwerkdiensten und zur Konfiguration. Es wird deswegen dringend empfohlen, die man-Seiten zu lsof, netstat, nmap und services zu lesen.