C'è un modo per trovare quale regola iptables è stata responsabile del rilascio di un pacchetto?


31

Ho un sistema fornito con un firewall già in atto. Il firewall è costituito da oltre 1000 regole di iptables. Una di queste regole è l'eliminazione dei pacchetti che non desidero rilasciare. (Lo so perché l'ho iptables-saveseguito iptables -Fe l'applicazione ha iniziato a funzionare.) Ci sono troppe regole per ordinare manualmente. Posso fare qualcosa per mostrarmi quale regola sta facendo cadere i pacchetti?


1
fedorahosted.org/dropwatch potrebbe anche essere utile in futuro.
Shawn J. Goff,

Per vedere l'aggiornamento dei contatori in tempo reale usa <br/> <code> guarda iptables -L -v -n </code>
Chris Gibb

Risposte:


19

È possibile aggiungere una regola TRACE all'inizio della catena per registrare tutte le regole attraversate dal pacchetto.

Vorrei prendere in considerazione l'utilizzo iptables -L -v -n | lessper consentire di cercare le regole. Vorrei guardare porto; indirizzo; e regole di interfaccia applicabili. Dato che hai così tante regole, probabilmente stai eseguendo un firewall per lo più chiuso e manca una regola di autorizzazione per il traffico.

Come viene costruito il firewall? Potrebbe essere più semplice guardare le regole del builder che le regole costruite.


Ho capito dopo aver fatto questa domanda che le regole sono di APF e sono stato in grado di risolverlo. Adoro l'obiettivo di TRACE, però. Sarebbe stato molto efficace.
Shawn J. Goff,

2
Un esempio di utilizzo del target TRACE è qui: serverfault.com/questions/122157/debugger-for-iptables/… .
slm

14

Esegui iptables -L -v -nper vedere i contatori di pacchetti e byte per ogni tabella e per ogni regola.


Questo va bene, spero in qualcosa di meglio dato che ci sono 1000 regole e migliaia di pacchetti scartati.
Shawn J. Goff,

Utilizzare sortper ordinare le regole in base al contatore dei pacchetti.
ninjalj,

13

Poiché iptables -L -v -nha contatori è possibile effettuare le seguenti operazioni.

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

In questo modo vedrai solo le regole incrementate.


9

Nella mia azienda usiamo watch -n 2 -d iptables -nvL, mostra i cambiamenti tra le richieste


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

Tieni presente che questo mostrerà solo elementi per il filtro tabella .

Aggiungi -t nat(o qualunque tabella usi oltre al filtro) alla tua chiamata iptables, per controllare le regole lì.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.