GNU/Linux >> Belajar Linux >  >> Linux

Contoh Linux tcpdump yang berguna untuk Admin Jaringan

Sebagai administrator jaringan, pemecahan masalah jaringan adalah bagian dari keseharian Anda. Salah satu alat yang sangat diperlukan saat menangani masalah terkait jaringan adalah perintah tcpdump Linux.

Tutorial ini akan memandu Anda melalui beberapa contoh nyata tentang bagaimana tcpdump dapat membantu Anda dalam mendiagnosis masalah jaringan yang umum. Di akhir tutorial ini, Anda akan memiliki pemahaman yang lebih baik tentang cara memanfaatkan tcpdump untuk memecahkan masalah jaringan Anda sendiri.

Prasyarat

Tutorial ini akan menjadi demonstrasi langsung. Jika Anda ingin mengikuti, pastikan Anda memiliki mesin Linux. Tutorial ini menggunakan Ubuntu 20.04, tetapi semua distribusi Linux modern akan berfungsi.

Menginstal Alat Linux tcpdump

Sebagian besar distribusi Linux modern, terutama server, sudah memiliki tcpdump. Namun jika tidak, jangan khawatir karena pemasangannya mudah dan cepat.

1. Masuk ke komputer Linux Anda menggunakan klien SSH pilihan Anda.

2. Pertama, periksa apakah tcpdump sudah terinstal dengan menjalankan perintah di bawah ini.

sudo apt list --installed tcpdump

Jika tcpdump ada di mesin Anda, Anda akan melihat output yang mirip dengan tangkapan layar di bawah.

Jika tcpdump tidak ada, Anda akan mendapatkan hasil di bawah ini.

3. Setelah Anda memastikan bahwa tcpdump tidak diinstal, jalankan perintah di bawah ini untuk menginstalnya.

# Update the package index
sudo apt update -y

# Install tcpdump
sudo apt install tcpdump -y

4. Terakhir, periksa versi tcpdump yang terinstal dengan menjalankan perintah di bawah ini.

tcpdump --version

Pada tulisan ini, versi tcpdump terbaru dari repositori Ubuntu adalah 4.9.3.

Menangkap Lalu Lintas Paket pada Antarmuka Default

Penggunaan utama tcpdump adalah menangkap paket. Berkat pcap library, alat ini dapat menangkap paket dari berbagai jenis jaringan, seperti Ethernet, Wi-Fi, PPP, dll.

Sintaks untuk bentuk dasar dari perintah tcpdump adalah sebagai berikut.

tcpdump [options] [expression]

Dimana:

  • options :Mengatur berbagai opsi tcpdump. Opsi mengontrol cara tcpdump menangkap dan menampilkan paket.
  • expression :Filter atau tentukan jenis lalu lintas yang akan diambil. Ekspresi dibahas secara lebih rinci nanti dalam tutorial ini.

Kasus penggunaan paling dasar untuk tcpdump adalah untuk menangkap semua lalu lintas pada antarmuka jaringan default Anda dan menampilkan data ke output standar.

Jalankan tcpdump perintah tanpa opsi atau ekspresi untuk menangkap semua lalu lintas di antarmuka default Anda.

sudo tcpdump

Anda harus menjalankan tcpdump sebagai root atau dengan awalan sudo karena mengakses antarmuka jaringan adalah operasi istimewa.

tcpdump alat menangkap paket dan mencetak output ke terminal, seperti yang ditunjukkan di bawah ini. Jika Anda yakin telah menangkap cukup banyak paket, tekan CTRL+C untuk menghentikan penangkapan.

Membatasi Jumlah Pengambilan Paket

tcpdump Perintah Linux dapat dengan cepat membanjiri terminal Anda dengan output, dan yang terbaik adalah hanya menangkap sejumlah kecil data dalam satu waktu.

Anda dapat menyertakan -c pilihan untuk menentukan jumlah paket tcpdump harus ditangkap sebelum keluar. Opsi ini sering kali berlaku jika Anda hanya ingin mengambil sejumlah kecil data untuk analisis.

Untuk melakukannya, jalankan perintah di bawah ini dan ubah nomor setelah -c pilihan. Contoh ini hanya menangkap hingga 10 paket dan secara otomatis berakhir.

sudo tcpdump -c 10

Meningkatkan Verbositas

Selama pengambilan paket, Anda mungkin menemukan bahwa, kadang-kadang, output default mungkin tidak berisi atau menampilkan informasi yang mendalam. Untungnya, alat tcpdump Linux memberi Anda tiga tingkat verbositas yang diwakili oleh flag -v, -vv, dan -vvv.

