Computerpartner

  
Sie befinden sich hier: HOMENachrichtenKnow HowIT-Grundlagen
18.03.2017

Kostenlose Werkzeuge, die jedes Netzwerk benötigt

Monitoring Teil 3:

Mit kostenlosen Open-Source-Monitoring-Tools kann ein breiter Bereich von der automatischen Suche nach Geräten bis hin zur Sichtbarmachung von Systemen, Netzwerken und Verkehrsströmen abgedeckt werden.

M. Hein

Zur Vergrößerung anklicken

Mathais Hein

In der Netzwerk- und Server-Welt lautet das Mantra: Sichtbarkeit, Sichtbarkeit, Sichtbarkeit. Wenn ein Administrator nicht weiß, was das Netzwerk und die Server zu jeder Sekunde des Tages machen, betreibt man seine Ressourcen blind. Früher oder später wird den Administrator eine Katastrophe treffen.

Glücklicherweise gibt es gegen solche Probleme viele gute Werkzeuge, sowohl im kommerziellen als auch im Open Source-Bereich. Mein Kredo lautet: Gut und kostenlos schlägt immer gut und teuer! Ich habe eine Liste meiner Lieblings-Open-Source-Tools zusammengestellt. Diese umfasst vom Netzwerk- und Server-Monitoring bis hin zum Backup für Switch- und Router-Konfigurationen alle für den Betrieb wichtigen Werkzeuge.

Host basierende Tools

Bei den Host basierenden Tools werden nicht nur die Open Source Tools vorgestellt, sondern auch die kostenlosen Tools, welche bei den Betriebssystemen mitgegeben werden. In fast allen Fällen fängt eine erfolgreiche Recherche oder Fehlerbehandlung mit diesen Tools an. Häufig führen diese Tools im Leben des Administrators ein Schattendasein. Der oft genannte Nachteil bei den meisten dieser Tools ist die Abhängigkeit zur Kommandozeile. Simple, effektive und gleichzeitig effiziente Tools benötigen in den allermeisten Fällen keine grafische Oberfläche. Ebenso finden sich für diese Tools meistens sehr aussagekräftige Hilfefunktionen auf Betriebssystemebene.

Ping

Das bekannteste aller Messwerkzeuge ist der Ping. Dieses Diagnosetool steht auf allen bekannten Betriebssystemen zur Verfügung und dient zur Überprüfung der Erreichbarkeit von bestimmten Endgeräten. Das nachfolgende Beispiel zeigt die Erreichbarkeit des Hosts, die verlorenen Pakete während des Testlaufs und die Paketumlaufzeit:

 

ping 192.168.1.55

PING 192.168.1.55 (192.168.1.55) 56(84) bytes of data.

64 bytes from 192.168.1.55: icmp_seq=1 ttl=64 time=4.42 ms

64 bytes from 192.168.1.55: icmp_seq=2 ttl=64 time=0.488 ms

64 bytes from 192.168.1.55: icmp_seq=3 ttl=64 time=0.496 ms

64 bytes from 192.168.1.55: icmp_seq=4 ttl=64 time=0.524 ms

64 bytes from 192.168.1.55: icmp_seq=5 ttl=64 time=0.497 ms

64 bytes from 192.168.1.55: icmp_seq=6 ttl=64 time=0.503 ms

^C

--- 192.168.1.55 ping statistics ---

6 packets transmitted, 6 received, 0% packet loss, time 5003ms

rtt min/avg/max/mdev = 0.488/1.156/4.429/1.463 ms

 

Traceeoute

Mit dem Computerprogramm Traceroute wird ermittelt, über welche IP-Router Datenpakete bis zum Ziel-Host vermittelt werden Traceroute ist ähnliche simple zu benutzen wie das Ping:

 

ITAdministrator:~# traceroute -n 193.0.0.214

traceroute to 193.0.0.214 (193.0.0.214), 30 hops max, 40 byte packets

1

192.168.1.1

 4.632 ms

5.317 ms

5.948 ms

2

193.29.25.45

0.953 ms

1.381 ms

1.744 ms

3

192.168.178.3

9.954 ms

10.405 ms

11.170 ms

4

