Tcpdump pada banyak antarmuka

17

Saya perlu menangkap lalu lintas di server CentOS 5 yang bertindak sebagai proxy web dengan 2 antarmuka lemah dan 1 LAN. Untuk memecahkan masalah proxy yang aneh, saya ingin menangkap percakapan penuh. Karena koneksi eksternal seimbang antara dua antarmuka WAN, saya bertanya-tanya apakah mungkin untuk menangkap secara bersamaan pada semua antarmuka.

Saya telah menggunakan tcpdump sebelumnya tetapi hanya mengakui satu antarmuka sekaligus. Saya dapat meluncurkan 3 proses paralel untuk menangkap pada semua antarmuka tetapi kemudian saya berakhir dengan 3 file tangkapan yang berbeda.

Apa cara yang benar untuk melakukan ini?

Nahidul islam
sumber
AdamRushad benar. Anda juga bisa menggunakannya wireshark.
Ryan Babchishin

Jawaban:

25

Menurut halaman manual tcpdump:

Pada sistem Linux dengan kernel 2.2 atau yang lebih baru, argumen antarmuka '' any '' dapat digunakan untuk menangkap paket dari semua antarmuka. Perhatikan bahwa menangkap pada perangkat '' apa saja '' tidak akan dilakukan dalam mode promiscuous.

Jadi, Anda harus dapat menjalankan: tcpdump -i anyuntuk mengambil data pada semua antarmuka secara bersamaan menjadi satu file tangkap.

Adam Rushad
sumber
2
itu tidak berfungsi jika saya ingin menangkap beberapa, tetapi tidak semua, dari antarmuka
Thayne
9

Cara saya mendekati ini adalah dengan membuang di setiap antarmuka ke file terpisah dan kemudian menggabungkannya. Antarmuka apa pun juga mencakup lalu lintas lo yang dapat mencemari penangkapan.

Ini juga memungkinkan untuk analisis aliran paket per antarmuka tanpa penyaringan yang kompleks.

Saya akan menangkap di 3 terminal atau dengan latar belakang perintah dengan &

Bendera -nn mematikan resolusi dns untuk kecepatan, -s 0 menyimpan paket lengkap dan -w menulis ke file.

tcpdump -i wan0 -nn -s 0 -w wan0.dump
tcpdump -i wan1 -nn -s 0 -w wan1.dump
tcpdump -i lan0 -nn -s 0 -w lan0.dump

Saya kemudian akan menggabungkan file dengan perintah mergecap dari wireshark:

mergecap -w merged.dump wan0.dump wan1.dump lan0.dump
Tim Fletcher
sumber
2

Untuk menangkap tcpdump di semua antarmuka gunakan

tcpdump -i any
Vijay SB
sumber
2
Ini sudah diberikan sebagai jawaban 2 tahun lalu dalam jawaban Adam Rushad.
Patrick Mevzek