Saat menggunakan opsi ini, tcpdump mem-parsing dan mencetak lebih banyak informasi untuk setiap paket, seperti time to live (TTL), identifikasi, dll.

# Verbose
sudo tcpdump -v

# Even more verbose
sudo tcpdump -vv

# Most verbose
sudo tcpdump -vvv

Untuk perspektif yang lebih baik, lihat gambar di bawah yang membandingkan perbedaan detail antara -v dan -vvv .

Menangkap Paket pada Antarmuka Tertentu atau Semua

Pada contoh sebelumnya, tcpdump menangkap paket pada antarmuka jaringan default, yang berarti Anda hanya perlu memikirkan satu antarmuka. Tetapi bagaimana jika Anda memiliki beberapa antarmuka dan ingin menangkap lalu lintas pada antarmuka tertentu atau semua antarmuka?

Perintah tcpdump Linux memungkinkan Anda untuk menentukan antarmuka jaringan mana yang akan ditangkap menggunakan flag -i. Bendera ini menerima nama antarmuka sebagai nilainya, yang berarti Anda harus mengetahui nama antarmuka terlebih dahulu.

1. Jalankan perintah tcpdump dengan opsi -D untuk mencetak daftar semua antarmuka yang tersedia pada mesin.

sudo tcpdump -D

Seperti yang Anda lihat di bawah, ada tujuh antarmuka pada mesin ini. Komputer Anda mungkin memiliki rangkaian antarmuka jaringan yang berbeda. Contoh ini hanya berfokus pada antarmuka jaringan ethernet, khususnya eth0 dan eth1.

2. Selanjutnya, jalankan perintah di bawah ini untuk mulai menangkap paket pada antarmuka tertentu yang Anda inginkan. Contoh ini menangkap antarmuka eth1. Juga, untuk membatasi jumlah paket yang ditangkap, perintah di bawah ini menggunakan flag -c diikuti dengan hitungan.

sudo tcpdump -i eth1 -c 5

3. Alih-alih menentukan satu antarmuka, Anda juga dapat menangkap paket di semua antarmuka secara bersamaan. Untuk melakukannya, tetapkan any sebagai nilai parameter untuk -i.

sudo tcpdump -i any -c 5

Mengapa Anda ingin menangkap paket di semua antarmuka? Berikut adalah beberapa alasan umum.

Pertama, menangkap lalu lintas di semua antarmuka memungkinkan Anda melihat semua lalu lintas yang melewati sistem Anda, bahkan jika itu tidak ditujukan untuk sistem Anda.

Juga, Anda dapat melihat layanan dan protokol apa yang melewati jaringan Anda. Informasi ini dapat berguna saat mengonfigurasi aturan firewall atau tindakan keamanan lainnya, terutama saat membangun server baru.

Menambahkan Filter ke Perintah Linux tcpdump

Menangkap paket secara liar tidak selalu merupakan pendekatan terbaik. Jumlah data dapat menjadi membingungkan dan dapat menghambat pemecahan masalah Anda. Mengapa? Karena Anda mungkin menangkap lalu lintas yang tidak relevan dengan situasi tersebut.

Filter berguna dalam situasi ini. Alat tcpdump memiliki banyak filter bawaan untuk menangkap jenis lalu lintas tertentu. Anda dapat menggabungkan filter ini untuk menangkap lalu lintas yang relevan saja. Berikut adalah beberapa contohnya.

Memfilter menurut Nomor Port

Misalnya, jika Anda memecahkan masalah server SSH, Anda mungkin tidak peduli dengan jenis lalu lintas lain yang melewati jaringan Anda.

Jalankan perintah di bawah ini untuk menangkap semua lalu lintas yang ditujukan untuk port 22 , port SSH default.

sudo tcpdump -c 5 port 22

Seperti yang Anda lihat, alat ini hanya menangkap lalu lintas port 22 sebagai sumber atau tujuan.

Bagaimana jika Anda hanya tertarik pada lalu lintas HTTP? Anda hanya perlu mengganti nomor port dengan port HTTP Anda, yang secara default adalah port 80.

sudo tcpdump -c 1 port 80

Catatan:Alat tcpdump cukup pintar untuk mengenali nama protokol layanan sebagai ganti nomor port. Misalnya, alih-alih menentukan port 22 untuk memfilter lalu lintas SSH, Anda dapat menentukan port ssh sebagai gantinya. Hal yang sama berlaku untuk port 80 untuk lalu lintas HTTP, port http.

Pemfilteran menurut Protokol