* * *

 

5

* * *

 

6

* * *

 

 

Im Beispiel wurde mit traceroute -n die Auflösung der IP-Adressen in die Hostadressen abgeschaltet. Lässt man die Auflösung eingeschaltet, so kann das schnell Nerven und Zeit raubend enden. Je nach Pflege des internen DNS funktioniert dann die Auflösung oder auch nicht, und jedes mal muss eine kleine Pause von 2 – 3 Sekunden akzeptiert werden, bevor es weitergeht. Im Beispiel wurden die nicht erfolgreichen Ergebnisse der Stationen 4 – inkl. 28 gelöscht um das Ergebnis übersichtlich zu halten. Es sind die ersten drei Stationen mit den IP-Adressen der jeweiligen Router dargestellt und der Administrator kann diese anhand des Netzwerkplans verifizieren. Die klassische Version von traceroute arbeitet mit dem UDP-Protokoll. Es gibt aber auch eine Variante, welche das TCP-Protokoll benutzt. Diese Version heißt tcptraceroute. In der Windows Welt gibt es vergleichbar zum traceroute aus der Unix-Welt das tracert.


Pathping

Ebenso hält die Windows-Welt das Pathping bereit. Pathping ist eine Mischung aus Tracert und Ping. Allerdings kann Pathping noch mehr. Der IT-Administrator wird es zu schätzen wissen, das er mit der Option -R das Vorhandensein eines RSVP-Routers prüfen kann und mit der Option -T kann er dem Paket noch eine definierte Priorität gemäß der Spezifikation 802.1p mitgeben. Dies ist sehr nützlich, wenn man QoS-Funktionen überprüfen will. Ebenfalls sehr hilfreich ist die Option –g, denn damit lässt sich eine Router-Liste mitgeben, über die der Pathping anschließend abläuft.

Ein weiterer Vertreter der fast überall vorhandenen Tools ist netstat. Dieser Befehl zeigt die Protokollstatistiken und Rechnerverbindungen an.


netstat –an

Aktive Internetverbindingen (Server und stehende Verbindungen)

Proto

Recv-Q

Send-Q

Local Address

Foreign Address

State

tcp

0

0

0.0.0.0:22

0.0.0.0:*

Listen

tcp

0

0

192.168.152:22

192.168.1.51:46929

verbunden

tcp6

0

0

:::22

:::*

Listen

udp

0

0

127.0.0.1:161

0.0.0.0

 

Aktive Sockets in der Unix-Domäne (Server und stehende Verbindungen)

Proto

RefCnt

Flags

Type

State

I-Node Pfad

unix

6

()

DGRAM

4387

/dev/log

unix

2

(ACC)

Stream HÖRT

4403

/var/run/acid.socket

unix

2

()

DGRAM

2190

@/org/kernel/udev/udevd

unix

2

()

DGRAM

4743

 

unix

2

()

DGRAM

4689

 

unix

2

()

DGRAM

4650

 

unix

2

()

DGRAM

4405

 








Mit dem Aufruf netstat –an wird eine Übersicht der aktuell bestehenden Kommunikationsverbindungen auf dem jeweiligen Host angezeigt. Im oberen Bereich der Darstellung ist der Beginn einer Verbindung zu dem Host mit der IP-Adresse 192.168.1.51 dargestellt. Dieser Host nutzt dabei den TCP-Port 46929 für seine SSH-Kommunikation mit dem lokalen Host (IP-Adresse 192.168.1.52, Port 22 besteht). Ebenso erkennt man anhand der Informationen, dass auf dem Port 22 ein Programm (vermutlich der sshd Serverprozess) zugreift.

Darüber hinaus erkennt man, dass auf dem Port 161 unter udp ebenfalls ein Serverprozess auf Kommunikation wartet. Dies dürfte der SNMPD-Prozess sein. Somit gibt uns  netstat -an einen schnellen Überblick zu auf dem Host per udp oder tcp offenen Ports. Ein Verwundbarkeitsscanner ala nmap macht im ersten Schritt auch nicht mehr. Nimmt man anstatt der Option -a die Option -r wird die Routing Tabelle dargestellt.

