Wenn Sie den gesamten Netzwerkverkehr Ihrer Verbindung diagnostizieren müssen, sei es lokal oder mit Blick auf das Internet, ist es wichtig, Programme zu verwenden, um den gesamten Verkehr zu erfassen und später zu analysieren. Eines der beliebtesten Programme ist Wireshark, dieses Programm ist plattformübergreifend kompatibel Windows, Linux, macOS und vielen anderen benötigen wir jedoch eine grafische Benutzeroberfläche, damit es funktioniert. Heute werden wir Ihnen beibringen, wie Sie tcpdump verwenden, das beste Tool zum Erfassen des gesamten Datenverkehrs über die Befehlszeile in einem Terminal.
Was ist tcpdump und wofür wird es verwendet?
tcpdump ist ein völlig kostenloses Tool, mit dem wir den gesamten Netzwerkverkehr von einer oder mehreren Schnittstellen erfassen können, unabhängig davon, ob es sich um Ethernet handelt, W-Lan, PPPoE-Schnittstellen, die wir erstellt haben, und sogar virtuelle Schnittstellen, wie wir sie erstellen, wenn wir virtuelle private Netzwerke verwenden. Dieses Programm ist nicht nur für die Erfassung des gesamten Datenverkehrs verantwortlich, sondern wir können ihn auch in Echtzeit analysieren, während er erfasst wird, alles über die Befehlszeile.
tcpdump wird auf allen Unix-basierten Betriebssystemen unterstützt, einschließlich Linux, BSD, macOS und vielen anderen. Natürlich verwendet dieses Programm die libpcap-Bibliothek, um alle Pakete zu erfassen, die durch eine fragliche Schnittstelle fließen, sei es physisch oder virtuell. Um dieses Programm auf dem System auszuführen, sind Superuser-Berechtigungen erforderlich, da wir Netzwerkverkehr erfassen und anzeigen, der „sensibel“ sein könnte. Daher sind Administratorrechte erforderlich.
Das Beste, was tcpdump hat, sind die Filter, wir können den gesamten Verkehr filtern, um nur das zu sehen, was uns interessiert. Filter sind Ausdrücke, die hinter den Aufnahmeoptionen stehen und es uns ermöglichen, nur das anzuzeigen, wonach wir suchen, und nicht alles. Wenn wir keinen Filter setzen, sehen wir den gesamten Netzwerkverkehr des ausgewählten Netzwerkadapters.
Die Hauptverwendungen, die wir einem Tool wie tcpdump geben können, sind die folgenden:
- Erfassen Sie alle Informationen und speichern Sie sie für spätere Studien.
- Debuggen Sie Echtzeitanwendungen, die das Netzwerk zur Kommunikation verwenden.
- Überprüfen Sie, ob der Netzwerkverkehr unter Berücksichtigung seiner Verwendung wie erwartet ist.
- Erfassen und lesen Sie die Daten von anderen Computern im Netzwerk, obwohl wir in diesem Fall Techniken wie ARP-Spoofing oder ähnliches verwenden müssten, wenn wir uns in einer geswitchten Umgebung befinden und tcpdump nicht auf dem Router verwenden.
Nachdem wir gesehen haben, was tcpdump ist und wofür es verwendet werden kann, werden wir es auf unserem Linux-Betriebssystem installieren, um Ihnen zu zeigen, wie es funktioniert.
Installation in Debian und Hauptoptionen
Dieses Programm ist in allen Linux-basierten Betriebssystemen weit verbreitet, daher können wir es direkt aus den offiziellen Repositories jeder Distribution installieren. Im Fall von Debian müssen wir den folgenden Befehl in das Terminal eingeben:
sudo apt install tcpdump
Wir werden so etwas bekommen:
Sobald wir es installiert haben, können wir den folgenden Befehl im Terminal ausführen, um uns die Hilfe anzuzeigen:
tcpdump -h
Für den Fall, dass Sie viel mehr Informationen über das Tool benötigen, siehe Anwendungsbeispiele und die gesamte Dokumentation, dann können Sie wie folgt auf die Manpages zugreifen:
man tcpdump
Auf diesen Manpages finden Sie eine ausführliche Beschreibung des Tools, welche Syntax wir verwenden müssen, welche Optionen wir zur Verfügung haben, um alle Daten zu erfassen und auch die gewünschten Informationen zu filtern.
Anwendungsbeispiele
Dieses Programm hat eine große Anzahl von Optionen, um die Daten zu erfassen und auch anzuzeigen. Außerdem haben wir die Möglichkeit, eine große Anzahl erweiterter Filter hinzuzufügen, damit uns nur das angezeigt wird, was wir wollen. Als Nächstes erklären wir einige grundlegende Befehle, damit Sie nur das erfassen, was Sie interessiert.
Grundnutzung
Mit dem folgenden Befehl können wir das Programm starten. Wenn wir keine Netzwerkschnittstelle angeben, wählt das Tool selbst eine der im Betriebssystem verfügbaren aus.
tcpdump
Wenn wir eine Netzwerkschnittstelle angeben möchten, müssen Sie den folgenden Befehl eingeben:
tcpdump -i NOMBRE_INTERFAZ
Wenn wir alle Netzwerkschnittstellen angeben möchten, um den gesamten Datenverkehr von allen auf einmal zu erfassen, müssen Sie den folgenden Befehl eingeben:
tcpdump -i any
Wenn wir den Netzwerkverkehr mit tcpdump erfassen, sind wir möglicherweise nicht daran interessiert, Hostnamen aufzulösen, sondern zeigen uns direkt IP-Adressen. Dazu können wir Folgendes setzen:
tcpdump -n
Wenn Sie nur eine bestimmte Anzahl von Paketen erfassen möchten, sollten Sie den folgenden Befehl eingeben:
tcpdump -c NUMERO_PAQUETES
Wenn wir die Informationen, die es uns über die Befehlszeile anzeigt, erhöhen möchten, müssen wir das „Verbose“ auf folgende Weise erhöhen:
tcpdump -i NOMBRE_INTERFAZ -v
Wenn wir es weiter erhöhen möchten, fügen wir wie folgt ein weiteres „v“ hinzu:
tcpdump -i NOMBRE_INTERFAZ -vvv
Dieser letzte Befehl ermöglicht es uns, so viel Ausführlichkeit wie möglich zu sehen.
Wenn wir die Erfassung in einer Datei speichern möchten, um sie später mit einem Paketanalysator wie WireShark zu öffnen oder für eine spätere Analyse, müssen wir den folgenden Befehl eingeben:
tcpdump -i NOMBRE_INTERFAZ -w NOMBRE_ARCHIVO
Wenn wir alles mit maximaler Ausführlichkeit speichern wollen, werden wir natürlich Folgendes eingeben:
tcpdump -i NOMBRE_INTERFAZ -w NOMBRE_ARCHIVO
Erfassen des Datenverkehrs nach IP oder Subnetz
tcpdump ermöglicht es uns, nach IP-Adressen und sogar Subnetzen zu filtern, dafür können wir den folgenden Befehl eingeben:
tcpdump -i NOMBRE_INTERFAZ host IP
Zum Beispiel könnten wir den Datenverkehr von der IP von localhost sehen:
tcpdump -i NOMBRE_INTERFAZ host 127.0.0.1
Wir können auch wie folgt nach Subnetzen filtern:
tcpdump -i NOMBRE_INTERFAZ net SUBRED/X
Unten sehen Sie ein Beispiel-Subnetz:
tcpdump -i NOMBRE_INTERFAZ net 192.168.1.0/24
Wir könnten auch nach Abflug- und Zielort filtern, unten sehen Sie zwei Beispiele:
tcpdump -i NOMBRE_INTERFAZ src IP
tcpdump -i NOMBRE_INTERFAZ dst IP
Mit diesen Optionen können wir ganz einfach den Verkehr filtern, den wir nur erfassen und anzeigen möchten.
Erfassen des Datenverkehrs nach Port und Bereichen
Falls Sie nach Ports filtern möchten, entweder einem einzelnen Port oder einer Reihe von Ports, können Sie dies folgendermaßen tun:
tcpdump -i NOMBRE_INTERFAZ port NUMERO_PUERTO
tcpdump -i NOMBRE_INTERFAZ portrange PUERTOINICIO PUERTOFIN
Alle diese Befehle können auch zu tcpdump hinzugefügt werden, um nach IP und Ports zu filtern und sogar die gesamte Verkehrserfassung in einer pcap-Datei zu speichern. Auf diese Weise können wir die verschiedenen verfügbaren Optionen mit den von uns definierten Filtern verketten.
Schlussfolgerungen
tcpdump ist das grundlegende Werkzeug zum Erfassen von Paketen aus dem lokalen Netzwerk mit den gewünschten Schnittstellen. Dank dieses Programms können wir den gesamten Netzwerkverkehr auf niedriger Ebene über die Konsole anzeigen und die Erfassung des Datenverkehrs speichern auf unserer Festplatte bzw SSD wann immer wir wollen. Dank der vielen Konfigurationsmöglichkeiten und Filter können wir nur das erfassen, was uns interessiert, für spätere Analysen mit Programmen wie Wireshark oder direkt auf niedriger Ebene mit tshark oder ähnlichem.
Wenn Sie Probleme auf Netzwerkebene in Ihrem lokalen Netzwerk oder Server haben, hilft Ihnen tcpdump zu wissen, welcher Datenverkehr durch das gesamte Netzwerk oder den betreffenden Server geht, und später im Detail zu untersuchen, was passiert und wie wir es lösen können. Das Erfassen des Netzwerkverkehrs ist der erste Schritt, um ein Problem auf Netzwerkebene zu beheben, und in diesem Fall ist tcpdump Ihr bester Verbündeter, um alle Probleme zu lösen.