Die richtigen Werkzeuge zur Verbindungsprüfung

Mit den richtigen Werkzeugen und ein bisschen Hintergrundwissen kann man zuverlässig feststellen, ob ein Server im Netzwerk erreichbar ist - und wenn nicht, wo es klemmt.

Wenn ein Server nicht erreichbar zu sein scheint, geben erfahrene Netzwerker als erstes ein Ping-Kommando ein. Der Befehl:

ping 192.168.1.1

sendet ein Paket im Internet Control Message Protocoll (ICMP), das eine Antwort des angesprochenen Rechners anfordert (Echo Request). Dieser bekundet daraufhin seine Existenz mit einem passenden ICMP-Paket (Echo Reply). Doch die Aussagekraft solcher Pings ist gering. Wenn die Antwort ausbleibt, weiß man lediglich, dass es da irgendwo auf der Strecke zwischen den beiden Rechnern ein Problem gibt, aber nicht wo und welches1.

So kann es sein, dass der Rechner 'unten' ist. Aber genauso gut kann auch irgendwo auf dem Weg eine Firewall das Ping-Paket verworfen haben. Unter Umständen beantwortet der Server trotzdem HTTP-Anfragen auf TCP-Port 80. Gerade bei Web-Servern im Internet kommt es immer häufiger vor, dass die Administratoren durch vorgeschaltete Filter nur die Pakete passieren lassen, die der Server auch tatsächlich beantworten soll - und Pings gehören oft nicht dazu2.

Der nächste Schritt nach dem Ping ist deshalb zumeist ein Aufruf von traceroute beziehungsweise unter Windows tracert. tracert sendet zunächst ein Ping-Paket mit einer Time To Live (TTL) von 1. Dieses IP-Flag soll Endlosschleifen im Internet verhindern. Jede Station auf dem Weg zum Ziel setzt die TTL um eins herab. Hat sie den Wert 0 erreicht, ist die Lebenszeit des Pakets abgelaufen, der Router verwirft es und benachrichtigt den Absender durch ein ICMP-Paket (Time Exceeded). Bei einer TTL von 1 macht dies schon die erste Station, bei 2 die zweite und so weiter. So kann tracert nach und nach den gesamten Weg zu einem Server ermitteln und ausgeben.

Das Unix-Tool traceroute funktioniert im Prinzip genauso, verwendet allerdings für die Tests UDP-Pakete (standardmäßig auf Port 33434). Das Internet Protokoll garantiert zwar nicht, dass aufeinander folgende Pakete immer denselben Weg nehmen, die Wahrscheinlichkeit, dass sich die Routen zwischen zwei traceroute-Anfragen ändert, ist jedoch ziemlich gering.

Mit Looking Glasses einmal rund um die Welt geschaut

Den umgekehrten Weg von einem Server zum eigenen Rechner testet man am besten mit so genannten Looking Glasses. Ein Server, der diesen Dienst anbietet, startet ein traceroute auf eine IP-Adresse und präsentiert das Ergebnis. Eine erste Anlaufstelle, um gut platzierte Looking Glasses zu finden, ist der Server www.traceroute.org.

Damit kann man schon in vielen Fällen feststellen, an welcher Stelle im Netz Pakete verloren gehen und eventuell sogar Gegenmaßnahmen ergreifen. Zwischengeschaltete Firewalls können jedoch immer noch irreführende Ergebnisse verursachen. Netzwerkprofis setzen deshalb gerne das traceroute-ähnliche Tool lft3 ein, das TCP verwendet und es dem Benutzer erlaubt, dabei auch Quell- (-s) und Zielport (-d) der Testpakete anzugeben. Damit kann man recht exakt den Weg beispielsweise einer Web-Server-Anfrage nachstellen.

In der Grundeinstellung verwendet lft den Quellport 53 und als Ziel den Web-Server-Port 80. Port 53 wird in der Regel für den Domain Name Service (DNS) verwendet und einfach gestrickte Paket-Filter lassen diese vermeintlichen DNS-Antworten oftmals ungefiltert passieren. So könnte4 man mit

lft www.x-over.com

