out of the box

Aus LinuxUser 07/2001

out of the box

Das Netz unter der Lupe

Es gibt tausende Tools und Utilities für Linux. “out of the box” pickt sich die Rosinen raus und stellt pro Monat ein Progrämmchen vor, das wir für schlichtweg unentbehrlich oder aber zu Unrecht wenig beachtet halten. Diesmal widmet sich der Artikel dem Netzwerkmonitor ntop.

Die zunehmend vernetzte Rechnerwelt hält mittlerweile auch in die Wohnzimmer Einzug. Die Zweit- oder Drittmaschine wird mit dem heimischen Hauptrechner verbunden und tauscht via TCP/IP munter Daten aus. Wer den Überblick über seine private Rechnerfarm und auch deren Netzverbindungen nach “draußen” behalten will, dem wird ntop von Luca Deri eine willkommene Hilfe sein.

Top N

Damit das Programm läuft, muss die ncursesBibliothek (inklusive zugehörigem Development-Paket) installiert sein. Weiterhin benötigen Sie die libpcap, die Sie sich von http://www.tcpdump.org/release/libpcap-0.6.2.tar.gz oder der Heft-CD besorgen können. Für das Übersetzen der libpcap brauchen Sie die Pakete flex und bison. Ntop selbst bekommen Sie unter http://www.ntop.org/ntop.html; es liegt natürlich auch auf CD bei.

Sind alle Voraussetzungen erfüllt, lässt sich ntop mit den folgenden Schritten kompilieren und installieren:

tar xzf libpcap-0.6.2.tar.gz
 cd libpcap-0.6.2
 ./configure --prefix=../libpcap
 make
 make install
 cd ..
 tar xzf ntop-1.1-src.tgz
 cd ntop-1.1
 ./configure
 make
 su  (root-Passwort eingeben)
 cp ntop /usr/local/bin
 cp ntop.8 /usr/local/man/man8
 exit

SUID oder nicht SUID?

Damit ntop direkten Zugriff auf Netzwerkpakete bekommt, muss es mit root-Rechten laufen. Zwei Möglichkeiten stehen dafür zur Verfügung: In Variante 1 verschaffen Sie sich mit dem su-Kommando (und entsprechendem root-Passwort) die nötigen Rechte, bevor Sie ntop starten, und geben diese nach dem Beenden des Programms mit exit wieder auf.

Alternativ vergeben Sie (als root) mit chmod 4755 /usr/local/bin/ntop das SUID-(“Set UserID on execution”)-Recht. So wird ntop – egal von welchem User gestartet – immer mit root-Rechten laufen.

Die erste Möglichkeit ist umständlicher, aber sicherer, da dann nur User mit Kenntnis des root-Passworts das Netz überwachen dürfen. Eine bessere, kontrollierte Zuteilung von root-Rechten an Benutzer bietet das Programm sudo, dessen Konfiguration aber den Rahmen des Artikels sprengen würde.

Klassik: Das Text-Interface

Wird ntop in einem Text-Terminal gestartet, so verhält es sich ähnlich wie der Unix-Klassiker top. Nur zeigt ntop nicht die Prozessorauslastung durch diverse Prozesse an, sondern den durch verschiedene Rechner verursachten Netzwerkverkehr. In Abbildung 1 findet gerade ein größeres Datengeschaufel von sphere nach camera statt. Der aktuelle Durchsatz (“Throughput“) ist oben rechts ablesbar. Das Programm wurde mit ntop -i eth0 gestartet, also angewiesen, Pakete auf der ersten Ethernet-Karte abzugreifen.

Im Text-Interface reagiert ntop auf verschiedene Tasten. Am interessantesten ist die Leertaste, die weitere Informationen in die Spalten der angezeigten Tabelle holt, etwa zu Anwendungsprotokollen wie FTP, HTTP oder DNS. Andere Tastenfunktionen entnehmen Sie der Manpage, die Sie mit man ntop lesen können.

Pop: Das Web-Interface

