TCPflow - võrguliikluse analüüsimine ja silumine Linuxis


TCPflow on tasuta avatud lähtekoodiga võimas käsureal põhinev tööriist võrguliikluse analüüsimiseks Unixi-laadsetes süsteemides, näiteks Linuxis. See hõivab TCP-ühenduste kaudu saadud või edastatud andmed ja salvestab need hilisemaks analüüsiks faili kasulikus vormingus, mis võimaldab protokollide analüüsi ja silumist.

See on tegelikult tcpdumpi laadne tööriist, kuna see töötleb traadist või salvestatud failist pakette. See toetab samu võimsaid filtreerimisavaldisi, mida tema kolleeg toetab. Ainus erinevus on see, et tcpflow paneb kõik TCP-paketid korda ja paneb iga voo hilisemaks analüüsiks eraldi faili (fail iga voolusuuna jaoks).

Selle funktsioonikomplekt sisaldab täiustatud pistikprogrammi süsteemi tihendatud HTTP-ühenduste dekompressimiseks, MIME-kodeeringu tühistamiseks või kolmandate osapoolte programmide järeltöötluseks kutsumiseks ja palju muud.

Tcpflow jaoks on palju juhtumeid, mis hõlmavad võrgupakettide voogude mõistmist ning toetavad ka võrguekspertiisi teostamist ja HTTP-seansside sisu avaldamist.

Kuidas installida TCPflow Linuxi süsteemidesse

TCPflow on saadaval peavoolu GNU/Linuxi distributsioonide ametlikes hoidlates, saate selle installida oma paketihalduri abil, nagu näidatud.

$ sudo apt install tcpflow	#Debian/Ubuntu
$ sudo yum install tcpflow	#CentOS/RHEL
$ sudo dnf install tcpflow	#Fedora 22+

Pärast tcpflow installimist saate seda käivitada superkasutaja õigustega, vastasel juhul kasutage käsku sudo. Pange tähele, et see kuulab aktiivset võrguliidest (näiteks enp0s3).

$ sudo tcpflow

tcpflow: listening on enp0s3

Vaikimisi salvestab tcpflow kõik hõivatud andmed failidesse, millel on vormis nimed (see võib olla erinev, kui kasutate teatud suvandeid, näiteks ajatemplit).

sourceip.sourceport-destip.destport
192.168.043.031.52920-216.058.210.034.00443

Nüüd teeme kataloogide loendi, et näha, kas TCP-voog on mõnda faili jäädvustatud.

$ 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

Nagu me varem mainisime, salvestatakse iga TCP voog oma faili. Ülaltoodud väljundist näete, et transkriptsioonifaile on kolm, mis tähistavad tcpflow'i kahes vastassuunas, kus lähte-IP esimeses ja sihtkoha IP teises failis ja vastupidi.

Esimene fail 192.168.043.031.52920-216.058.210.034.00443 sisaldab hostilt 192.168.043.031 (kohalik host, kus tcpflow käivitati) üle pordi 52920 edastatud andmeid pordi 443 kaudu hostile 216.058.210.034 (kaughost).

Ja teine fail 216.058.210.034.00443-192.168.043.031.52920 sisaldab andmeid, mis saadeti hostilt 216.058.210.034 (kaughost) pordi 443 kaudu hostile 192.168.043.031 (lokaalhost, millel tcpflow käivitati) pordi 52920 kaudu.

Samuti on loodud XML-aruanne, mis sisaldab teavet programmi kohta, näiteks kuidas see kompileeriti, ja arvutit, millel see käitus, ning iga TCP-ühenduse kirjet.

Nagu olete märganud, salvestab tcpflow transkriptsioonifailid vaikimisi praegusesse kataloogi. Valik -o aitab teil määrata väljundkataloogi, kuhu transkriptsioonifailid kirjutatakse.

$ 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

Pakettide sisu saate printida ka vastuvõetud kujul stdouti, salvestamata andmeid failidesse, kasutades lippu -c järgmiselt.

Selle tõhusaks testimiseks avage teine terminal ja käivitage ping või sirvige Internetti. Peaksite nägema tcpflow abil pingi üksikasju või sirvimise üksikasju.

$ sudo tcpflow -c

Kindlas pordis on võimalik hõivata kogu liiklus, näiteks pordil 80 (HTTP). HTTP-liikluse korral näete HTTP-päiseid, millele järgneb sisu kogu standardvarustuses või ühes failis, kui lüliti -c eemaldatakse.

$ sudo tcpflow port 80

Pakettide hõivamiseks konkreetsest võrguliidesest kasutage liidese nime määramiseks lippu -i .

$ sudo tcpflow -i eth0 port 80

Samuti saate määrata siht-hosti (aktsepteeritud väärtused on IP-aadress, hostinimi või domeenid), nagu näidatud.

$ sudo tcpflow -c host 192.68.43.1
OR
$ sudo tcpflow -c host www.google.com 

Kõigi töötluste saate lubada kõigi skanneritega, millel on lipp -a . See on samaväärne lülitiga -e .

$ sudo tcpflow -a  
OR
$ sudo tcpflow -e all

Samuti saab aktiveerida konkreetse skanneri; saadaolevad skannerid hõlmavad md5, http, netviz, tcpdemux ja wifiviz (iga skanneri üksikasjaliku teabe vaatamiseks käivitage tcpflow-H).

$ sudo tcpflow -e http
OR
$ sudo tcpflow -e md5
OR
$ sudo tcpflow -e netviz
OR
$ sudo tcpflow -e tcpdemux
OR
$ sudo tcpflow -e wifiviz

Järgmine näide näitab, kuidas lubada kõiki skannereid, välja arvatud tcpdemux.

$ sudo tcpflow -a -x tcpdemux 

TCPflow püüab võrguliidese tavaliselt enne pakettide hõivamist seada ebareaalsesse režiimi. Selle saate takistada lipu -p abil, nagu näidatud.

$ sudo tcpflow -p -i eth0

Pakettide lugemiseks tcpdump pcap-failist kasutage lippu -r .

$ sudo tcpflow -f file.pcap

Täpsema režiimi saate lubada, kasutades valikuid -v või -d 10 .

$ sudo tcpflow -v
OR
$ sudo tcpflow -d 10

Tähtis: tcpflow üks piirang on see, et praegu ei saa ta IP-fragmentidest aru, seega ei suudeta IP-fragmente sisaldavate TCP-ühenduste osana edastatud andmeid korralikult hõivata.

Lisateavet ja kasutusvõimalusi leiate tcpflow manulehelt.

$ man tcpflow 

TCPflow Githubi hoidla: https://github.com/simsong/tcpflow

Praeguseks kõik! TCPflow on võimas TCP voo salvesti, mis on kasulik võrgupakettide voogude mõistmiseks ja võrguekspertiisi teostamiseks ning palju muud. Proovige seda ja jagage oma mõtteid selle kohta meiega kommentaarides.