den Weg einer Anfrage an unseren Webserver nachvollziehen. Als Bonbon bietet lft besondere Funktionen, um Firewalls auf dem Weg aufzuspüren (-E) und die Namen der passierten Netze anzuzeigen.

Das Tool lft im Einsatz


Die Tools der Wahl sind aber das universell einsetzbare Unix-Programm hping2 oder das noch wesentlich mächtigere netwox5 (vormals lcrzoex). Beide können nahezu beliebige IP-Pakete erzeugen und die Antworten darauf anzeigen. So kann man neben ICMP-, TCP- oder UDP-Paketen auch Raw-IP-Pakete mit beliebigen IP-Protokollnummern erzeugen, was beispielsweise hilft, Übertragungsproblemen mit den VPN-Protokollen GRE oder ESP auf den Grund zu gehen. Des Weiteren lassen sich die einzelnen Flags und Optionen der Protokolle über Kommandozeilenparameter steuern und auch fragmentierte Pakete erzeugen.

Um sich in dem Dschungel der Kommandozeilenoptionen zurechtzufinden, muss man allerdings schon recht genau wissen, was man will und wie TCP/IP funktioniert. Der einfache Aufruf:

hping2 www.x-over.com

führt einen so genannten TCP-Ping durch und sendet TCP-Pakete vom Port 53 an Port 80 unseres Web-Servers. Mit "-p 80" kann man als Zielport auch den Web-Server- Port gezielt ansprechen, - -traceroute aktiviert einen Traceroute-Modus. Ob verschlüsselte IPSec-Pakete (IP-Protokoll 50, ESP) ein VPN-Gateway erreichen, kann man mit den Optionen "- -rawip - -ipproto 50 - -traceroute" testen. Wenn der IPSec-Dienst auf dem VPN-Gateway (noch) nicht läuft, sollte es als letzte Station mit ICMP Protocol Unreachable antworten. Ist IPSec bereits aktiv, kommt vom IPSec-Gateway keine Antwort. Weitere Beispiele für die unterschiedlichsten Einsatzszenarien liefern die Man-Page und das im Paket enthaltene HOWTO.

lft, hping2 und netwox sind unverzichtbares Handwerkszeug für Sicherheitsexperten. Mit ihrer Hilfe kann man unter anderem bei Penetration- Tests gezielt die Konfiguration von Firewalls testen oder mit ungewöhnlichen Paketen die Stabilität von Systemen auf die Probe stellen.


Zusätzlich muss man auch noch anmerken, dass ICMP-Pakete in den meisten Fällen mit höherer Priorität behandelt werden als TCP oder UDP. Ein Ping ist also noch lange keine Aussage, ob auch tatsächlich Nutzdaten übertragen werden könnten.

Es ist nicht unüblich, dass ICMP-ECHO gerade bei Webservern im Internet deaktiviert ist. Zum einen beugen Webmaster oftmals auf diese Art und Weise automatisierten PING-Sweeps vor, mit denen Cracker regelmäßig auf der Suche nach Servern das Internet abklopfen. Zum Anderen ist es eine Möglichkeit, wohl nicht die beste, dem Denial-of-Service Angriff Ping-of-Death abzuwehren.

Die Windows-Version von lft benötigt den frei verfügbaren Linux-Layer Cygwin (www.cygwin.com).

In diesem Falle könnte, denn wir haben keine einfach gestrickte Firewall :) .

netwox ist dabei das Tool, das vom Autor favorisiert wird. Nicht nur, dass es eine GUI-Oberfläche besitzt (sehr hilfreich, wenn man Ergebnisse herzeigen will), es gibt auch eine Windows-Version, die sich im Bedarfsfalle auch mal schnell beim Kunden installieren lässt.




Über diese Website

x-over.com ist das Portfolio von Thomas Zettelmayr. Seit 1992 arbeite ich als Freelancer und Consultant in der IT.

Artikel

Projekt-Portfolio

In meinem Portfolio finden Sie, organisiert nach Kategorien, die Projekte an denen ich mitgearbeitet, bzw. die ich realisiert habe.


Die Aufzählungen sind aufgrund von Geheimhaltungserklärungen (NDAs) leider nicht vollständig, aber ich hoffe Sie geben einen guten Überblick.

Eigene Projekte