TCPflow - Changanua na Usuluhishe Trafiki ya Mtandao katika Linux


TCPflow ni chanzo huria, wazi na chenye nguvu cha msingi cha mstari wa amri cha kuchanganua trafiki ya mtandao kwenye mifumo kama ya Unix kama vile Linux. Hunasa data iliyopokelewa au kuhamishwa kupitia miunganisho ya TCP, na kuihifadhi katika faili kwa uchanganuzi wa baadaye, katika umbizo muhimu linaloruhusu uchanganuzi wa itifaki na utatuzi.

Kwa kweli ni zana kama tcpdump inapochakata pakiti kutoka kwa waya au kutoka kwa faili iliyohifadhiwa. Inaauni usemi sawa wa uchujaji unaoungwa mkono na mwenzake. Tofauti pekee ni kwamba tcpflow huweka pakiti zote za TCP kwa mpangilio na kukusanya kila mtiririko katika faili tofauti (faili kwa kila mwelekeo wa mtiririko) kwa uchanganuzi wa baadaye.

Seti ya vipengele vyake inajumuisha mfumo wa programu-jalizi wa hali ya juu wa kubana miunganisho iliyobanwa ya HTTP, kutengua usimbaji wa MIME, au kualika programu za watu wengine kwa ajili ya kuchakata baada ya kuchakata na mengi zaidi.

Kuna hali nyingi za utumiaji za tcpflow ambazo ni pamoja na kuelewa mtiririko wa pakiti za mtandao na pia kusaidia kutekeleza uchunguzi wa uchunguzi wa mtandao na kufichua yaliyomo kwenye vipindi vya HTTP.

Jinsi ya kusakinisha TCPflow katika Mifumo ya Linux

TCPflow inapatikana katika hazina rasmi za usambazaji wa kawaida wa GNU/Linux, unaweza kuisakinisha kwa kutumia kidhibiti kifurushi chako kama inavyoonyeshwa.

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

Baada ya kusakinisha tcpflow, unaweza kuiendesha na marupurupu ya mtumiaji mkuu, vinginevyo tumia sudo amri. Kumbuka kuwa inasikiza kwenye kiolesura amilifu cha mtandao (kwa mfano enp0s3).

$ sudo tcpflow

tcpflow: listening on enp0s3

Kwa chaguo-msingi tcpflow huhifadhi data yote iliyonaswa katika faili zilizo na majina katika fomu (hii inaweza kuwa tofauti ikiwa unatumia chaguo fulani kama vile muhuri wa muda).

sourceip.sourceport-destip.destport
192.168.043.031.52920-216.058.210.034.00443

Sasa hebu tufanye orodha ya saraka ili kuona ikiwa mtiririko wa tcp umenaswa katika faili zozote.

$ 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

Kama tulivyotaja hapo awali, kila mtiririko wa TCP huhifadhiwa katika faili yake. Kutoka kwa pato hapo juu, unaweza kuona kwamba kuna faili tatu za nakala, ambazo zinaonyesha tcpflow katika pande mbili tofauti, ambapo IP ya chanzo katika faili ya kwanza na IP ya marudio katika faili ya pili na kinyume chake.

Faili ya kwanza 192.168.043.031.52920-216.058.210.034.00443 ina data iliyohamishwa kutoka kwa seva pangishi 192.168.043.031 (mwenyeji wa ndani ambapo tcpflow iliendeshwa) kupitia mlango 52920, hadi mlango wa 05 332 wa seva pangishi.

Na faili ya pili 216.058.210.034.00443-192.168.043.031.52920 ina data iliyotumwa kutoka kwa seva pangishi 216.058.210.034 (mpandishi wa mbali) kupitia mlango wa 443 hadi kupangisha 192.168.043.043phost.

Pia kuna ripoti ya XML iliyotolewa, ambayo ina taarifa kuhusu programu kama vile jinsi ilivyoundwa, na kompyuta iliendeshwa na rekodi ya kila muunganisho wa tcp.

Kama unaweza kuwa umegundua, tcpflow huhifadhi faili za nakala katika saraka ya sasa kwa chaguo-msingi. Chaguo la -o linaweza kukusaidia kubainisha saraka ya towe ambapo faili za nakala zitaandikwa.

$ 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

Unaweza pia kuchapisha yaliyomo kwenye pakiti ili stdout jinsi zinavyopokelewa, bila kuhifadhi data yoyote iliyonaswa kwenye faili, kwa kutumia -c alama kama ifuatavyo.

Ili kujaribu hili kwa ufanisi, fungua terminal ya pili na uendeshe ping, au uvinjari mtandao. Unapaswa kuona maelezo ya ping au maelezo yako ya kuvinjari yakinaswa na tcpflow.

$ sudo tcpflow -c

Inawezekana kukamata trafiki yote kwenye bandari fulani, kwa mfano bandari 80 (HTTP). Kwa upande wa trafiki ya HTTP, utaweza kuona Vichwa vya HTTP vikifuatiwa na maudhui yote kwenye stdout au katika faili moja ikiwa swichi ya -c itaondolewa.

$ sudo tcpflow port 80

Ili kunasa pakiti kutoka kwa kiolesura mahususi cha mtandao, tumia alama ya -i ili kubainisha jina la kiolesura.

$ sudo tcpflow -i eth0 port 80

Unaweza pia kubainisha seva pangishi inayolengwa (thamani zinazokubalika ni anwani ya IP, jina la mwenyeji au vikoa), kama inavyoonyeshwa.

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

Unaweza kuwezesha uchakataji wote kwa kutumia vichanganuzi vyote vilivyo na alama ya -a, hii ni sawa na swichi ya -e zote.

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

Scanner maalum inaweza pia kuanzishwa; vichanganuzi vinavyopatikana ni pamoja na md5, http, netviz, tcpdemux na wifiviz (endesha tcpflow -H ili kuona maelezo ya kina kuhusu kila kichanganuzi).

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

Mfano ufuatao unaonyesha jinsi ya kuwezesha vichanganuzi vyote isipokuwa tcpdemux.

$ sudo tcpflow -a -x tcpdemux 

TCPflow kawaida hujaribu kuweka kiolesura cha mtandao katika hali ya uasherati kabla ya kunasa pakiti. Unaweza kuzuia hili kwa kutumia alama ya -p kama inavyoonyeshwa.

$ sudo tcpflow -p -i eth0

Ili kusoma pakiti kutoka kwa faili ya pcap ya tcpdump, tumia alama ya -r.

$ sudo tcpflow -f file.pcap

Unaweza kuwezesha hali ya kitenzi kwa kutumia chaguo za -v au -d 10.

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

Muhimu: Kizuizi kimoja cha tcpflow ni kwamba, kwa sasa haielewi vipande vya IP, kwa hivyo data inayotumwa kama sehemu ya miunganisho ya TCP iliyo na vipande vya IP haitanaswa ipasavyo.

Kwa maelezo zaidi na chaguo za matumizi, angalia ukurasa wa mtu wa tcpflow.

$ man tcpflow 

Jalada la Github la TCPflow: https://github.com/simsong/tcpflow

Ni hayo tu kwa sasa! TCPflow ni kinasa sauti chenye nguvu cha TCP ambacho ni muhimu kwa kuelewa mtiririko wa pakiti za mtandao na kufanya uchunguzi wa mtandao, na mengi zaidi. Ijaribu na ushiriki maoni yako juu yake na sisi kwenye maoni.