An dieser Stelle muss man bei bestimmten Unix- bzw. Linux-Systemen etwas aufpassen, denn neuere Linux-Systeme beherrschen durch die Bank das Policy Routing. Netstat -r zeigt nur die normale Routing-Tabelle an. Bei neueren Unix-Systemen kann es durch aus passieren, das die Routing-Entscheidung gar nicht mehr über die Default Routing Tabelle entschieden wird, sondern über Policy spezifische Routing-Tabellen. Zu erkennen ist die Policy Fähigkeit mit dem folgenden Aufruf:

 

ip route

192.168.1.0/24

dev eth1

proto

kernel

scope link

src 192.168.1.52

default via 192.168.1.1

dev eth1

0.0.0.0

UG

0 0

0 eth1

 

Bekommt man bei dem Aufruf von ip route eine Fehlermeldung, so ist diese System nicht in der Lage, Policy Routing zu unterstützen. Policy Routing ermöglicht mehrere gleichzeitig nutzbare Routing-Tabellen. Je Tabelle werden Regeln vereinbart, welche für jedes Absende- und Zielnetzwerk wirken. So können beispielsweise auf Basis dieses Regelwerks mehrere Internet-Provider angeschlossen und mit beiden ein stabiles Routing etabliert werden.


Tcpdump

Tcpdump wurde für die Fehlersuche für Programme, die über das Netzwerk kommunizieren, entwickelt. Tcpdump arbeitet im so genannten Promiscuous Modus. Dies bedeutet, dass jedes Paket, welches an dem betreffenden Interface vorbei kommt, gelesen und ausgewertet werden kann. Lässt sich Tcpdump nicht im Promiscuous-Modus starten, dann können nur die an das Interface gerichteten Pakete gelesen und ausgewertet werden. Nachfolgend ein Beispielaufruf.

 

tcpdump -n -i eth1 icmp

tcpdump: verbose output suppressed, use -v or -vv for full protocol decode

listening on eth1, link-type EN10MB (Ethernet), capture size 96 bytes

12:09:02.709694 IP 192.168.1.103 > 192.168.1.52: ICMP echo request, id 61004, seq 1, length 64

12:09:02.709721 IP 192.168.1.52 > 192.168.1.103: ICMP echo reply, id 61004, seq 1, length 64

12:09:03.709830 IP 192.168.1.103 > 192.168.1.52: ICMP echo request, id 61004, seq 2, length 64

12:09:03.709850 IP 192.168.1.52 > 192.168.1.103: ICMP echo reply, id 61004, seq 2, length 64

12:09:04.709615 IP 192.168.1.103 > 192.168.1.52: ICMP echo request, id 61004, seq 3, length 64

12:09:04.709639 IP 192.168.1.52 > 192.168.1.103: ICMP echo reply, id 61004, seq 3, length 64

 

Durch die Option -n wird die Namensauflösung abgeschaltet, -i bezeichnet das zu untersuchende Interface. ICMP ist der Filter, der auf das Analyseergebnis wirkt. In diesem Fall werden nur noch ICMP-Pakete ausgewertet. Die bei Tcpdump implementierte Filtertechnik ist sehr mächtig und wurde nahezu vollständig von Wireshark übernommen. Mit tcpdump können Fehler auf dem jeweiligen Hostsystem gesucht und gefunden werden, ebenso lässt sich die gesamte Kommunikation von einem spezifischen Interface mitschneiden. Tcpdump wird zu Unrecht vorgeworfen, IT-Sicherheitsprobleme zu erzeugen. Aufgrund der Arbeitsweise von tcpdump können Passworte oder benutzerspezifische Informationen mit gelesen werden solange diese Informationen nicht verschlüsselt sind. Dies ist eigentlich ein IT-Sicherheitsproblem der jeweiligen Anwendung und nicht von tcpdump.

 

iPerf

