Cara Menggunakan Perintah TCPDUMP di Linux

Cara Menggunakan Perintah TCPDUMP di Linux

The tcpdump Perintah boleh digunakan untuk menangkap trafik rangkaian pada sistem linux. Ini adalah utiliti baris perintah yang serba boleh yang pentadbir rangkaian sering bergantung pada penyelesaian masalah.

Apa yang anda akan dapati ialah jumlah trafik rangkaian yang ditangkap di antara muka boleh dengan mudah menggembirakan. tcmpdump menjadikan pekerjaan kami sedikit lebih mudah dengan membenarkan kami mengasingkan hanya lalu lintas yang kami minati. Sudah tentu, untuk melakukan ini, anda perlu mengenali pelbagai bendera dan tetapan yang disertai dengan arahan.

Dalam panduan ini, anda akan melihat cara menggunakan tcpdump melalui contoh dan penjelasan. Ikuti sistem anda sendiri jika anda ingin belajar menangkap trafik rangkaian dan menguasai tcpdump perintah.

Dalam tutorial ini anda akan belajar:

  • Cara Memasang TCPDUMP pada Distro Linux Utama
  • Contoh perintah TCPDUMP
  • Cara Menapis Trafik TCPDump oleh Port, Protokol, Sumber, dan Destinasi
  • Cara Menulis Tcpdump Tangkap ke Fail
  • Cara mentafsirkan output arahan tcpdump
Menggunakan arahan tcpdump untuk menangkap trafik rangkaian di linux Keperluan Perisian dan Konvensyen Talian Perintah Linux
Kategori Keperluan, konvensyen atau versi perisian yang digunakan
Sistem Mana -mana distro Linux
Perisian tcpdump
Yang lain Akses istimewa ke sistem linux anda sebagai akar atau melalui sudo perintah.
Konvensyen # - Memerlukan arahan Linux yang diberikan untuk dilaksanakan dengan keistimewaan akar sama ada secara langsung sebagai pengguna root atau dengan menggunakan sudo perintah
$ - Memerlukan arahan Linux yang diberikan sebagai pengguna yang tidak layak

Pasang TCPDUMP pada distro utama Linux

Ada peluang yang baik bahawa distro linux anda sudah ada tcpdump dipasang secara lalai, terutamanya jika anda menjalankan distro yang ditujukan kepada pelayan. Sekiranya ia belum dipasang, anda boleh menggunakan arahan yang sesuai di bawah untuk memasangnya melalui pengurus pakej sistem anda.

Untuk memasang TCPDUMP di Ubuntu, Debian, dan Linux Mint:

$ sudo apt pasang tcpdump 

Untuk memasang TCPDUMP di CentOS, Fedora, Almalinux, dan Red Hat:

$ sudo dnf memasang tcpdump 

Untuk memasang TCPDUMP di Arch Linux dan Manjaro:

$ sudo pacman -s tcpdump 

Contoh perintah TCPDUMP

CATATAN
Semua anda tcpdump Perintah mesti dilaksanakan dengan akaun pengguna root atau dengan sudo. Utiliti memerlukan keistimewaan pentadbir untuk dijalankan.

Bentuk perintah yang paling mudah adalah menggunakan utiliti tanpa pilihan tambahan, seperti ini:

# tcpdump 

Sekiranya anda tidak menentukan antara muka rangkaian mana yang anda ingin menangkap trafik dari, seperti dalam perintah di atas, maka tcpdump akan memilih antara muka untuk anda.

Ia akan terus "membuang" lalu lintas yang ditangkap ke terminal anda sehingga anda mengganggu arahan. Cara paling mudah untuk melakukan ini adalah dengan Ctrl + c.

Sekiranya anda mempunyai lebih daripada satu antara muka rangkaian, maka sebaiknya menentukan antara muka yang anda cuba dapatkan trafik, sejak itu tcpdump mungkin tidak memilih yang anda mahukan secara lalai. Menggunakan -D pilihan untuk mencetak senarai antara muka rangkaian yang tcpdump boleh digunakan.

