Salta el contingut
 

Iptables

Autor: Joan Puigcerver Ibáñez

Correu electrònic: 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 D'EIXIDA] -p icmp -j ACCEPT
    
    # Habilitem el recibiment de respostes del protocol ICMP
    iptables -A INPUT -i [INTERFICIE D'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 D'EIXIDA] -p icmp -m icmp --icmp-type echo-reply -j ACCEPT
    
    # Habilitem el recibiment de respostes del protocol ICMP
    iptables -A INPUT -i [INTERFICIE D'ENTRADA] -p icmp -m icmp --icmp-type echo-reply -j ACCEPT
    

Bibliografia

Comentaris