TCPflow - Analysoi ja korjaa verkkoliikennettä Linuxissa
TCPflow on ilmainen, avoimen lähdekoodin tehokas komentorivipohjainen työkalu verkkoliikenteen analysointiin Unixin kaltaisissa järjestelmissä, kuten Linuxissa. Se sieppaa TCP-yhteyksien kautta vastaanotetut tai siirretyt tiedot ja tallentaa ne tiedostoon myöhempää analysointia varten hyödyllisessä muodossa, joka mahdollistaa protokollan analysoinnin ja virheenkorjauksen.
Se on itse asiassa tcpdump-tyyppisiä työkaluja, koska se käsittelee paketteja langasta tai tallennetusta tiedostosta. Se tukee samoja tehokkaita suodatusilmauksia, joita sen vastine tukee. Ainoa ero on, että tcpflow asettaa 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äsittelyyn ja paljon muuta.
Tcpflow-sovelluksessa on monia käyttötapauksia, joihin sisältyy verkkopakettivirtojen ymmärtäminen ja tukee myös verkon rikosteknisiä tutkimuksia ja HTTP-istuntojen sisällön paljastamista.
Kuinka asentaa TCPflow Linux-järjestelmiin
TCPflow on saatavana GNU/Linux-jakelujen virallisten arkistojen kautta. Voit asentaa sen pakettien hallinnan 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, voit käyttää sitä pääkäyttäjän oikeuksilla, muuten käytä sudo-komentoa. Huomaa, että se kuuntelee aktiivista verkkoliitäntää (esimerkiksi enp0s3).
$ sudo tcpflow tcpflow: listening on enp0s3
Oletusarvoisesti tcpflow tallentaa kaikki siepatut tiedot tiedostoihin, joiden nimiä on 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 hakemistoluettelo, jotta voidaan tarkistaa, onko TCP-virtaus kaapattu mihinkään tiedostoon.
$ 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, kukin TCP-virta tallennetaan omaan tiedostoonsa. Yllä olevasta lähdöstä näet, että transkriptiotiedostoja on kolme, 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ää dataa, joka on siirretty isännältä 192.168.043.031 (paikallinen isäntä, jolle tcpflow suoritettiin) portin 52920 kautta isäntää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ää tietoja, jotka on lähetetty isännältä 216.058.210.034 (etäisäntä) portin 443 kautta isännälle 192.168.043.031 (paikallinen isäntä, jolle tcpflow suoritettiin) portin 52920 kautta.
Luotu on myös XML-raportti, joka sisältää tietoja ohjelmasta, esimerkiksi siitä, miten se on koottu, tietokoneesta, jolla sitä ajettiin, sekä tietueen jokaisesta TCP-yhteydestä.
Kuten olet ehkä huomannut, tcpflow tallentaa transkriptiotiedostot oletusarvoisesti nykyiseen hakemistoon. Vaihtoehto -o
voi auttaa määrittämään lähtöhakemiston, 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 vakiona heti, kun ne vastaanotetaan, tallentamatta siepattuja tietoja tiedostoihin käyttämällä -c
-merkkiä seuraavasti.
Testaa tämä tehokkaasti avaamalla toinen pääte ja suorittamalla ping tai selaamalla Internetiä. Sinun pitäisi pystyä näkemään ping-yksityiskohdat tai selaustietosi, jotka tcpflow sieppaa.
$ sudo tcpflow -c
On mahdollista siepata kaikki tietyn portin liikenne, esimerkiksi portti 80 (HTTP). HTTP-liikenteen tapauksessa näet HTTP-otsikot ja sen sisällön koko vakiotiedostossa tai yhdessä tiedostossa, jos -c
-kytkin poistetaan.
$ sudo tcpflow port 80
Jos haluat kaapata paketteja tietyltä verkkoliitännältä, määritä käyttöliittymän nimi -i
-lipulla.
$ sudo tcpflow -i eth0 port 80
Voit myös määrittää kohde-isä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, joissa on lippu -a
, tämä vastaa kytkintä -e
all.
$ sudo tcpflow -a OR $ sudo tcpflow -e all
Erityinen skanneri voidaan myös aktivoida; käytettävissä olevat skannerit sisältävät md5, http, netviz, tcpdemux ja wifiviz (suorita tcpflow -H nähdäksesi tarkat tiedot kustakin skannerista).
$ 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 kaikki skannerit otetaan käyttöön paitsi tcpdemux.
$ sudo tcpflow -a -x tcpdemux
TCPflow yrittää yleensä laittaa verkkoliitännän lupaavaan tilaan ennen pakettien sieppaamista. Voit estää tämän käyttämällä -p
-lippua kuvan mukaisesti.
$ sudo tcpflow -p -i eth0
Voit lukea paketteja tcpdump pcap-tiedostosta käyttämällä -r
-lippua.
$ sudo tcpflow -f file.pcap
Voit ottaa käyttöön tarkan tilan käyttämällä vaihtoehtoja -v
tai -d 10
.
$ sudo tcpflow -v OR $ sudo tcpflow -d 10
Tärkeää: Yksi tcpflow: n rajoitus on, että se ei tällä hetkellä ymmärrä IP-fragmentteja, joten IP-fragmentteja sisältävien TCP-yhteyksien osana lähetettyä dataa ei siepata oikein.
Lisätietoja ja käyttömahdollisuudet ovat tcpflow-man-sivulla.
$ man tcpflow
TCPflow Github -tietovarasto: https://github.com/simsong/tcpflow
Tässä kaikki tältä erää! TCPflow on tehokas TCP-vuontallennin, joka on hyödyllinen verkon pakettivirtojen ymmärtämisessä ja verkon rikosteknisen tutkimuksen suorittamisessa ja niin edelleen. Kokeile sitä ja jaa ajatuksesi siitä meille kommenteissa.