Häufig kommt es vor, dass man das Gefühl hat, dass einzelne Komponenten (Server, Clients oder Netzwerkkomponenten) nicht ordnungsgemäß arbeiten. Um hier Licht in das Dunkel zu bringen, sollte das Tool iPerf genutzt werden. iPerf ist der quasi Standard zur Messung der Netzwerkperformance. iPerf selbst ist ein Client – Server Tool, mit dem man entweder UDP- oder TCP-Verkehrsströme erzeugen kann. iPerf muss neben dem Client auch auf einem zweiten Rechner installiert werden. Dies sollte für belastbare Messungen ein zentraler Server oder ähnliches sein. Damit erhält man bei verschiedenen Messpunkten eine stabile Basis, um die jeweiligen Messergebnisse in Beziehung setzen zu können.

Um möglichst einfach mit iPerf vertraut zu werden, reicht es aus, auf dem Server iPerf im Server Modus zu starten. Dies geschieht mit dem Kommando  iperf -s.  Auf dem Client wird ebenfalls iPerf mit dem folgenden Kommando iperf -c (server ip adresse) gestartet.

iPerf im Server Modus

iPerf im Client Modus

Auf Basis einer guten Netzwerkdokumentation ist es mit iPerf möglich, ein Netzwerk vollständig auf Performance-Schwächen auszuleuchten. Der Weg führt dabei über eine gute Planung des Messverfahrens mit entsprechend ausgewählten Messpunkten. Auf Basis der vorhandenen Informationen zu den jeweiligen Komponenten arbeitet man sich anschließend entweder vom Server in Richtung problembehafteter Client oder in umgekehrter Richtung. Der Weg hängt vom Geschmack des Administrators oder der aktuellen Informationslage ab.

 

ntop

ntop ist ein Unix basierendes Tool, welches ähnlich des Unix-Kommandos top die Nutzung des Netzwerkes darstellt. ntop basiert auf libpcap und ist praktisch auf jeder Unix-Umgebung, aber auch unter win32 lauffähig. Das Kommando apt-get install ntop installiert die Anwendung. Bei Debian müssen leider aufgrund eines Scriptfehlers danach noch per chown -R ntop.ntop /var/lib/ntop die Zugriffsrechte angepasst werden. Über ntop -u ntop -w 80 -i eth0 -d wird dies aufgerufen. Mit der Option -u wird der User ntop eingestellt, die Option ermöglicht den Zugriff mittels http auf Port 80 (respektive -W 443 per https) und die Option -d lässt ntop als Daemon laufen. Ntop kann auch als NetFlow-Kollektor für die bereits angesprochene nProbe genutzt werden. Nachfolgend ist ein Ausschnitt aus dem Startbildschirm von ntop zu sehen.

Startbildschirm von ntop

TCP/UDP Protokollverteilung

ntop ist sehr schnell installiert und gibt grafisch einen sehr guten Überblick über die folgenden Fragen:

·         Wie ist die Verkehrsverteilung der Protokolle?

·         Wie verteilt sich statistisch der Netzwerkverkehr?

·         Wer spricht mit wem?


Ifstat

Ein nahezu unbekanntes Tool ist ifstat. Es zeigt den Verkehr am lokalen Interface an oder ermittelt per SNMP den Verkehr eines Interfaces auf einem entfernten Hosts. Auch hier ist die Installation mit apt-get install ifstat denkbar einfach und der aufruf mit ifstat zeigt folgendes Bild.

TCP/UDP Protokollverteilung

 

iPTraf

iPTraf ist bereits etwas älter, aber dennoch ein leistungsfähiges, auf der Kommandozeile basierendes Tool. Auch hier wird die Installation mit apt-get install iptraf und der Aufruf mit iptraf durchgeführt. iPTraf kennt verschiedene Auswertefunktionen. Zum einen ist es möglich, sich den Netzwerkverkehr per Interface oder über alle Interfaces anzusehen.

Ergebnisdarstellung von ifstat

Zum anderen sind verschiedene Statistikfunktionen (vom generellen Überblick bis hin zu Interface-spezifischen Informationen) verfügbar. Sehr gut nutzbar ist die Funktion, die die Paketgrößenverteilung getrennt nach UDP- oder TCP-Paketen anzeigt. Hilfreich ist auch der Netzwerkmonitor, der alle bekannten bzw. sichtbaren MAC-Adressen im lokalen Netzwerk aufzeichnet.

Ergebnisdarstellung von IPTraf +