TCPFlow - Analyse und Debugug -Netzwerkverkehr unter Linux

TCPFlow - Analyse und Debugug -Netzwerkverkehr unter Linux

Tcpflow ist ein kostenloses Open-Source-Tool für Befehlszeilen für die Analyse des Netzwerkverkehrs auf UNIX-ähnlichen Systemen wie Linux. Es erfasst Daten, die über TCP -Verbindungen empfangen oder übertragen wurden, und speichert sie in einer Datei zur späteren Analyse in einem nützlichen Format, das eine Protokollanalyse und Debugging ermöglicht.

Lesen Sie auch: 16 Beste Tools für Bandbreitenüberwachung zur Analyse der Netzwerknutzung unter Linux

Es handelt sich tatsächlich um eine TCPDump-ähnliche Tools, die Pakete aus dem Kabel oder aus einer gespeicherten Datei verarbeitet. Es unterstützt die gleichen leistungsstarken Filterausdrücke, die von seinem Gegenstück unterstützt werden. Der einzige Unterschied besteht darin, dass TCPflow alle TCP -Pakete in die Reihenfolge einbringt und jeden Fluss in einer separaten Datei (eine Datei für jede Flussdatei) für die spätere Analyse zusammenstellt.

Der Feature-Set umfasst ein erweitertes Plug-in-System zur Dekomprimierung komprimierter HTTP-Verbindungen, der Rückgängigmachung von MIME-Codierung oder zum Aufrufen von Programmen von Drittanbietern für die Nachbearbeitung und vieles mehr.

Es gibt viele Anwendungsfälle für TCPflow, die das Verständnis von Netzwerkpaketflüssen sowie Unterstützung für die Durchführung von Netzwerk -Forensik und die Befreiung des Inhalts von HTTP -Sitzungen umfassen.

So installieren Sie TCPflow in Linux -Systemen

Tcpflow ist in den offiziellen Repositories von Mainstream -GNU/Linux -Verteilungen erhältlich. Sie können ihn mit Ihrem Paketmanager wie gezeigt installieren.

$ sudo apt install tcpflow #debian/ubuntu $ sudo yum install tcpflow #centos/rhel $ sudo dnf install tcpflow #fedora 22+ 

Nach dem Installieren von TCPflow können Sie es mit Superuser -Berechtigungen ausführen, ansonsten verwenden Sie die Sudo -Befehl. Beachten Sie, dass es auf der aktiven Netzwerkschnittstelle (beispielsweise auf der aktiven Netzwerkschnittstelle hört ENP0S3).

$ sudo tcpflow tcpflow: Hören auf ENP0S3 

Standardmäßig speichert TCPflow alle erfassten Daten in Dateien mit Namen im Formular (dies kann anders sein, wenn Sie bestimmte Optionen wie z. B. verwenden Zeitstempel).

Quell-IP.SourcePort-Destip.Destport 192.168.043.031.52920-216.058.210.034.00443 

Lassen Sie uns nun eine Verzeichnisliste durchführen, um festzustellen, ob der TCP -Fluss in allen Dateien erfasst wurde.

$ ls -1 Insgesamt 20 -rw-r-r--. 1 Wurzelwurzel 808 19. September 12:49 192.168.043.031.52920-216.058.210.034.00443 -rw-r-r--. 1 Wurzelwurzel 59 September 19 12:49 216.058.210.034.00443-192.168.043.031.52920 

Wie bereits erwähnt, wird jeder TCP -Fluss in seiner eigenen Datei gespeichert. Aus der obigen Ausgabe können Sie sehen, dass es drei Transkriptionsdatei gibt, die TCPFlow in zwei entgegengesetzten Richtungen angeben, wobei die Quell -IP in der ersten Datei und das Ziel -IP in der zweiten Datei und umgekehrt.

Die erste Datei 192.168.043.031.52920-216.058.210.034.00443 Enthält Daten, die vom Host übertragen wurden 192.168.043.031 (Der Localhost, auf dem TCPflow ausgeführt wurde) über Port 52920, zu hosten 216.058.210.034 (der Remote -Host) über Port 443.

Und die zweite Datei 216.058.210.034.00443-192.168.043.031.52920 Enthält Daten vom Host gesendet 216.058.210.034 (der Remote -Host) über Port 443 zu hosten 192.168.043.031 (Der Localhost, auf dem TCPflow ausgeführt wurde) über Port 52920.

Es gibt auch eine Xml Der generierte Bericht, der Informationen über das Programm enthält, z. B. wie es kompiliert wurde, und des Computers, auf dem er ausgeführt wurde.

Wie Sie vielleicht bemerkt haben, speichert TCPFlow die Transkriptateien standardmäßig im aktuellen Verzeichnis. Der Mit der Option können Sie das Ausgabeverzeichnis angeben, in dem die Transkriptateien geschrieben werden.

