Czy istnieje sposób, aby sprawdzić, która reguła iptables była odpowiedzialna za upuszczenie pakietu?

31

Mam system, który jest już wyposażony w zaporę ogniową. Firewall składa się z ponad 1000 reguł iptables. Jedną z tych zasad jest upuszczanie pakietów, których nie chcę upuszczać. (Wiem o tym, ponieważ zrobiłem to, iptables-savea iptables -Faplikacja zaczęła działać.) Istnieje zbyt wiele reguł, aby ręcznie sortować. Czy mogę coś zrobić, aby pokazać mi, która reguła odrzuca pakiety?

Shawn J. Goff
źródło
1
fedorahosted.org/dropwatch może być również pomocny w przyszłości.
Shawn J. Goff,
Aby zobaczyć aktualizację liczników w czasie rzeczywistym, użyj <br/> <code> obejrzyj iptables -L -v -n </code>
Chris Gibb

Odpowiedzi:

19

Możesz dodać regułę TRACE na początku łańcucha, aby rejestrować każdą regułę, którą przechodzi pakiet.

Zastanowiłbym się, by iptables -L -v -n | lesspozwolić ci przeszukać reguły. Szukałbym portu; adres; i obowiązujące reguły interfejsu. Biorąc pod uwagę, że masz tak wiele reguł, prawdopodobnie używasz głównie zamkniętej zapory i brakuje Ci reguły zezwolenia na ruch.

Jak zbudowana jest zapora ogniowa? Łatwiej przyjrzeć się regułom konstruktora niż regułom budowanym.

BillThor
źródło
Po zadaniu tego pytania zorientowałem się, że zasady pochodzą z APF i udało mi się to naprawić. Jednak uwielbiam cel TRACE. To byłoby bardzo skuteczne.
Shawn J. Goff
2
Przykład użycia celu TRACE znajduje się tutaj: serverfault.com/questions/122157/debugger-for-iptables/… .
slm
14

Uruchom, iptables -L -v -naby zobaczyć liczniki pakietów i bajtów dla każdej tabeli i każdej reguły.

ninjalj
źródło
To dobrze, mam nadzieję na coś lepszego, ponieważ istnieje 1000 reguł i 1000 odrzuconych pakietów.
Shawn J. Goff
Służy sortdo sortowania reguł według licznika pakietów.
ninjalj
13

Ponieważ iptables -L -v -nma liczniki, możesz wykonać następujące czynności.

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

W ten sposób zobaczysz tylko reguły, które wzrosły.

Kyle Brandt
źródło
9

W mojej firmie, której używamy watch -n 2 -d iptables -nvL, pokazuje zmiany między żądaniami

Marcelo Salazar
źródło
5
watch -n1 -d "iptables -vnxL | grep -v -e pkts -e Chain | sort -nk1 | tac | column -t"

Pamiętaj, że pokaże to tylko elementy dla filtru tabeli .

Dodaj -t nat(lub dowolną tabelę, której używasz oprócz filtru) do swojego wywołania iptables, aby sprawdzić tam reguły.

sjas
źródło