Memeriksa lalu lintas jaringan dengan tcpdump dan Wireshark | UNIX LINUX EXPLORE
Edit

Memeriksa lalu lintas jaringan dengan tcpdump dan Wireshark

Penganalisis protokol menyadap lalu lintas jaringan, yang memungkinkan teknisi jaringan melihat header dan konten paket. Dari perspektif keamanan, konten payload penting karena di sanalah data rahasia pengguna terekspos. Namun, untuk pemecahan masalah, penting juga bagi profesional jaringan untuk mengetahui informasi sumber dan tujuan atau protokol apa yang digunakan.

Alat seperti Wireshark dan tcpdump menampilkan alamat MAC sumber dan tujuan, yang merupakan pengenal unik untuk kartu antarmuka jaringan (NIC) tertentu yang mengirimkan dan menerima data. Penganalisis protokol juga memaparkan alamat IP sumber dan tujuan, yang menunjukkan pengalamatan logis kedua perangkat dan menunjukkan apakah router meneruskan informasi antar segmen atau seharusnya.

Wireshark dan tcpdump adalah dua penganalisis protokol umum yang digunakan dalam pemecahan masalah. Keduanya menangkap lalu lintas jaringan dan mencatat hasilnya untuk pemeriksaan selanjutnya.


Dalam tutorial ini Anda akan berlatih menggunakan tcpdump dan Wireshark, dua aplikasi perangkat lunak untuk penangkapan dan analisis paket.

Dengan menggunakan aplikasi ini, kita dapat menangkap data jaringan mentah saat data tersebut tiba di atau meninggalkan host mana pun dalam percobaan kita, menyimpan paket jaringan mentah dalam sebuah berkas, dan menganalisis paket dalam berkas ini untuk mendapatkan wawasan tentang protokol jaringan dan perilakunya.


1. Apa itu Wireshark dan tcpdump?

Wireshark

Meskipun Wireshark bekerja dengan baik dalam menangkap setiap paket jaringan yang melewatinya, dalam beberapa kasus Anda perlu menganalisis sesi dari server jarak jauh. Kecuali Anda memiliki peralatan jaringan khusus, ini bisa jadi sulit. Terkadang lebih mudah untuk menangkap lalu lintas di server jarak jauh, lalu menganalisisnya di desktop Anda.

Menganalisis Sesi Jarak Jauh

Meskipun Wireshark bekerja dengan baik dalam menangkap setiap paket yang melewatinya, dalam beberapa kasus Anda perlu menganalisis sesi dari server jarak jauh. Kecuali Anda memiliki peralatan jaringan khusus, ini bisa jadi sulit. Terkadang lebih mudah untuk menangkap lalu lintas di server jarak jauh, lalu menganalisisnya di desktop Anda.

Memahami tcpdump

tcpdump adalah penganalisis paket baris perintah. Tidak semudah Wireshark untuk digunakan, tetapi sama mampu menangkap lalu lintas. Karena perintah tcpdump berjalan dalam mode terminal, maka memungkinkan untuk meluncurkannya melalui sesi SSH. Dengan opsi baris perintah yang tepat, Anda dapat mengekspor sesi tcpdump yang kompatibel dengan Wireshark.


2. Menangkap paket dengan tcpdump dari jarak jauh melalui SSH

Untuk menangkap lalu lintas dengan perintah tcpdump, Anda harus terhubung ke komputer jarak jauh melalui SSH. Anda juga memerlukan akses root, jika tidak, tcpdump tidak akan dapat menangkap lalu lintas dan Anda akan melihat kesalahan yang menyatakan Anda tidak memiliki izin untuk menangkap pada perangkat tersebut.

Setelah Anda terhubung, jalankan perintah berikut untuk mulai menangkap lalu lintas dengan tcpdump.


[root@ns1 ~]# sudo tcpdump -s 0 -i eth0 -w tcpdump.pcap
Opsi baris perintah yang saya gunakan untuk merekam sesi ini akan dijelaskan di bawah ini. Singkatnya, perintah di atas akan merekam semua lalu lintas pada perangkat Ethernet dan menuliskannya ke dalam berkas bernama tcpdump.pcap dalam format yang kompatibel dengan Wireshark.

