Apakah ada cara untuk menemukan aturan iptables mana yang bertanggung jawab untuk menjatuhkan paket?

31

Saya memiliki sistem yang dilengkapi dengan firewall sudah ada. Firewall terdiri dari lebih dari 1000 aturan iptables. Salah satu aturan ini adalah menjatuhkan paket yang tidak ingin saya jatuhkan. (Saya tahu ini karena saya memang iptables-savediikuti oleh iptables -Fdan aplikasi mulai bekerja.) Ada terlalu banyak aturan untuk memilah secara manual. Bisakah saya melakukan sesuatu untuk menunjukkan kepada saya aturan mana yang menjatuhkan paket?

Shawn J. Goff
sumber
1
fedorahosted.org/dropwatch mungkin juga membantu di masa depan.
Shawn J. Goff
Untuk melihat pembaruan penghitung di waktu nyata, gunakan <br/> <code> tonton iptables -L -v -n </code>
Chris Gibb

Jawaban:

19

Anda bisa menambahkan aturan TRACE di awal rantai untuk mencatat setiap aturan yang dilalui paket.

Saya akan mempertimbangkan menggunakan iptables -L -v -n | lessuntuk membiarkan Anda mencari aturan. Saya akan melihat port; alamat; dan aturan antarmuka yang berlaku. Karena Anda memiliki begitu banyak aturan, Anda kemungkinan menjalankan firewall yang sebagian besar tertutup, dan tidak memiliki aturan izin untuk lalu lintas.

Bagaimana firewall dibangun? Mungkin lebih mudah untuk melihat aturan pembuat daripada aturan yang dibuat.

BillThor
sumber
Saya menemukan setelah mengajukan pertanyaan ini bahwa aturannya dari APF, dan saya bisa memperbaikinya. Saya suka target TRACE. Itu akan sangat efektif.
Shawn J. Goff
2
Contoh menggunakan target TRACE ada di sini: serverfault.com/questions/122157/debugger-for-iptables/… .
slm
14

Jalankan iptables -L -v -nuntuk melihat penghitung paket dan byte untuk setiap tabel dan untuk setiap aturan.

ninjalj
sumber
Ini bagus, saya berharap sesuatu yang lebih baik karena ada 1000 aturan dan ribuan paket yang dijatuhkan.
Shawn J. Goff
Gunakan sortuntuk mengurutkan aturan berdasarkan penghitung paket.
ninjalj
13

Karena iptables -L -v -nmemiliki penghitung, Anda dapat melakukan hal berikut.

iptables -L -v -n > Sample1
#Cause the packet that you suspect is being dropped by iptables
iptables -L -v -n > Sample2
diff Sample1 Sample2

Dengan cara ini Anda hanya akan melihat aturan yang bertambah.

Kyle Brandt
sumber
9

Di perusahaan saya yang kami gunakan watch -n 2 -d iptables -nvL, itu menunjukkan perubahan antara permintaan

Marcelo Salazar
sumber
5
watch -n1 -d "iptables -vnxL | grep -v -e pkts -e Chain | sort -nk1 | tac | column -t"

Perlu diingat, ini hanya akan menampilkan hal-hal untuk filter tabel .

Tambahkan -t nat(atau tabel mana pun yang Anda gunakan selain filter) ke panggilan iptables Anda, untuk memeriksa aturan di sana.

sja
sumber