TCPflow - Analysoi ja korjaa verkkoliikennettä Linuxissa


TCPflow on ilmainen, avoimen lähdekoodin tehokas komentorivipohjainen työkalu verkkoliikenteen analysointiin Unix-tyyppisissä järjestelmissä, kuten Linuxissa. Se kaappaa TCP-yhteyksien kautta vastaanotetut tai siirretyt tiedot ja tallentaa ne tiedostoon myöhempää analysointia varten hyödyllisessä muodossa, joka mahdollistaa protokolla-analyysin ja virheenkorjauksen.

Lue myös: 16 parasta kaistanleveyden valvontatyökalua verkon käytön analysoimiseen Linuxissa

Se on itse asiassa tcpdump-tyyppinen työkalu, koska se käsittelee paketteja johdosta tai tallennetusta tiedostosta. Se tukee samoja tehokkaita suodatuslausekkeita, joita sen vastine tukee. Ainoa ero on, että tcpflow laittaa kaikki TCP-paketit järjestykseen ja kokoaa jokaisen vuon erilliseen tiedostoon (tiedosto jokaiselle virtaussuunnalle) myöhempää analysointia varten.

Sen ominaisuusjoukko sisältää edistyneen laajennusjärjestelmän pakattujen HTTP-yhteyksien purkamiseen, MIME-koodauksen kumoamiseen tai kolmannen osapuolen ohjelmien kutsumiseen jälkikäsittelyä varten ja paljon muuta.

Tcpflow:lle on monia käyttötapauksia, joihin kuuluu verkon pakettivirtojen ymmärtäminen ja tuki verkkoforensiikan suorittamiseen ja HTTP-istuntojen sisällön paljastamiseen.

Kuinka asentaa TCPflow Linux-järjestelmiin

TCPflow on saatavilla valtavirran GNU/Linux-jakelujen virallisissa arkistoissa. Voit asentaa sen paketinhallinnan avulla kuvan mukaisesti.

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

Kun olet asentanut tcpflow:n, voit suorittaa sen pääkäyttäjän oikeuksilla, muussa tapauksessa käytä sudo-komentoa. Huomaa, että se kuuntelee aktiivisessa verkkoliittymässä (esimerkiksi enp0s3).

sudo tcpflow

tcpflow: listening on enp0s3

Oletuksena tcpflow tallentaa kaikki kaapatut tiedot tiedostoihin, joilla on nimet muodossa (tämä voi olla erilainen, jos käytät tiettyjä vaihtoehtoja, kuten aikaleima).

sourceip.sourceport-destip.destport
192.168.043.031.52920-216.058.210.034.00443

Tehdään nyt hakemistolistaus nähdäksesi, onko tcp-virtaa tallennettu tiedostoihin.

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

Kuten aiemmin mainitsimme, jokainen TCP-vuo on tallennettu omaan tiedostoonsa. Yllä olevasta lähdöstä näet, että on kolme transkriptiotiedostoa, jotka osoittavat tcpflow:n kahteen vastakkaiseen suuntaan, missä lähde-IP ensimmäisessä tiedostossa ja kohde-IP toisessa tiedostossa ja päinvastoin.

Ensimmäinen tiedosto 192.168.043.031.52920-216.058.210.034.00443 sisältää tiedot, jotka on siirretty isännästä 192.168.043.031 (paikallinen isäntä, jolla tcpflow suoritettiin) portin kautta. 52920, isännöimään 216.058.210.034 (etäisäntä) portin 443 kautta.

Ja toinen tiedosto 216.058.210.034.00443-192.168.043.031.52920 sisältää tiedot, jotka on lähetetty isännästä 216.058.210.034 (etäisäntä) portin 443 kautta. isäntään 192.168.043.031 (paikallinen isäntä, jossa tcpflow suoritettiin) portin 52920 kautta.

On myös luotu XML-raportti, joka sisältää tietoja ohjelmasta, kuten sen käännöstavan, ja tietokoneesta, jolla sitä ajettiin, sekä tietueen jokaisesta tcp-yhteydestä.

Kuten olet ehkä huomannut, tcpflow tallentaa transkriptiotiedostot oletusarvoisesti nykyiseen hakemistoon. -o-vaihtoehto voi auttaa sinua määrittämään tuloshakemiston, johon transkriptiotiedostot kirjoitetaan.

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

Voit myös tulostaa pakettien sisällön stdoutiin sitä mukaa kun ne vastaanotetaan tallentamatta kaapattua dataa tiedostoihin käyttämällä -c-lippua seuraavasti.

Testaaksesi tätä tehokkaasti avaamalla toinen pääte ja suorittamalla ping tai selaamalla Internetiä. Sinun pitäisi pystyä näkemään ping-tiedot tai selaustietosi, jotka tcpflow tallentaa.

sudo tcpflow -c

On mahdollista kaapata kaikki tietyn portin liikenne, esimerkiksi portti 80 (HTTP). HTTP-liikenteen tapauksessa voit nähdä HTTP-ylätunnisteet ja sen jälkeen kaiken sisällön vakiotiedostossa tai yhdessä tiedostossa, jos -c-kytkin poistetaan.

sudo tcpflow port 80

Jos haluat kaapata paketteja tietystä verkkoliittymästä, määritä liitännän nimi -i-lipulla.

sudo tcpflow -i eth0 port 80

Voit myös määrittää kohdeisännän (hyväksytyt arvot ovat IP-osoite, isäntänimi tai toimialueet), kuten kuvassa.

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

Voit ottaa kaiken käsittelyn käyttöön kaikilla skannereilla -a-lipulla, tämä vastaa -e all -kytkintä.

sudo tcpflow -a  
OR
sudo tcpflow -e all

Tietty skanneri voidaan myös aktivoida; saatavilla olevia skannereita ovat md5, http, netviz, tcpdemux ja wifiviz (näet kunkin skannerin yksityiskohtaiset tiedot suorittamalla 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

Seuraava esimerkki näyttää kuinka ottaa käyttöön kaikki skannerit paitsi tcpdemux.

sudo tcpflow -a -x tcpdemux 

TCPflow yrittää yleensä asettaa verkkorajapinnan promiscuous-tilaan ennen pakettien sieppaamista. Voit estää tämän käyttämällä -p-lippua kuvan mukaisesti.

sudo tcpflow -p -i eth0

Jos haluat lukea paketteja tcpdump pcap -tiedostosta, käytä lippua -r.

sudo tcpflow -f file.pcap

Voit ottaa monisanaisen tilan käyttöön vaihtoehdoilla -v tai -d 10.

sudo tcpflow -v
OR
sudo tcpflow -d 10

Tärkeää: Yksi tcpflow -sovelluksen rajoituksista on, että se ei tällä hetkellä ymmärrä IP-osia, joten TCP-yhteyksien osana siirrettyä dataa. IP-osia sisältäviä tietoja ei kaapata oikein.

Lisätietoja ja käyttövaihtoehtoja on tcpflow -manuaalisivulla.

man tcpflow 

TCPflow Github -tietovarasto: https://github.com/simsong/tcpflow

Tässä kaikki tältä erää! TCPflow on tehokas TCP-virrantallennin, joka on hyödyllinen verkon pakettivirtojen ymmärtämiseen ja verkkorikosteknisten tietojen suorittamiseen ja paljon muuta. Kokeile sitä ja jaa ajatuksesi siitä kanssamme kommenteissa.