# tcpdump -d 1.ENP0S3 [naik, berjalan] 2.LO [UP, Running, Loopback] 3.Mana-mana (peranti pseudo yang menangkap semua antara muka) [naik, berjalan] 4.Monitor Bluetooth (Bluetooth Linux Monitor) [Tiada] 5.NFLOG (Linux Netfilter Log (NFLOG) antara muka) [NONE] 6.NFQUEUE (LINUX NETFILTER GIRTION (NFQUEU) antara muka) [NONE] 

Kita mempunyai beberapa antara muka yang berbeza yang boleh kita gunakan. Sebagai alternatif, kita mempunyai Mana -mana pilihan yang tersedia yang akan membolehkan kita menangkap lalu lintas di semua antara muka rangkaian secara serentak. Sekiranya kita mahu menangkap lalu lintas rangkaian di ENP0S3 antara muka, kami akan menggunakan sintaks perintah berikut.

# tcpdump -i enp0s3 

Anda boleh menggunakan -v pilihan untuk meningkatkan kelebihan output, atau -vv dan -vvv untuk meningkatkannya lebih jauh.

# tcpdump -i enp0s3 -vv 

Sekiranya anda tidak mahu tcpdump untuk mengeluarkan data tanpa henti ke terminal anda, anda boleh menggunakan -c pilihan untuk menentukan berapa banyak paket yang anda mahukan utiliti untuk ditangkap. tcpdump akan berhenti melaksanakan arahan selepas ambang telah dicapai, dan bukannya menunggu anda mengganggu. Perintah berikut akan membolehkan kami menangkap hanya 15 paket pertama.

# tcpdump -c 15 

Sekiranya anda tidak mahu tcpdump Untuk melaksanakan resolusi DNS pada alamat rangkaian dalam output, anda boleh menggunakan -n pilihan dalam arahan anda. Ini akan memaparkan semua alamat rangkaian sebagai alamat IP, dan bukannya menyelesaikannya ke nama domain.

# tcpdump -n 

Sekiranya anda lebih suka menyimpan output lalu lintas rangkaian ke fail, bukannya disenaraikan di skrin anda, anda sentiasa boleh mengalihkan tcpdump output dengan biasa > dan >> pengendali.

# tcpdump> trafik.txt 

Pilihan lain ialah menulis penangkapan rangkaian ke fail. Fail -fail ini biasanya mempunyai .PCAP Pelanjutan fail, dan tidak dapat dibaca oleh editor teks biasa.

# TCPDUMP -N -W Trafik.PCAP 

Untuk membuka fail untuk analisis kemudian, gunakan -r pilihan dan nama fail anda.

# TCPDUMP -R Trafik.PCAP 

Mentafsirkan output arahan tcpdump

Setiap paket itu tcpdump Tangkapan ditulis sebagai garis individu. Salah satu baris itu akan kelihatan seperti ini:

14:21:46.134249 IP 10.0.2.15.54000> 104.16.168.35.443: Bendera [.], ACK 2915, menang 63000, panjang 0 

Inilah cara mentafsirkan garis data:

  • 14:21:46.134249 - Cap waktu ketika paket ditangkap.
  • IP 10.0.2.15.54000 - IP dan Nombor Port Sumber Host.
  • 104.16.168.35.443 - IP dan nombor port hos destinasi.
  • Bendera [.] - Bendera TCP (SYN, ACK, PSH, dll). [.] bermaksud ACK.
  • ACK 2915 - Nombor pengakuan.
  • menang 63000 - Nombor tetingkap (bait dalam penampan menerima).
  • panjang 0 - Panjang data muatan.

Penapis trafik tcpdump

Salah satu ciri terbaik dari tcpdump adakah kita dapat menyaring dengan tepat lalu lintas yang ingin kita lihat. Tanpa menapis trafik oleh penyesuai (seperti yang dilihat di atas), nombor port, dan protokol paket, jumlah lalu lintas yang ditangkap dapat dengan cepat menjadi luar biasa dan hampir mustahil untuk menyaring melalui.

Walaupun namanya tcpdump, Kita boleh menggunakan alat ini untuk menyaring semua jenis lalu lintas, bukan hanya TCP. Contohnya, gunakan sintaks berikut untuk menyaring trafik yang menggunakan UDP.

