TCPFLOW - Menganalisis dan Debug Trafik Rangkaian di Linux

TCPFLOW - Menganalisis dan Debug Trafik Rangkaian di Linux

Tcpflow adalah alat berasaskan baris arahan yang bebas, terbuka, kuat untuk menganalisis trafik rangkaian pada sistem seperti Unix seperti Linux. Ia menangkap data yang diterima atau dipindahkan melalui sambungan TCP, dan menyimpannya dalam fail untuk analisis kemudian, dalam format yang berguna yang membolehkan analisis protokol dan debugging.

Baca juga: 16 alat pemantauan jalur lebar terbaik untuk menganalisis penggunaan rangkaian di Linux

Ini sebenarnya alat seperti TCPDUMP kerana ia memproses paket dari dawai atau dari fail yang disimpan. Ia menyokong ekspresi penapisan yang sama yang disokong oleh rakan sejawatannya. Satu -satunya perbezaan ialah TCPFlow meletakkan semua paket TCP ke dalam pesanan dan memasang setiap aliran dalam fail berasingan (fail untuk setiap arah aliran) untuk analisis kemudian.

Set ciri-cirinya termasuk sistem pemalam canggih untuk menguraikan sambungan HTTP yang dimampatkan, pengekodan MIME yang membuang, atau menggunakan program pihak ketiga untuk pemprosesan pasca dan banyak lagi.

Terdapat banyak kes penggunaan untuk TCPFlow yang termasuk untuk memahami aliran paket rangkaian dan juga menyokong untuk melaksanakan forensik rangkaian dan mendedahkan kandungan sesi HTTP.

Cara Memasang TCPFlow dalam Sistem Linux

Tcpflow boleh didapati di repositori rasmi pengedaran GNU/Linux arus perdana, anda boleh memasangnya menggunakan pengurus pakej anda seperti yang ditunjukkan.

$ sudo apt Pasang tcpflow #debian/ubuntu $ sudo yum install tcpflow #centos/rhel $ sudo dnf pemasangan tcpflow #fedora 22+ 

Setelah memasang TCPFlow, anda boleh menjalankannya dengan keistimewaan super, jika tidak, gunakan perintah sudo. Perhatikan bahawa ia mendengarkan antara muka rangkaian aktif (contohnya ENP0S3).

$ sudo tcpflow TCPFlow: Mendengarkan di ENP0S3 

Secara lalai menyimpan tcpflow semua data yang ditangkap dalam fail yang mempunyai nama dalam borang (ini mungkin berbeza jika anda menggunakan pilihan tertentu seperti Timestamp).

sourceip.Sourceport-Destip.Destport 192.168.043.031.52920-216.058.210.034.00443 

Sekarang mari kita buat penyenaraian direktori untuk melihat sama ada aliran TCP telah ditangkap dalam sebarang fail.

$ ls -1 Jumlah 20 -RW-R-R--. 1 akar root 808 Sep 19 12:49 192.168.043.031.52920-216.058.210.034.00443 -RW-R-R--. 1 akar akar 59 Sep 19 12:49 216.058.210.034.00443-192.168.043.031.52920 

Seperti yang telah disebutkan sebelumnya, setiap aliran TCP disimpan dalam failnya sendiri. Dari output di atas, anda dapat melihat bahawa terdapat tiga fail transkrip, yang menunjukkan TCPFlow dalam dua arah bertentangan, di mana sumber IP dalam fail pertama dan IP destinasi dalam fail kedua dan sebaliknya.

Fail pertama 192.168.043.031.52920-216.058.210.034.00443 Mengandungi data yang dipindahkan dari tuan rumah 192.168.043.031 (localhost di mana TCPFlow dijalankan) melalui port 52920, untuk mengacara 216.058.210.034 (Hos Jauh) melalui Port 443.

Dan fail kedua 216.058.210.034.00443-192.168.043.031.52920 Mengandungi data yang dihantar dari tuan rumah 216.058.210.034 (Hos Jauh) melalui Port 443 untuk mengacara 192.168.043.031 (localhost di mana TCPFlow dijalankan) melalui port 52920.

Terdapat juga XML laporan yang dihasilkan, yang mengandungi maklumat mengenai program seperti bagaimana ia disusun, dan komputer yang dijalankan dan rekod setiap sambungan TCP.

