risposta-alla-domanda-sullo-sviluppo-web-bd.com

Visualizzazione di tutte le regole di iptables

C'è un modo per visualizzare iptables regole in modo un po 'più dettagliato?

Di recente ho aggiunto masquerade a una gamma di IP:

iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE
service iptables save
service iptables restart

Che ha fatto quello che voglio, ma quando uso:

iptables -L

Ottengo lo stesso output che ottengo normalmente:

Chain INPUT (policy ACCEPT)
target    prot opt source        destination

Chain FORWARD (policy ACCEPT)
target    prot opt source        destination

Chain OUTPUT (policy ACCEPT)
target    prot opt source        destination

Come posso vedere le regole, comprese quelle che aggiungo? (il sistema è CentOS 6)

154
TheLovelySausage

Quando si utilizza -L, --list opzione per elencare le attuali regole del firewall, è inoltre necessario specificare la tabella Netfilter appropriata (una delle filter, nat, mangle, raw o security). Quindi, se hai aggiunto una regola per la tabella nat, dovresti specificare esplicitamente questa tabella usando -t, --table opzione:

iptables --table nat --list

O usando la forma abbreviata delle opzioni:

iptables -t nat -L

Se non specifichi una tabella specifica, la tabella filter viene utilizzata come predefinita.


Per risultati più rapidi, può essere utile includere anche -n, --numeric opzione per stampare indirizzi IP numerici anziché nomi host, evitando così la necessità di attendere ricerche DNS inverse.

Puoi ottenere ancora più informazioni includendo il -v, --verbose opzione.

124

iptables controlla cinque diverse tabelle: filter, nat, mangle, raw e security. In una determinata chiamata, iptables visualizza o modifica solo una di queste tabelle, specificata dall'argomento all'opzione -t (l'impostazione predefinita è filter). Per vedere lo stato completo del firewall, è necessario chiamare iptables su ciascuna delle tabelle in successione.

Inoltre, per ottenere una rappresentazione accurata delle regole, è necessario passare l'opzione -v. Altrimenti alcuni criteri importanti vengono omessi nell'output, come l'interfaccia nelle regole del filtro (ad esempio una regola che dice "accetta tutto" e una regola che dice "accetta tutto sull'interfaccia di loopback" può essere distinta solo con -v).

Pertanto, per ottenere una presentazione completa delle regole di netfilter, è necessario

iptables -vL -t filter
iptables -vL -t nat
iptables -vL -t mangle
iptables -vL -t raw
iptables -vL -t security

In alternativa, puoi chiamare il iptables-save programma, che visualizza tutte le regole in tutte le tabelle in un formato che può essere analizzato da iptables-restore. Questo formato è anche ragionevolmente leggibile dagli umani (è quasi una serie di chiamate al comando iptables per costruire la tabella).

iptables -S fa il trucco per me. Sembra elencare tutte le regole attive, anche quando il servizio è disattivato.

Dalla pagina man:

-S, --list-rules [catena] Stampa tutte le regole nella catena selezionata. Se non viene selezionata alcuna catena, tutte le catene vengono stampate come iptables-save. Come ogni altro comando iptables, si applica alla tabella specificata (il filtro è l'impostazione predefinita).

57
Cameron

Quello che faccio è eseguire iptables-save > iptables_bckp, questo eseguirà il backup di tutti i livelli, quindi modifica il file e ripristina gli iptables iptables-restore < iptables_bckp

# iptables-save > iptables_bckp
# vim iptables_bckp
# iptables-restore < iptables_bckp

Puoi fare un doppio backup in modo da modificarne uno senza perdere i tuoi iptables precedenti.

Questa è una pratica personale, non sto dicendo che sia il modo migliore, ma per me funziona alla grande.

Prova

18
tachomi

Il comando iptables richiede inoltre di specificare la tabella, altrimenti per impostazione predefinita filtra la tabella. Allora prova:

iptables -t nat -L
4
user425

Puoi usare:

# lsmod | grep ip_tables
ip_tables              13193  4 iptable_raw,iptable_mangle,iptable_nat,iptable_filter

Per trovare tutte le tabelle e mostrare regole specifiche nella tabella.

3
Tur Le
iptables -vnxL
iptables -vnxL -tnat

probabilmente anche, sebbene questi siano usati molto raramente:

iptables -vnxL -traw
iptables -vnxL -tmangle
iptables -vnxL -tsecuriy
1
sjas

Se ti sarà davvero di aiuto, potresti scrivere uno script bash e inserirlo in una cartella che fa riferimento al tuo percorso o fare riferimento tramite un alias nel file ~/.bashrc.

AllRules.sh

#!/bin/bash

 echo "Filter table:"
 iptables -t filter -vL

 echo "Nat table:"
 iptables -t nat -vL

 echo "Mangle table:"
 iptables -t mangle -vL

 echo "Raw table:"
 iptables -t raw -vL

 echo "Security table:"
 iptables -t security -vL

 echo 
 echo "All rules in all tables printed"

Ricorda di dare le autorizzazioni di esecuzione al tuo nuovo script bash con chmod

Se l'autorizzazione è un problema, potresti dover aggiungere Sudo davanti a tutti i comandi iptables.

1
ob1