TCPflow - analizējiet un atkļūdojiet tīkla trafiku Linux


TCPflow ir bezmaksas, atvērtā koda, jaudīgs komandrindas rīks tīkla trafika analīzei Unix tipa sistēmās, piemēram, Linux. Tas uztver datus, kas saņemti vai pārsūtīti, izmantojot TCP savienojumus, un glabā tos failā vēlākai analīzei noderīgā formātā, kas ļauj veikt protokolu analīzi un atkļūdošanu.

Tas faktiski ir tcpdump līdzīgi rīki, jo tas apstrādā paketes no stieples vai no saglabāta faila. Tas atbalsta tās pašas jaudīgās filtrēšanas izteiksmes, kuras atbalsta tās kolēģis. Vienīgā atšķirība ir tāda, ka tcpflow sakārto visas TCP paketes un apkopo katru plūsmu atsevišķā failā (failā katram plūsmas virzienam) vēlākai analīzei.

Tā funkciju komplektā ietilpst uzlabota spraudņu sistēma saspiestu HTTP savienojumu dekompresēšanai, MIME kodēšanas atsaukšanai vai trešo pušu programmu izsaukšanai pēcapstrādei un daudz ko citu.

Ir daudz tcpflow izmantošanas gadījumu, kas ietver tīkla pakešu plūsmu izpratni, kā arī atbalsta tīkla kriminālistikas un HTTP sesiju satura atklāšanu.

Kā instalēt TCPflow Linux sistēmās

TCPflow ir pieejams oficiālajos GNU/Linux izplatīšanas oficiālajos krātuvēs. To var instalēt, izmantojot savu pakotņu pārvaldnieku, kā parādīts.

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

Pēc tcpflow instalēšanas to var palaist ar superlietotāja privilēģijām, pretējā gadījumā izmantojiet komandu sudo. Ņemiet vērā, ka tas klausās aktīvajā tīkla saskarnē (piemēram, enp0s3).

$ sudo tcpflow

tcpflow: listening on enp0s3

Pēc noklusējuma tcpflow visus uzņemtos datus saglabā failos, kuru formā ir nosaukumi (tas var atšķirties, ja izmantojat noteiktas opcijas, piemēram, laika zīmogu).

sourceip.sourceport-destip.destport
192.168.043.031.52920-216.058.210.034.00443

Tagad izveidosim direktoriju sarakstu, lai redzētu, vai TCP plūsma ir notverta kādos failos.

$ 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

Kā mēs jau iepriekš minējām, katra TCP plūsma tiek glabāta savā failā. No iepriekš minētās izejas var redzēt, ka ir trīs atšifrējumu faili, kas norāda tcpflow divos pretējos virzienos, kur avota IP pirmajā failā un mērķa IP otrajā failā un otrādi.

Pirmajā failā 192.168.043.031.52920-216.058.210.034.00443 ir dati, kas pārsūtīti no resursdatora 192.168.043.031 (vietējā hosta, kurā tika palaista tcpflow), izmantojot portu 52920, uzņēmumam 216.058.210.034 (attālais resursdators), izmantojot 443. portu.

Otrajā failā 216.058.210.034.00443-192.168.043.031.52920 ir dati, kas no resursdatora 216.058.210.034 (attālā resursdatora) nosūtīti caur 443. portu resursdatoram 192.168.043.031 (vietējais resursdators, kurā tika palaista tcpflow), izmantojot portu 52920.

Ir izveidots arī XML pārskats, kurā ir informācija par programmu, piemēram, kā tā tika sastādīta, un datoru, kurā tā tika palaista, un ieraksts par katru TCP savienojumu.

Kā jūs, iespējams, pamanījāt, tcpflow pēc noklusējuma saglabā atšifrējumu failus pašreizējā direktorijā. Opcija -o var palīdzēt norādīt izvades direktoriju, kurā tiks rakstīti atšifrējuma faili.

$ 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

Izmantojot karodziņu -c šādi, varat arī izdrukāt pakešu saturu standarta formātā, kad tie tiek saņemti, nesaglabājot failos visus uzņemtos datus.

Lai to efektīvi pārbaudītu, atveriet otro termināli un palaidiet ping vai pārlūkojiet internetu. Jums vajadzētu būt iespējai redzēt ping informāciju vai pārlūkošanas informāciju, ko tcpflow uztver.

$ sudo tcpflow -c

Ir iespējams uztvert visu datplūsmu noteiktā ostā, piemēram, 80. portā (HTTP). HTTP trafika gadījumā jūs varēsit redzēt HTTP galvenes, kam seko saturs, viss uz standarta vai vienā failā, ja ir noņemts slēdzis -c .

$ sudo tcpflow port 80

Lai tvertu paketes no noteikta tīkla interfeisa, izmantojiet karodziņu -i , lai norādītu interfeisa nosaukumu.

$ sudo tcpflow -i eth0 port 80

Varat arī norādīt mērķa resursdatoru (pieņemamās vērtības ir IP adrese, resursdatora nosaukums vai domēni), kā parādīts.

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

Jūs varat iespējot visu apstrādi, izmantojot visus skenerus ar karodziņu -a , tas ir līdzvērtīgi slēdzim -e all.

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

Var aktivizēt arī noteiktu skeneri; pieejamie skeneri ietver md5, http, netviz, tcpdemux un wifiviz (palaidiet tcpflow -H, lai skatītu detalizētu informāciju par katru skeneri).

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

Šajā piemērā parādīts, kā iespējot visus skenerus, izņemot tcpdemux.

$ sudo tcpflow -a -x tcpdemux 

Pirms pakešu tveršanas TCPflow parasti mēģina nodot tīkla saskarni nemierīgā režīmā. To var novērst, izmantojot -p karodziņu, kā parādīts.

$ sudo tcpflow -p -i eth0

Lai lasītu paketes no tcpdump pcap faila, izmantojiet karodziņu -r .

$ sudo tcpflow -f file.pcap

Varat iespējot izvērsto režīmu, izmantojot opcijas -v vai -d 10 .

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

Svarīgi: Viens tcpflow ierobežojums ir tāds, ka pašlaik tas nesaprot IP fragmentus, tādējādi dati, kas pārsūtīti kā daļa no TCP savienojumiem, kas satur IP fragmentus, netiks pareizi uzņemti.

Lai iegūtu papildinformāciju un lietošanas iespējas, skatiet tcpflow rokasgrāmatas lapu.

$ man tcpflow 

TCPflow Github krātuve: https://github.com/simsong/tcpflow

Tas pagaidām ir viss! TCPflow ir spēcīgs TCP plūsmas reģistrators, kas ir noderīgs, lai izprastu tīkla pakešu plūsmas un veiktu tīkla kriminālistikas, un vēl daudz vairāk. Izmēģiniet to un komentāros padalieties ar mums savās domās.