TCPflow - Analyséieren an Debug Network Traffic am Linux
TCPflow ass e gratis, Open Source, mächteg Kommandozeil baséiert Tool fir den Netzverkéier op Unix-ähnleche Systemer wéi Linux ze analyséieren. Et erfaasst Daten, déi iwwer TCP-Verbindunge kritt oder transferéiert ginn, a späichert se an enger Datei fir spéider Analyse, an engem nëtzlechen Format dat Protokollanalyse an Debugging erlaabt.
Et ass tatsächlech tcpdump-ähnlech Tools wéi et Päckchen aus dem Drot oder aus enger gespäicherter Datei veraarbecht. Et ënnerstëtzt déiselwecht mächteg Filterausdréck, déi vu sengem Kolleg ënnerstëtzt gëtt. Deen eenzegen Ënnerscheed ass datt tcpflow all TCP Päck an Uerdnung setzt an all Flow an enger separater Datei (eng Datei fir all Flowrichtung) fir spéider Analyse montéiert.
Säi Feature-Set enthält en fortgeschratt Plug-in System fir kompriméiert HTTP Verbindungen ze dekompriméieren, MIME Kodéierung ofzeschafen oder Drëtt Partei Programmer fir Postveraarbechtung opruffen a vill méi.
Et gi vill Benotzungsfäll fir tcpflow déi enthalen fir Netzwierkpaketfloss ze verstoen an och ënnerstëtzt fir Netzwierkforensik auszeféieren an den Inhalt vun HTTP Sessiounen ze verëffentlechen.
Wéi installéiere ech TCPflow a Linux Systemer
TCPflow ass verfügbar an den offiziellen Repositories vun Mainstream GNU/Linux Verdeelungen, Dir kënnt et mat Ärem Package Manager installéieren wéi gewisen.
$ sudo apt install tcpflow #Debian/Ubuntu $ sudo yum install tcpflow #CentOS/RHEL $ sudo dnf install tcpflow #Fedora 22+
Nodeems Dir tcpflow installéiert hutt, kënnt Dir et mat Superuser Privilegien lafen, soss benotzt de sudo Kommando. Notéiert datt et op der aktiver Netzwierkinterface lauschtert (zum Beispill enp0s3).
$ sudo tcpflow tcpflow: listening on enp0s3
Par défaut späichert tcpflow all erfaasst Donnéeën an Dateien déi Nimm an der Form hunn (dëst kann anescht sinn wann Dir verschidden Optiounen benotzt wéi Zäitstempel).
sourceip.sourceport-destip.destport 192.168.043.031.52920-216.058.210.034.00443
Loosst eis elo eng Verzeechneslëscht maachen fir ze kucken ob tcp Flow an all Dateie gefaange gouf.
$ ls -1 total 20 -rw-r--r--. 1 root root 808 Sep 19 12:49 192.168.043.031.52920-216.058.210.034.00443 -rw-r--r--. 1 root root 59 Sep 19 12:49 216.058.210.034.00443-192.168.043.031.52920
Wéi mir virdru scho gesot hunn, gëtt all TCP Flow a senger eegener Datei gespäichert. Vun der Ausgab uewendriwwer kënnt Dir gesinn datt et dräi Transkriptdatei sinn, déi tcpflow an zwou entgéintgesate Richtungen uginn, wou d'Quell-IP an der éischter Datei an d'Zil-IP an der zweeter Datei a vice-versa.
Déi éischt Datei 192.168.043.031.52920-216.058.210.034.00443 enthält Daten iwwerdroe vum Host 192.168.043.031 (de localhost op deem tcpflow ausgeführt gouf) iwwer den Hafen 52920, op den Host 0.41.4.2.4.2.
An déi zweet Datei 216.058.210.034.00443-192.168.043.031.52920 enthält Daten, déi vum Host 216.058.210.034 (de Fernhost) iwwer den Hafen 443 op den Host 192.168.043 op 192.168.043.
Et gëtt och en XML-Rapport generéiert, deen Informatioun iwwer de Programm enthält wéi et kompiléiert gouf, an de Computer op deem et gelaf ass an e Rekord vun all tcp Verbindung.
Wéi Dir vläicht gemierkt hutt, späichert tcpflow d'Transkriptdateien am aktuellen Verzeichnis als Standard. D'Optioun -o
kann Iech hëllefen den Ausgangsverzeechnes ze spezifizéieren wou d'Transkriptdateien geschriwwe ginn.
$ sudo tcpflow -o tcpflow_files $ sudo ls -l tcpflow_files total 32 -rw-r--r--. 1 root root 1665 Sep 19 12:56 157.240.016.035.00443-192.168.000.103.45986 -rw-r--r--. 1 root root 45 Sep 19 12:56 169.044.082.101.00443-192.168.000.103.55496 -rw-r--r--. 1 root root 2738 Sep 19 12:56 172.217.166.046.00443-192.168.000.103.39954 -rw-r--r--. 1 root root 68 Sep 19 12:56 192.168.000.102.00022-192.168.000.103.42436 -rw-r--r--. 1 root root 573 Sep 19 12:56 192.168.000.103.39954-172.217.166.046.00443 -rw-r--r--. 1 root root 4067 Sep 19 12:56 192.168.000.103.45986-157.240.016.035.00443 -rw-r--r--. 1 root root 38 Sep 19 12:56 192.168.000.103.55496-169.044.082.101.00443 -rw-r--r--. 1 root root 3159 Sep 19 12:56 report.xml
Dir kënnt och den Inhalt vu Pakete op stdout drécken wéi se opgeholl gi sinn, ouni all gespäichert Daten op Dateien ze späicheren, andeems Dir de -c
Fändel wéi follegt benotzt.
Fir dëst effektiv ze testen, öffnen en zweeten Terminal a lafen e Ping, oder surft um Internet. Dir sollt fäeg sinn d'Ping Detailer ze gesinn oder Är Browserdetailer déi vum tcpflow erfaasst ginn.
$ sudo tcpflow -c
Et ass méiglech all Traffic op engem bestëmmten Hafen z'erreechen, zum Beispill Port 80 (HTTP). Am Fall vum HTTP-Traffic kënnt Dir d'HTTP-Header gesinn, gefollegt vum Inhalt all op der stdout oder an enger Datei, wann de -c
-Schalter ewechgeholl gëtt.
$ sudo tcpflow port 80
Fir Pakete vun engem spezifeschen Netzwierk ze erfassen, benotzt de -i
Fändel fir den Interfacenumm ze spezifizéieren.
$ sudo tcpflow -i eth0 port 80
Dir kënnt och en Zilhost spezifizéieren (akzeptéiert Wäerter sinn IP Adress, Hostnumm oder Domains), wéi gewisen.
$ sudo tcpflow -c host 192.68.43.1 OR $ sudo tcpflow -c host www.google.com
Dir kënnt all Veraarbechtung aktivéieren andeems Dir all Scanner mam -a
Fändel benotzt, dëst entsprécht dem -e
all Schalter.
$ sudo tcpflow -a OR $ sudo tcpflow -e all
E spezifesche Scanner kann och aktivéiert ginn; déi verfügbar Scanner enthalen md5, http, netviz, tcpdemux a wifiviz (runt tcpflow -H fir detailléiert Informatioun iwwer all Scanner ze gesinn).
$ sudo tcpflow -e http OR $ sudo tcpflow -e md5 OR $ sudo tcpflow -e netviz OR $ sudo tcpflow -e tcpdemux OR $ sudo tcpflow -e wifiviz
Dat folgend Beispill weist wéi Dir all Scanner aktivéiert ausser tcpdemux.
$ sudo tcpflow -a -x tcpdemux
TCPflow probéiert normalerweis d'Netzwierk-Interface an de promiskuéise Modus ze setzen ier Dir Pakete erfaasst. Dir kënnt dëst verhënneren andeems Dir de -p
Fändel benotzt wéi gewisen.
$ sudo tcpflow -p -i eth0
Fir Pakete vun enger tcpdump pcap Datei ze liesen, benotzt de -r
Fändel.
$ sudo tcpflow -f file.pcap
Dir kënnt de verbose Modus aktivéieren andeems Dir d'Optiounen -v
oder -d 10
benotzt.
$ sudo tcpflow -v OR $ sudo tcpflow -d 10
Wichteg: Eng Begrenzung vum tcpflow ass datt et de Moment net IP Fragmenter versteet, also Daten, déi als Deel vun TCP Verbindungen iwwerdroe ginn, déi IP Fragmenter enthalen, net richteg ageholl ginn.
Fir méi Informatioun a Benotzungsoptiounen, kuckt d'tcpflow Man Säit.
$ man tcpflow
TCPflow Github Repository: https://github.com/simsong/tcpflow
Dat ass alles fir elo! TCPflow ass e mächtege TCP Flow Recorder deen nëtzlech ass fir Netzwierkpaketfloss ze verstoen an Netzwierk Forensik auszeféieren, a sou vill méi. Probéiert et eraus an deelt Är Gedanken doriwwer mat eis an de Kommentaren.