# tcpdump -n udp 

Atau contoh berikut yang menapis ICMP:

# tcpdump -n icmp 

Anda juga boleh menggunakan nombor protokol yang sepadan untuk menapis protokol tertentu. Sebagai contoh, ICMP adalah protokol nombor 1, jadi sintaks berikut akan melakukan perkara yang sama seperti contoh sebelumnya.

# tcpdump -n proto 1 

Untuk melihat senarai lengkap protokol rangkaian dan nombor yang sepadan, lihat senarai nombor protokol IP di Wikipedia.

Untuk menapis trafik dengan alamat IP destinasi atau sumber tertentu, kami boleh menggunakan Tuan rumah Qualifer dengan -n pilihan. Contohnya, untuk menapis trafik yang berkaitan dengan tuan rumah di alamat IP 10.10.150.20:

# TCPDUMP -N HOST 10.10.150.20 

Sebagai alternatif, gunakan jaring Qualifer jika anda ingin menapis lalu lintas ke atau dari seluruh rangkaian. Contohnya, arahan berikut akan menapis lalu lintas yang berkaitan dengan 192.168.1.0/24 rangkaian.

# tcpdump -n net 192.168.1 

Menggunakan pelabuhan dan Portrange kualifikasi untuk menapis paket yang berkaitan dengan julat port atau port tertentu, masing -masing. Sebagai contoh, arahan berikut akan menapis trafik kami yang berkaitan dengan port 80 (http).

# tcpdump -n port 80 

Atau, untuk menapis trafik dari port 20-30, arahan berikut akan digunakan.

# TCPDUMP -n Portrange 20-30 

Tambah dst, SRC, SRC dan DST, dan SRC atau DST kualifikasi jika anda ingin menapis berdasarkan alamat sumber dan/atau destinasi atau pelabuhan paket. Sebagai contoh, arahan berikut akan menyaring paket yang mempunyai alamat IP sumber 10.10.150.20.

# TCPDUMP -N SRC HOST 10.10.150.20 

Atau dalam contoh ini, kami menyaring paket yang ditakdirkan untuk port SSH (port 22).

# tcpdump -n dst port 22 

Menggabungkan penapis

Kita dapat menggabungkan pelbagai penapis yang dilindungi di atas dengan menggunakan dan (&&), atau (||), dan tidak (!) pengendali di kami tcpdump perintah.

Contohnya, arahan berikut akan menangkap lalu lintas yang ditakdirkan 10.10.150.20 di port 80 (http).

# TCPDUMP -N DST HOST 10.10.150.20 dan port TCP 80 

Atau membuat lebih banyak penapis berbutir dengan menggabungkan peraturan selanjutnya di dalam kurungan. Sebagai contoh, arahan ini akan melakukan perkara yang sama seperti sebelumnya, tetapi juga menangkap port 443 (https).

# TCPDUMP -N 'DST HOST 10.10.150.20 dan (port TCP 80 atau port TCP 443) ' 

Pemikiran penutupan

Dalam panduan ini, kita melihat cara menggunakan tcpdump utiliti baris arahan untuk menangkap trafik rangkaian pada sistem linux. Seperti yang kita lihat dalam tutorial ini, arahan boleh menjadi agak kompleks dan menerima input yang sangat berbutir, yang membolehkan kita menapis trafik yang tepat yang kita mahu lihat.

Tutorial Linux Berkaitan:

  • Perkara yang hendak dipasang di Ubuntu 20.04
  • Perkara yang perlu dilakukan setelah memasang ubuntu 20.04 Focal Fossa Linux
  • Perintah Linux: Top 20 Perintah Paling Penting yang Anda Perlu ..
  • Perintah Linux Asas
  • Pengenalan kepada Automasi, Alat dan Teknik Linux
  • Pasang Arch Linux di Workstation VMware
  • Perkara yang perlu dilakukan setelah memasang Ubuntu 22.04 Jur -ubur Jammy ..
  • Perkara yang perlu dipasang di Ubuntu 22.04
  • Cara mengambil tangkapan skrin di Kali Linux
  • Cara mengambil tangkapan skrin di Manjaro