GNU/Linux >> Belajar Linux >  >> Linux

Analisis lalu lintas jaringan dengan tcpdump

tcpdump adalah program komputer penganalisis paket jaringan data. Ini memungkinkan pengguna untuk menampilkan paket jaringan (termasuk TCP/IP) yang dikirim atau diterima melalui jaringan. Dalam artikel singkat ini saya akan menunjukkan bagaimana melakukan beberapa packet capture untuk analisis lalu lintas jaringan dengan tcpdump.

Mencantumkan antarmuka jaringan

Tcpdump memerlukan akses ke kartu jaringan Anda, jadi jalankan perintah berikut sebagai root (dengan su atau sudo ). Untuk mencetak daftar antarmuka jaringan yang tersedia pada sistem dan tcpdump dapat menangkap paket yang dijalankan

# tcpdump -D

Dalam kasus saya, saya akan menggunakan nic 'asli', enp3s0.

Menangkap paket

Buka browser web (hanya untuk menghasilkan beberapa lalu lintas jaringan) dan jalankan perintah berikut:

# tcpdump -i <interface>

Bahkan tanpa membuka situs mungkin Anda akan melihat beberapa aktivitas jaringan. Mungkin "beberapa" itu berarti banyak aktivitas jaringan. Keluar dengan ctrl-c dan lihat hasilnya. Output menunjukkan paket per baris, dengan informasi berikut:

  • Stempel waktu
  • Protokol (IP6 untuk IPv6, IP untuk IPv4)
  • Host asal (ip atau nama host) dan port
  • Host tujuan (juga ip atau hostname) dan port
  • Tanda TCP
  • Nomor urut
  • Nomor ACK
  • Ukuran jendela
  • Opsi TCP
  • Panjang data

Membatasi output

tcpdump -i <interface> -c <n>

Dengan perintah ini program akan keluar setelah menerima n paket

Pada tangkapan layar, Anda dapat melihat sleep 2 perintah berjalan sebelum tcpdump. Ini hanya untuk memberi diri saya 2 detik untuk memuat wikipedia di browser saya. Tapi jenis keluarannya sama seperti sebelumnya.

Sembunyikan nama

tcpdump -i <interface> -n

Dengan sakelar -n, tcpdump tidak akan mengubah alamat ip atau nomor port menjadi nama.

Filter

Anda dapat menginstruksikan tcpdump untuk menangkap hanya paket-paket tertentu. Misalnya untuk menangkap hanya paket https, atau lebih tepatnya paket ke port 443, tambahkan ekspresi:

tcpdump -i <interface> port <portnumber or portname>

Kami juga dapat menangkap paket ke atau dari beberapa host dengan ekspresi berikut

tcpdump -i <interface> host <ip address or hostname>

Atau kita dapat menangkap paket dari beberapa protokol dengan:

tcpdump -i <interface> proto <protocol>

Dimana protokol dapat berupa salah satu dari:icmp, icmp6, igmp, igrp, pim, ah, esp, vrrp, udp atau tcp. Untuk icmp, tcp dan udp Anda dapat menghilangkan kata kunci proto.

Kami juga dapat menggabungkan beberapa ekspresi dengan 'dan' (atau '&&'), 'atau' (atau '||') dan tidak (atau '!') dan mengelompokkannya dengan tanda kurung. Masih banyak lagi filter yang bisa Anda buat, periksa halaman manual pcap-filter (man pcap-filter ) untuk mendapatkan bantuan tentang sintaks.

Meningkatkan verbositas keluaran

Gunakan parameter -v untuk meningkatkan verbositas. Dari halaman manual tcpdump:

-v Saat mengurai dan mencetak, hasilkan (sedikit lebih banyak) keluaran verbose. Misalnya, waktu untuk hidup, identifikasi, panjang total dan opsi dalam paket IP dicetak. Juga memungkinkan pemeriksaan integritas paket tambahan seperti memverifikasi checksum header IP dan ICMP.
-vv Bahkan lebih banyak keluaran verbose. Misalnya, bidang tambahan dicetak dari paket balasan NFS, dan paket SMB sepenuhnya diterjemahkan.
-vvv Bahkan lebih banyak keluaran verbose. Misalnya opsi telnet SB…SE tercetak secara lengkap. Dengan opsi -X Telnet juga dicetak dalam hex.

Simpan tangkapan ke file

Untuk menulis paket ke file untuk analisis nanti, tambahkan -w ke baris perintah:

tcpdump -i <interface> -w <filename>

Anda dapat membaca file itu nanti dengan tanda -r

tcpdump -r <file>

Atau Anda dapat membuka file itu nanti dengan beberapa alat GUI, seperti wireshark.

Tunggu sebentar… wireshark juga bisa menangkap paket jaringan, kenapa saya tidak pakai dari awal?.

Benar, wireshark dapat menangkap paket, dan outputnya juga jauh lebih jelas dan lebih mudah diikuti dan dibaca. Dengan wireshark saya bahkan tidak perlu menghafal baris perintah, atau menyimpan halaman manual, artikel blog, atau setidaknya lembar contekan. Juga benar. Saya bisa menggunakan wireshark daripada melakukan analisis lalu lintas jaringan dengan tcpdump. Tetapi terkadang saya perlu melakukan pengambilan di server atau router, dan di komputer semacam itu saya tidak ingin menyia-nyiakan beberapa siklus cpu atau bit memori yang berharga dalam menggambar jendela, atau warna, atau tombol atau beberapa widget GUI lainnya.

Dan itulah mengapa saya memilih untuk melakukan analisis lalu lintas jaringan dengan tcpdump di baris perintah jika saya sedang terburu-buru. Atau simpan hasilnya ke file yang saya transfer untuk melakukannya dengan wireshark.


Linux
  1. Memecahkan masalah jaringan Anda dengan tcpdump

  2. Contoh penggunaan perintah tcpdump untuk pemecahan masalah jaringan

  3. Meningkatkan kinerja TCP melalui jaringan gigabit dengan banyak koneksi dan lalu lintas paket kecil yang tinggi

  1. Memulai NetworkManager di Linux

  2. Menghitung jaringan baru dengan Nmap

  3. 6 opsi filter lalu lintas jaringan tcpdump

  1. Tangkap paket dengan tcpdump

  2. Menguji layanan jaringan dengan Netcat

  3. Gabungkan dan Tshark:Gabungkan Dump Paket dan Analisis Lalu Lintas Jaringan