Vai al contenuto

Iptables cheatsheet

Pubblicato:

Cos’è iptables

Iptables è un software che opera nello spazio utente del sistema operativo Linux. Consente a un amministratore di sistema di configurare le regole applicate nel filtraggio dei pacchetti IP ricevuti dalla macchina. Quando una connessione non va a buon fine, è spesso a causa di una regola del firewall.

Struttura di iptables

Iptables è composto da una serie di regole organizzate in tabelle e catene.

Le tabelle sono le seguenti:

Ogni tabella contiene una serie di catene predefinite:

Loading diagram...

Tutte le catene contengono un numero arbitrario di regole che vengono valutate in sequenza, fino a quando le condizioni di una regole vengono soddisfatte. Questa determinerà l’azione da intraprendere, che può essere ACCEPT, DROP, REJECT, LOG, RETURN, ecc. Una default policy stabilisce cosa fare con i pacchetti per cui non viene trovata una corrispondenza.

La sequenza di valutazione delle regole può essere sintetizzata con le seguenti immagini:

Loading diagram...
Loading diagram...

Comandi base

Elenco delle regole

# Elenco delle regole
iptables -L [catena] [opzioni]
# Esempio
# Elenco di tutte le regole INPUT
iptables -L INPUT
# Elenco di tutte le regole con numeri di riga
iptables -L -n --line-numbers
# Elenco di tutte le regole con output dettagliato
iptables -L -v

Aggiungere una regola

# Aggiunge una regola alla fine di una catena
iptables -A <catena> <regola>
# Esempio
# Accetta tutto il traffico in ingresso sull'interfaccia di loopback
iptables -A INPUT -i lo -j ACCEPT
# Accetta tutto il traffico tcp in ingresso sulla porta 80
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
# Inserisce una regola in una posizione specifica in una catena
iptables -I <catena> [indice] <regola>
# Esempio
# Accetta il traffico dall'interfaccia eth0. Inserito in cima alla catena (l'indice è 1 di default)
iptables -I INPUT -i eth0 -j ACCEPT
# Accetta il traffico in ingresso da un indirizzo IP specifico sulla porta 22
iptables -I INPUT 2 -s 192.168.1.1 -p tcp --dport 22 -j ACCEPT
# Accetta le connessioni stabilite in precedenza
iptables -I INPUT 3 -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT

Eliminare una regola

# Elimina una regola da una catena
iptables -D <catena> [indice | regola]
# Esempio
# Elimina la regola all'indice 2 dalla catena INPUT
iptables -D INPUT 2
# Elimina tutte le regole che corrispondono a un determinato criterio
iptables -D INPUT -m conntrack --ctstate INVALID -j DROP
# Elimina tutte le regole da una catena
iptables -F <chain>
# Esempio
# Elimina tutte le regole dalla catena INPUT
iptables -F INPUT

Salvare e ripristinare le regole

# Salva le regole in un file
iptables-save > /etc/iptables/rules.v4
# Ripristina le regole da un file
iptables-restore < /etc/iptables/rules.v4