Setelah Anda selesai merekam lalu lintas, akhiri sesi tcpdump dengan Ctrl+C. Anda akan melihat tampilan singkat yang menampilkan beberapa informasi tentang sesi perekaman.

Sebelum Anda dapat menyalin lalu lintas dari komputer jarak jauh ke komputer lokal untuk dianalisis dengan Wireshark, Anda harus mengubah izinnya. Secara default, sesi tcpdump yang diambil oleh pengguna root tidak dapat disalin. Gunakan perintah ini:

Agar file tcpdump.pcap dapat di copy ke komputer pribadi
[root@ns1 ~]# sudo chmod 644 tcpdump.pcap
Itu akan memungkinkan Anda menyalin berkas ke komputer lokal menggunakan scp, seperti yang diuraikan pada langkah berikutnya.


3. Menyalin sesi tcpdump untuk analisis

Setelah Anda menyelesaikan sesi penangkapan dengan perintah tcpdump, Anda akan menghadapi masalah. Bagaimana cara menyalinnya ke mesin yang menjalankan Wireshark untuk analisis? Ada banyak cara, tetapi menurut saya yang termudah adalah dengan scp. Karena Anda telah menangkap paket jaringan pada mesin tanpa kepala menggunakan SSH, semua yang Anda perlukan untuk menggunakan scp sudah terpasang dan berjalan.

Bagi pengguna Windows harus mengunduh pscp, lalu menyalin berkas ke C:\Windows\System32. Sebagian besar pengguna Mac dan Linux sudah memiliki semua yang mereka butuhkan.


Baik di windows, Linux, BSD ataupun MacOS, proses mengcopy file "tcpdump.pcap" sangat mudah. Yang paling penting disini adalah perintah "chmod" yang kita jalankan di atas.


4. Menganalisis sesi tcpdump dengan Wireshark

Analisis bekerja sama seperti pada penangkapan Wireshark tradisional, satu-satunya hal yang perlu Anda ketahui adalah cara mengimpor file.

Jalankan Wireshark, lalu impor sesi yang direkam tcpdump menggunakan File ---> Open dan telusuri file Anda. Anda juga dapat mengklik dua kali (double-click) file yang direkam tcpdump untuk membukanya di Wireshark, asalkan memiliki ekstensi file *.pcap. Jika Anda menggunakan opsi -w saat menjalankan perintah tcpdump, file akan dimuat secara normal dan menampilkan lalu lintas.

Dalam kasus saya, saya menjalankan server Apache di host jarak jauh, dan saya tertarik untuk melihat data HTTP. Saya menyetel filter tampilan Wireshark yang sesuai, dan saya dapat menelusuri bingkai yang diambil seperti biasa.

Sebagai uji coba, saya telah menyematkan elemen dalam kode HTML yang tidak ditampilkan di halaman. Saya seharusnya dapat menemukannya di aliran data dan melihatnya dengan Wireshark.


Seperti yang Anda lihat, Wireshark mampu menganalisis setiap frame dan menampilkan data dengan baik. Elemen yang saya sembunyikan muncul dalam contoh di atas. Proses penangkapan sedikit lebih rumit saat Anda menggunakan perintah tcpdump, tetapi semua yang ada di Wireshark berfungsi seperti biasa.


5. Menggunakan opsi baris perintah untuk tcpdump

Sering kali, saat Anda meluncurkan tcpdump, Anda akan menginginkan kontrol atas cara Anda menangkap paket dan tempat Anda menyimpan sesi. Anda dapat mengontrol hal-hal seperti itu menggunakan opsi baris perintah. Berikut adalah beberapa opsi baris perintah yang paling berguna untuk tcpdump.

tcpdump -w
Opsi baris perintah -w mengaktifkan keluaran penangkapan yang kompatibel dengan Wireshark. Opsi ini memerlukan satu variabel, yaitu nama file keluaran tcpdump. Log penangkapan yang disimpan menggunakan opsi ini tidak akan dapat dibaca manusia di luar Wireshark, karena disimpan dalam biner, bukan ASCII.

tcpdump -C
Opsi baris perintah -C memungkinkan Anda untuk menetapkan ukuran file maksimum dalam byte. Opsi ini hanya berfungsi bersama -w. Misalnya, perintah tcpdump -C 1048576 -w capture.pcap menetapkan ukuran tangkapan maksimum 1 MB (1.048.576 byte) yang dikeluarkan ke file capture.pcap.