Jetzt verlassen wir das Textinterface mit der Taste q und starten das Programm mit ntop -i eth0 -w 888 erneut. Im Terminal ist nun keine Ausgabe mehr sichtbar, dafür können Sie sich mit einem Frame-fähigen Web Browser auf Port 888 mit dem so gestarteten ntop-Dienst verbinden. Dies geschieht, indem Sie im Browser http://localhost:888/ als Seitenadresse eingeben. Anders als im Textinterface müssen Sie ein [Strg-C] ins Terminal mit dem ntop-Aufruf schicken, um den Dienst wieder zu beenden.

Abbildung 2: Statistiken im Web-Interface

Abbildung 2: Statistiken im Web-Interface

Abbildung 3: Einzelne Rechner im Überblick

Abbildung 3: Einzelne Rechner im Überblick

Über das Web-Interface stellt ntop wesentlich mehr Informationen zur Verfügung. Die Abbildungen 2 und 3 zeigen nur eine kleine Auswahl der umfangreichen Statistiken über die Anteile der Protokolle am Gesamtdurchsatz, die Bandbreitennutzung, Netzwerkkartenhersteller, aktuell laufende Netzwerkverbindungen und vieles mehr. In Tabelle 1 sind alle Links von der ntop-Hauptseite und deren Funktionen beschrieben.

Kleine Netzwerkprotokollkunde

Grundlegende Protokolle

(R)ARP (“[Reverse] Address Resolution Protocol”) wird verwendet, um zu einer IP-Adresse die MAC-Adresse einer Netzwerkkarte zu finden. Nur so können in einem lokalen Netz IP-Pakete an den richtigen Rechner zugestellt werden. Die MAC-(“Media Access Control”)-Adresse ist eine durch die Hardware der Netzwerkkarte festgelegte Adresse.

IP (“Internet Protocol”) ist ein Transportmechanismus für verschiedene Protokolle wie TCP und UDP. Es versendet Pakete anhand ihrer Ziel-IP-Adresse. IP ist nicht auf ein lokales Netz beschränkt.

TCP (“Transmission Control Protocol”) ist ein verbindungsorientiertes Protokoll, über das viele Dienstprotokolle wie HTTP, SSH oder NBios-IP laufen. Während mit IP Pakete nur verschickt werden, bietet TCP eine Empfangsbestätigung. Verbindungsorientiert bedeutet dabei, dass Netzwerkverbindungen durch spezielle IP-Pakete explizit auf- und abgebaut werden müssen.

UDP (“User Datagram Protocol”) ist ein verbindungsloses Protokoll, über das Dienstprotokolle wie DNS laufen. Zum zuverlässigen Übertragen größerer Datenmengen ist UDP nicht geeignet. Verbindungslos bedeutet, dass es protokollintern keine Möglichkeit gibt sicherzustellen, dass ein Paket wirklich beim Empfänger angekommen ist.

Eine kleine Auswahl Dienstprotokolle

HTTP (“Hypertext Transfer Protocol”) ist das Übertragungsprotokoll des World Wide Web.

SSH (“Secure Shell”) ist ein verschlüsseltes Protokoll für das Anmelden auf entfernten Rechnern.

NBios-IP (“Netbios over IP”, auch SMB (“Server Message Block”) genannt) ist das Protokoll, das ein Samba-Server für Windows-Dateifreigaben benutzt.

DNS (“Domain Name Service”) löst Rechnernamen wie www.linux.de zu IP-Adressen auf.

Tabelle 1: Welcher Link zeigt was?

Nr. Bezeichnung Bedeutung
1. What’s ntop? Allgemeine Informationen über ntop.
2. Data Rcvd Übersicht über empfangene Daten, aufgeschlüsselt in Daten, die auf IP oder alle Protokolle entfallen, sowie den Durchsatz.
3. Data Sent Übersicht über gesendete Daten, aufgeschlüsselt in IP, alle Protokolle und den Durchsatz.
4. Multicast Stats Pakete, die gleichzeitig an mehrere Rechner verschickt werden.
5. Traffic Stats Information über Paketgrößen und Anteile der Protokolle am Gesamtdurchsatz.
6. Thpt Stats Der Durchsatz der letzten 60 Minuten als Balkengrafik.
7. Hosts Info Information zu Rechnern, aufgeschlüsselt nach Rechnern.
8. R->L IP Traffic Netzverkehr von außen ins lokale Netz.
9. L->R IP Traffic Netzverkehr aus dem lokalen Netz nach außen.
10. L<- ->L IP Traffic Netzverkehr innerhalb des lokalen Netzes.
11. Active TCP Sessions Momentan aufgebaute TCP-Verbindungen.
12. IP Protocol Distribution Anteile der über IP transportierten Protokolle.
13. IP Protocol Usage Zwischen welchen Rechnern werden welche Protokolle benutzt?
14. IP Traffic Matrix Zwischen welchen Rechner wurde wieviel übertragen?
15. Credits Danksagung des Autors.
16. Man Page Die Manualseite zu ntop.