$ sudo tcpflow -o tcpflow_files $ sudo ls -l tcpflow_files insgesamt 32 -rw-r-r--. 1 Wurzelwurzel 1665 19. September 12:56 157.240.016.035.00443-192.168.000.103.45986 -rw-r-r--. 1 Wurzelwurzel 45 September 19 12:56 169.044.082.101.00443-192.168.000.103.55496 -rw-r-r--. 1 Wurzelwurzel 2738 19. September 12:56 172.217.166.046.00443-192.168.000.103.39954 -rw-r-r--. 1 Wurzelwurzel 68 September 19 12:56 192.168.000.102.00022-192.168.000.103.42436 -rw-r-r--. 1 Wurzelwurzel 573 Sep 19 12:56 192.168.000.103.39954-172.217.166.046.00443 -rw-r-r--. 1 Wurzelwurzel 4067 19. September 12:56 192.168.000.103.45986-157.240.016.035.00443 -rw-r-r--. 1 Wurzelwurzel 38 September 19 12:56 192.168.000.103.55496-169.044.082.101.00443 -rw-r-r--. 1 Root Root 3159 Sep 19 12:56 Bericht.xml 

Sie können auch den Inhalt von Paketen drucken Stdout wie sie empfangen werden, ohne erfasste Daten in Dateien zu speichern, verwenden Sie die -C Flagge wie folgt.

Um dies effektiv zu testen, öffnen Sie ein zweites Terminal und laufen Sie a Klingeln, Oder durchsuchen Sie das Internet. Sie sollten in der Lage sein, die Ping -Details oder Ihre Browserdetails von TCPflow erfasst zu werden.

$ sudo tcpflow -c 

Es ist möglich, den gesamten Verkehr in einem bestimmten Port zu erfassen, zum Beispiel Port 80 (Http). Im Falle des HTTP -Verkehrs können Sie die HTTP -Headers sehen, gefolgt von dem Inhalt des STDOuts oder in einer Datei, falls die -C Schalter wird entfernt.

$ sudo tcpflow port 80 

Verwenden Sie das, um Pakete von einer bestimmten Netzwerkschnittstelle zu erfassen -ich Flag, um den Schnittstellennamen anzugeben.

$ sudo tcpflow -i Eth0 Port 80 

Sie können auch einen Zielhost angeben (akzeptierte Werte sind IP -Adresse, Hostname oder Domänen), wie gezeigt.

$ sudo tcpflow -c Host 192.68.43.1 oder $ sudo tcpflow -c Host www.Google.com 

Sie können alle Verarbeitung mit allen Scannern mit dem aktivieren -A Flagge, dies entspricht der -e Alle Schalter.

$ sudo tcpflow -a oder $ sudo tcpflow -e alle 

Ein spezifischer Scanner kann auch aktiviert werden. Zu den verfügbaren Scannern gehören MD5, HTTP, Netviz, TCPDemux und Wifiviz (Run " tcpflow -h um detaillierte Informationen zu jedem Scanner anzuzeigen).

$ sudo tcpflow -e http oder $ sudo tcpflow -e md5 oder $ sudo tcpflow -e netviz oder $ sudo tcpflow -e tcpDeMux oder $ sudo tcpflow -e wifiviziz 

Das folgende Beispiel zeigt, wie alle Scanner mit Ausnahme von TCPDemux aktiviert werden können.

$ sudo tcpflow -a -x tcpDemux 

TCPflow versucht normalerweise, die Netzwerkschnittstelle in den promiskuitiven Modus zu bringen, bevor Pakete erfasst werden. Sie können dies mit dem verhindern -P Flagge wie gezeigt.

$ sudo tcpflow -p -i eth0 

Verwenden Sie die Pakete aus einer TCPDump -PCAP -R Flagge.

$ sudo tcpflow -f -Datei.PCAP 

Sie können den ausführlichen Modus mit dem aktivieren -v oder -d 10 Optionen.

$ sudo tcpflow -v oder $ sudo tcpflow -d 10 

Wichtig: Eine Einschränkung von tcpflow ist, dass es derzeit keine IP -Fragmente versteht, und daher werden Daten, die als Teil von TCP -Verbindungen übertragen werden, die IP -Fragmente enthalten, nicht ordnungsgemäß erfasst.

Weitere Informationen und Verwendungsoptionen finden Sie im Rahmen der Optionen tcpflow Mann Seite.

$ MAN TCPFLOW 

TCPFlow Github Repository: https: // github.com/simsong/tcpflow

Das ist alles fürs Erste! Tcpflow ist ein leistungsstarker TCP -Flow -Recorder, der zum Verständnis von Netzwerkpaketflüssen und zum Durchführen von Netzwerkforensik und vielem mehr nützlich ist. Probieren Sie es aus und teilen Sie Ihre Gedanken darüber in den Kommentaren mit uns mit.