Seperti yang anda perhatikan, TCPFlow menyimpan fail transkrip dalam direktori semasa secara lalai. The -o pilihan dapat membantu anda menentukan direktori output di mana fail transkrip akan ditulis.

$ sudo tcpflow -o tcpflow_files $ sudo ls -l tcpflow_files Jumlah 32 -RW-R-R--. 1 akar akar 1665 Sep 19 12:56 157.240.016.035.00443-192.168.000.103.45986 -RW-R-R--. 1 akar akar 45 Sep 19 12:56 169.044.082.101.00443-192.168.000.103.55496 -RW-R-R--. 1 akar root 2738 Sep 19 12:56 172.217.166.046.00443-192.168.000.103.39954 -RW-R-R--. 1 akar akar 68 Sep 19 12:56 192.168.000.102.00022-192.168.000.103.42436 -RW-R-R--. 1 akar akar 573 Sep 19 12:56 192.168.000.103.39954-172.217.166.046.00443 -RW-R-R--. 1 akar akar 4067 Sep 19 12:56 192.168.000.103.45986-157.240.016.035.00443 -RW-R-R--. 1 akar akar 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 Laporan.XML 

Anda juga boleh mencetak kandungan paket ke stdout Seperti yang diterima, tanpa menyimpan sebarang data yang ditangkap ke fail, menggunakan -c Bendera seperti berikut.

Untuk menguji ini dengan berkesan, buka terminal kedua dan jalankan a ping, atau melayari internet. Anda sepatutnya dapat melihat butiran ping atau butiran pelayaran anda yang ditangkap oleh TCPFlow.

$ sudo tcpflow -c 

Adalah mungkin untuk menangkap semua lalu lintas di pelabuhan tertentu, contohnya port 80 (Http). Dalam kes trafik HTTP, anda akan dapat melihat tajuk HTTP diikuti oleh kandungan semua pada stdout atau dalam satu fail jika -c suis dikeluarkan.

$ sudo tcpflow port 80 

Untuk menangkap paket dari antara muka rangkaian tertentu, gunakan -i bendera untuk menentukan nama antara muka.

$ sudo tcpflow -i et0 port 80 

Anda juga boleh menentukan hos sasaran (nilai yang diterima adalah alamat IP, nama host atau domain), seperti yang ditunjukkan.

$ sudo tcpflow -c host 192.68.43.1 atau $ sudo tcpflow -c host www.Google.com 

Anda boleh membolehkan semua pemprosesan menggunakan semua pengimbas dengan -a bendera, ini bersamaan dengan -e Semua suis.

$ sudo tcpflow -a atau $ sudo tcpflow -e semua 

Pengimbas tertentu juga boleh diaktifkan; Pengimbas yang ada termasuk MD5, HTTP, Netviz, TCPDEMUX dan WiFiviz (RUN tcpflow -h untuk melihat maklumat terperinci mengenai setiap pengimbas).

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

Contoh berikut menunjukkan bagaimana untuk membolehkan semua pengimbas kecuali TCPDEMUX.

$ sudo tcpflow -a -x tcpdEMUX 

TCPFlow biasanya cuba meletakkan antara muka rangkaian ke dalam mod rompakan sebelum menangkap paket. Anda boleh menghalangnya menggunakan -p bendera seperti yang ditunjukkan.

$ sudo tcpflow -p -i et0 

Untuk membaca paket dari fail pcap tcpdump, gunakan -r bendera.

$ sudo tcpflow -f fail.PCAP 

Anda boleh mengaktifkan mod verbose menggunakan -v atau -D 10 pilihan.

$ sudo tcpflow -v atau $ sudo tcpflow -d 10 

Penting: Satu batasan tcpflow Adakah, pada masa ini ia tidak memahami serpihan IP, oleh itu data yang dihantar sebagai sebahagian daripada sambungan TCP yang mengandungi serpihan IP tidak akan ditangkap dengan betul.

Untuk maklumat lanjut dan pilihan penggunaan, lihat tcpflow halaman lelaki.

$ man tcpflow 

Tcpflow GitHub Repository: https: // github.com/simsong/tcpflow

Itu sahaja buat masa ini! Tcpflow adalah perakam aliran TCP yang kuat yang berguna untuk memahami aliran paket rangkaian dan forensik rangkaian yang melaksanakan, dan banyak lagi. Cubalah dan kongsi pendapat anda tentang kami dalam komen.