Wer hören will, muss wissen

Der Zugriff auf das Web-Interface lässt sich mit einem Passwort sperren. Dazu muss der Benutzer, der ntop startet, in seinem Home-Verzeichnis eine Datei .ntop mit einem Benutzername-/Passwort-Paar anlegen. Der Inhalt dieser Datei könnte etwa so aussehen:

# ntop Passwortdatei
 #
 tux     trockenfisch

Benutzername und Passwort dürfen durch beliebig viele Leer- oder Tabulatorzeichen getrennt sein, Zeilen, die mit dem Hash-Zeichen (#) beginnen, sind Kommentare und werden ignoriert. Im Beispiel ist tux der Benutzername und trockenfisch das Passwort. Groß- und Kleinschreibung werden beim Anmelden unterschieden. Sie können auch mehrere Benutzername-/Passwort-Paare in die Datei eintragen. Dies ist allerdings nur bedingt sinnvoll, da es nicht möglich ist, verschiedenen Anwendern unterschiedlich weit gehende Benutzungsrechte zuzuteilen.

Glossar

TCP/IP

“Transmission Control Protocol/Internet Protocol”, die Netzwerkprotokollfamilie des Internets.

Bibliothek

Dateien, die eine Sammlung nützlicher C-Funktionen für bestimmte Zwecke enthalten. So gibt es etwa die libm, die mathematische Funktionen bereit stellt, oder die libpcap, die Netzwerkpakete “abgreifen” und untersuchen kann. Oft werden Bibliotheken von mehreren Programmen gemeinsam (“shared”) genutzt.

Development-Paket

Beim Übersetzen von Quelltexten werden zu allen vom Programm verwendeten Bibliotheken die Development-Pakete benötigt. Wesentlicher Bestandteil sind die Header-Dateien (Endung .h), die die Parameter der in den Bibliotheken enthaltenen Funktionen angeben.

kompilieren

Ein Programm ist in Quelltextform einer höheren Programmiersprache noch nicht vom Betriebssystem ausführbar. Erst durch das Kompilieren (“Übersetzen”) mit einem Compiler wird daraus eine durch den jeweiligen Prozessor ausführbare Darstellung.

Durchsatz

Der Durchsatz gibt an, wieviel Daten pro Zeiteinheit (üblicherweise gemessen in KBit/Sekunde oder MBit/Sekunde) über ein Netzwerkgerät wandern.

Manpage

Die Manpages (kurz für “Manual pages”) sind ein Online-Referenzhandbuch für Unix-Kommandos. Sie werden mit man kommando aufgerufen.

Port

Eine Anlegestelle für Netzwerkverbindungen. Die Ports sind mit Nummern versehen, und viele sind über diese Nummer einem Dienst zugeordnet. Beispielsweise benutzt FTP den Port 21, SSH den Port 22, TALK den Port 517, …

Home-Verzeichnis

Das persönliche Heimatverzeichnis eines Benutzers. In diesem Verzeichnis landet er nach erfolgreicher Anmeldung oder mit dem Kommando cd ohne weitere Parameter.

LinuxUser 07/2001 KAUFEN
EINZELNE AUSGABE
ABONNEMENTS
TABLET & SMARTPHONE APPS
E-Mail Benachrichtigung
Benachrichtige mich zu:

Hinweis: Dieser Artikel ist älter als ein Jahr, enthaltene Informationen sind möglicherweise veraltet.

0 Kommentare
Älteste
Neuste Beste Bewertung
Inline Feedbacks
Alle Kommentare anzeigen
Nach oben