Jika sesi menghasilkan jumlah output yang lebih besar, maka akan dibuat file baru untuk menyimpannya. Jadi, tangkapan 3 MB akan menghasilkan capture.pcap, capture1.pcap, dan capture2.pcap masing-masing dengan ukuran file 1 MB.

tcpdump -s
Opsi baris perintah -s menetapkan panjang paket maksimum untuk setiap byte, dan memotong paket saat maksimum tercapai. Perintah tcpdump -s 0 menetapkan panjang tak terbatas untuk memastikan bahwa seluruh konten paket ditangkap.

tcpdump -i
Opsi baris perintah -i menetapkan perangkat jaringan mana yang ingin Anda pantau oleh tcpdump. Jika tidak ada antarmuka yang ditetapkan, maka antarmuka bernomor terendah yang sedang berjalan akan menjadi default.

tcpdump -list-interfaces
Opsi baris perintah tcpdump -list-interfaces akan mencetak daftar semua antarmuka yang tersedia untuk dilampirkan oleh tcpdump. Perhatikan bahwa ini tidak memulai sesi penangkapan, tetapi akan memberi Anda daftar antarmuka yang akan digunakan dengan opsi -i di atas.

tcpdump -c
Opsi baris perintah -c memberi tahu tcpdump untuk keluar dari sesi setelah menangkap sejumlah paket tertentu.

tcpdump -n
Opsi baris perintah -n memerintahkan perintah tcpdump untuk tidak mengubah alamat IP ke nama host. Ini berguna saat memecahkan masalah situs web di balik server penyeimbang beban, dan dalam beberapa kasus lain saat menggunakan nama host akan memberikan hasil yang ambigu.

tcpdump -v | -vv | -vvv
Tiga opsi baris perintah, -v, -vv, dan -vvv memungkinkan Anda untuk meningkatkan verbositas sesi penangkapan Anda. -v akan menyimpan nilai TTL untuk setiap paket, beserta informasi ToS. -vv akan menampilkan TTL dan ToS beserta informasi tambahan dalam paket NFS. Dan -vvv akan mencatat semua yang dilakukan oleh dua opsi pertama, beserta informasi tambahan dari sesi telnet.

tcpdump -F
Opsi baris perintah -F memerintahkan perintah tcpdump untuk menggunakan filter tangkapan dari berkas yang ditentukan. Informasi selengkapnya tentang penulisan berkas tangkapan dapat ditemukan di bagian berikutnya.


6. Menggunakan filter tangkapan untuk tcpdump

Filter tangkapan memungkinkan Anda mempersempit data yang disimpan tcpdump dalam suatu sesi. Filter ini merupakan cara yang berguna untuk mempermudah analisis data dan menjaga agar berkas tangkapan tetap kecil. Berikut ini adalah beberapa filter tangkapan yang paling berguna untuk tcpdump.

host
Filter ini menetapkan bahwa hanya lalu lintas ke dan dari host target yang harus ditangkap. Filter ini menggunakan alamat IP atau nama host sebagai argumen.

net
Filter net akan memberi tahu komputer Anda untuk hanya menangkap lalu lintas pada subnet tertentu, dan mengambil alamat IP sebagai argumen. Misalnya, 192.168.1.0/24 menetapkan bahwa lalu lintas ke atau dari semua host pada subnet akan ditangkap. Perhatikan bahwa subnet mask dalam notasi garis miring diperlukan.

dst host
Mirip dengan host, filter tangkapan ini menetapkan bahwa hanya lalu lintas dengan tujuan host yang diberikan yang akan ditangkap. Filter ini juga dapat digunakan dengan net.

src host
Seperti di atas, tetapi filter ini hanya menangkap lalu lintas yang berasal dari host atau alamat IP yang ditentukan. Filter ini juga dapat digunakan dengan net.

port
Filter ini memberi tahu tcpdump untuk menangkap lalu lintas ke dan dari nomor port yang diberikan. Misalnya, port 443 akan menangkap lalu lintas TLS.

portrange
Mirip dengan filter port, portrange menetapkan rentang port tempat lalu lintas ditangkap. Untuk menggunakan filter portrange, tentukan port awal dan port akhir yang dipisahkan oleh tanda hubung. Misalnya, portrange 21-23.