Jangan sampai namanya tcpdump menipu Anda dengan berpikir itu hanya berfungsi dengan lalu lintas TCP. Alat ini juga dapat menangkap lalu lintas non-TCP seperti ICMP atau UDP.

Misalnya, perintah di bawah ini menangkap paket dari antarmuka apa pun tetapi hanya memfilter lalu lintas UDP.

sudo tcpdump -i any -c 5 udp

Akibatnya, hasil di bawah ini hanya menampilkan lalu lintas UDP, yang tampaknya berupa paket tentang operasi NTP dan DNS.

Bagaimana jika Anda hanya perlu menangkap lalu lintas terkait DNS? Dalam hal ini, Anda dapat menggabungkan filter udp dan port 53 . Dengan cara ini, output yang diinginkan hanya akan menampilkan paket terkait DNS.

sudo tcpdump -i any -c 5 udp port 53

Kali ini, Anda hanya menangkap lalu lintas terkait DNS (A, PTR, pencarian AAA, dan balasan) yang dibatasi untuk protokol transport UDP.

Apakah Anda menduga bahwa serangan banjir ping sedang terjadi di jaringan Anda? Mengapa Anda tidak mencoba mencari sumber dan tujuan menggunakan tcpdump ? Untuk melakukannya, jalankan perintah di bawah ini untuk mendengarkan lalu lintas ICMP di antarmuka mana pun.

-n flag mencegah tcpdump dari mencoba untuk menyelesaikan nama host dan menunjukkan alamat IP sebagai gantinya. Dalam situasi seperti ini, melewati resolusi nama dapat meningkatkan kinerja.

sudo tcpdump -n -i any icmp

Anda mungkin telah menyadari bahwa tcpdump filter yang kuat dan fleksibel. Dengan menggabungkan berbagai filter, Anda dapat menangkap lalu lintas yang relevan dengan hasil yang Anda inginkan.

Untuk informasi lebih lanjut tentang filter tcpdump, lihat halaman manual tcpdump.

Menyimpan Paket yang Diambil ke File di Disk

Menampilkan tangkapan paket di layar dengan cepat tidak masalah untuk tangkapan singkat. Tetapi jika Anda menghasilkan tangkapan paket yang besar, output di layar tidak lagi praktis. Anda memerlukan cara untuk mengekspor data yang diambil ke file untuk analisis atau berbagi nanti.

Untungnya, tcpdump mendukung kemampuan untuk menyimpan paket yang diambil ke file di disk. Anda harus menentukan opsi -w diikuti dengan jalur file.

Jalankan perintah di bawah ini untuk menyimpan semua lalu lintas yang melewati sistem Anda ke file bernama /tmp/capture.pcap. Perintah ini mendengarkan pada antarmuka apa pun dan menangkap maksimal 20 paket sebelum keluar secara otomatis.

sudo tcpdump -i any -w /tmp/capture.pcap -vv -c 20

Sekarang Anda memiliki file pengambilan paket, dan bila perlu, Anda dapat membaca kembali file tersebut ke terminal. Untuk membaca pengambilan paket dari file, tambahkan -r pilihan diikuti dengan nama file pengambilan paket.

sudo tcpdump -r /tmp/capture.pcap

Kesimpulan

Tutorial ini mengajarkan Anda untuk menangkap dan menganalisis lalu lintas jaringan menggunakan perintah tcpdump Linux. Anda telah menggunakan opsi umum dan filter gabungan untuk menghasilkan tangkapan paket yang akurat. Anda juga menggunakan alat untuk menangkap paket ke file untuk analisis nanti dan membaca file kembali ke terminal.

Alat tcpdump Linux sangat penting di setiap kotak alat administrator jaringan. Pengetahuan yang Anda peroleh dalam tutorial ini membantu Anda menjadi efektif dan efisien dalam memecahkan masalah jaringan.


Linux
  1. Cara Menggunakan Perintah id di Linux:5 Contoh Berguna

  2. Contoh Penggalian Linux yang Berguna untuk Admin Jaringan

  3. Contoh penggunaan perintah tcpdump untuk pemecahan masalah jaringan

  1. 16 Contoh Perintah 'cp' yang Berguna untuk Pemula Linux

  2. 9 Contoh Perintah Split yang Berguna di Linux

  3. 10 Contoh Sar (Sysstat) yang Berguna untuk Pemantauan Kinerja UNIX / Linux

  1. 12 Contoh Perintah 'dmidecode' yang Berguna untuk Admin Linux

  2. 10 Contoh Perintah ncat (nc) yang berguna untuk Sistem Linux

  3. 11 Contoh Perintah Split yang Berguna untuk Sistem Linux