Salta el contingut
 

Iptables

Joan Puigcerver Ibáñez

j.puigcerveribanez@edu.gva.es

Llicència: CC BY-NC-SA 4.0

(Reconeixement - NoComercial - CompartirIgual) 🅭

Iptables

La taula filter en iptables és una de les tres taules de filtratge de paquets disponibles en el sistema, juntament amb nat i mangle.

La taula filter és la taula per defecte utilitzada per a la majoria de les regles de filtratge de paquets i permet establir regles per a controlar el tràfic d'entrada i d'eixida d'un sistema utilitzant el firewall iptables.

Aquesta taula té les següents cadenes o chains disponibles:

  • INPUT: Establir regles en els paquets d'entrada al dispositiu local.
  • OUTPUT: Establir regles en els paquets d'eixida del dispositiu local.
  • FORWARD: Establir regles en els paquets d'entrada al dispositiu, que seran reenviades a altres dispositius.

En totes les comandes, es pots establir la taula sobre la que s'aplicarà la regla amb l'opció -t. Si no s'especifica cap taula, s'utilitza per defecte la taula filter.

Política per defecte

Quan els paquets arriben al tallafocs, s'avaluaran totes les regles disponibles seqüencialment. Si cap regla és avaluada correctament per a un paquet, s'aplicarà la política per defecte (target):

  • DROP: No deixa passar el paquet.
  • ACCEPT: Deixa passar el paquet.

Es pot definir una política diferent per cada chain (INPUT, OUTPUT i FORWARD).

iptables -P chain target
iptables -P INPUT DROP

Llistar regles

iptables -L -nv --line-numbers

Comprovar ports oberts

ss -ltuna

Afegir regles

Afegir al final (APPEND)

S'utilitza l'opció -A:

iptables -A [CHAIN] [-p PROTOCOL] [-s IP ORIGEN] [-d IP DESTI] [-i INTERFICIE_ENTRADA] [-o INTERFICIE_EXIDA] [-j ACCEPT|DROP]
# Accepta tots els paquets d'eixida
iptables -A OUTPUT -j ACCEPT

Afegir al principi (INSERT)

S'utilitza l'opció -I:

iptables -I [CHAIN] [-p PROTOCOL] [-s IP ORIGEN] [-d IP DESTI] [-i INTERFICIE_ENTRADA] [-o INTERFICIE_EXIDA] [-j ACCEPT|DROP]

Eliminar regles

Eliminar una regla en concret

S'utilitza l'opció -D:

iptables -D [CHAIN] [NOMBRE REGLA]
# Elimina la regla 1 en OUTPUT
iptables -D OUTPUT 1

Eliminar totes les regles

S'utilitza l'opció -F:

# Borrem totes les regles de la taula FILTER
iptables -t filter F
# Borrem totes les regles de la taula NAT
iptables -t nat -F

Reiniciar el comptador de regles

Per reiniciar els comptadors s'utilitza l'opció -Z.

# Borrem totes les regles de la taula FILTER (per defecte)
iptables -Z
# Borrem totes les regles de la taula NAT
iptables -t nat -Z

Exemple: PING

  • Establim la política per defecte d'entrada i eixida perquè no accepte cap paquet:

    iptables -P INPUT DROP
    iptables -P OUTPUT DROP
    
  • L'ordinador no es pot comunicar amb ningú. Si realitzem un ping, no funcionarà:

    ping -c4 8.8.8.8
    

    Warning

    En la xarxa de l'institut, el protocol ICMP no funciona cap a IPs externes.

  • Habilitem les peticions i respostes de ping:

    # Comprovem les interfícies
    ip a
    
    # Habilitem l'enviament de peticions del protocol ICMP
    iptables -A OUTPUT -o [INTERFICIE_EIXIDA] -p icmp -j ACCEPT
    
    # Habilitem el recibiment de respostes del protocol ICMP
    iptables -A INPUT -i [INTERFICIE_ENTRADA] -p icmp -j ACCEPT
    
  • Si es necessita sols acceptar un tipus de paquets d'un protocol, es pot utilitzar l'opció -m:

    # Habilitem l'enviament de peticions del protocol ICMP
    iptables -A OUTPUT -o [INTERFICIE_EIXIDA] -p icmp -m icmp --icmp-type echo-reply -j ACCEPT
    
    # Habilitem el recibiment de respostes del protocol ICMP
    iptables -A INPUT -i [INTERFICIE_ENTRADA] -p icmp -m icmp --icmp-type echo-reply -j ACCEPT
    

Persistència de les regles

Les regles de iptables no es mantenen després de reiniciar el sistema. El paquet iptables-persistent permet guardar les regles de forma persistent.

apt install iptables-persistent

Guardar regles

netfilter-persistent save

Restaurar regles

netfilter-persistent reload

Bibliografia

📌 Aquest document pot quedar desactualitzat després d’imprimir-lo. Pots consultar la versió més recent a la pàgina web.
🌿 Abans d’imprimir aquest document, considera si és realment necessari. Redueix el consum de paper i ajuda a protegir el nostre entorn.