gateway
Filter gateway menetapkan bahwa komputer Anda hanya boleh menangkap lalu lintas yang menggunakan nama host tertentu sebagai gateway. Nama host harus ditemukan di /etc/hosts.

broadcast
Filter broadcast menetapkan bahwa tcpdump hanya boleh menangkap lalu lintas yang disiarkan ke semua host di subnet.

IP multicast
Filter ini memberi tahu tcpdump untuk hanya menangkap lalu lintas multicast pada subnet mesin host.

operator and/or/not
Filter dapat dirangkai bersama menggunakan operator and, or, or not. Misalnya, untuk menangkap semua lalu lintas web pada host tertentu, Anda dapat menggunakan port filter 80 atau port 443. Atau Anda dapat menangkap semua lalu lintas pada subnet tertentu kecuali paket siaran dengan menggunakan filter net 192.168.1.0/24 dan bukan siaran.

Sangat umum untuk menggunakan operator filter dalam praktik karena mereka menyediakan lapisan granularitas tambahan untuk tangkapan Anda. Anda dapat menangkap lalu lintas yang Anda butuhkan, tanpa banyak obrolan jaringan tambahan.


7. Ekspresi kompleks dengan beberapa operator

Ekspresi yang lebih kompleks dapat dibuat dengan menyertakan beberapa operasi dalam satu tanda apostrof dan tanda kurung. Misalnya, Anda dapat memantau semua lalu lintas email, termasuk SMTP, IMAP, IMAP melalui TLS, POP3, dan POP3 melalui TLS, di beberapa host dan subnet, menggunakan perintah seperti ini.


tcpdump '(host 10.0.0.1 and net 192.168.1.0/24) and ((port 25 or port 143 or port 443 or port 993 or port 995))'
Ekspresi kompleks dengan beberapa operator bisa sangat berguna, tetapi biasanya disimpan ke file filter untuk digunakan kembali karena satu kesalahan ketik akan menyebabkan penangkapan gagal. Sering kali, ekspresi tersebut perlu dipersiapkan terlebih dahulu dan di-debug.


8. Menggunakan file filter untuk tcpdump

Filter di atas dapat dijalankan pada baris perintah saat tcpdump diluncurkan, tetapi sering kali berguna untuk membuat file filter. File filter memudahkan untuk mereproduksi pengaturan filter di antara tangkapan karena dapat digunakan kembali. Berikut adalah langkah-langkah untuk menulis dan menggunakan file filter.

Menulis file filter
File filter menggunakan notasi yang sama persis dengan baris perintah. File tersebut tidak memerlukan karakter khusus atau angka ajaib di bagian atas file.

Misalnya, berikut adalah berkas filter yang saya tulis yang akan menangkap semua lalu lintas web yang keluar dari server Apache saya ke host tertentu. Dalam kasus ini, Chromebook tempat saya menulis.

Selama berkas tersebut dapat dibaca oleh pengguna yang menjalankan perintah tcpdump, program akan mencoba mengurai semua yang ada dalam berkas filter dan menggunakannya sebagai filter yang valid. Saat berkas filter digunakan bersama dengan pemfilteran baris perintah, semua pemfilteran baris perintah akan diabaikan.


[root@ns1 ~]# sudo tcpdump -F http-filter
Instruksikan tcpdump untuk menggunakan berkas filter yang diberikan menggunakan opsi baris perintah -F, diikuti dengan jalur ke berkas tersebut. Dalam contoh di atas, berkas filter terletak di direktori yang sama tempat saya menjalankan tcpdump.

Setelah Anda melihat filter Anda berfungsi sebagaimana mestinya, rekam sesi untuk dianalisis dengan Wireshark menggunakan perintah di bawah ini.


[root@ns1 ~]# sudo tcpdump -i eth0 -s 0 -w wireshark.pcap -F filter-file
Sebagai penutup, saya menghargai waktu dan perhatian Anda dalam membaca postingan ini. Penting untuk diingat bahwa konten ini ditujukan semata-mata untuk tujuan edukasi atau pendidikan. Saya ingin menekankan bahwa merekam lalu lintas jaringan individu tanpa izin tertulis mereka tidak hanya tidak etis tetapi juga ilegal. Menghormati privasi dan mematuhi pedoman hukum sangat penting dalam penggunaan alat pemantauan jaringan apa pun.