Comando iptables en Linux con ejemplos

iptables es una interfaz de línea de comandos que se utiliza para configurar y mantener tablas para el cortafuegos Netfilter para IPv4, incluido en el kernel de Linux. El firewall hace coincidir los paquetes con las reglas definidas en estas tablas y luego realiza la acción especificada en una posible coincidencia.

  • Tablas es el nombre de un conjunto de strings.
  • La string es una colección de reglas.
  • La regla es una condición utilizada para hacer coincidir el paquete.
  • El objetivo es la acción que se realiza cuando una posible regla coincide. Ejemplos del objetivo son ACCEPT, DROP, QUEUE.
  • La política es la acción predeterminada que se toma en caso de que no coincida con las strings integradas y puede ser ACEPTAR o ELIMINAR.

Sintaxis:

iptables --table TABLE -A/-C/-D... CHAIN rule --jump Target
MESA

Hay cinco tablas posibles:

  • filtro: tabla utilizada por defecto para el filtrado de paquetes. Incluye strings como INPUT, OUTPUT y FORWARD.
  • nat : Relacionado con la traducción de direcciones de red. Incluye strings PREROUTING y POSTROUTING.
  • mangle : Para alteración especializada de paquetes. Las strings incorporadas incluyen PREROUTING y OUTPUT.
  • raw : Configura exenciones del seguimiento de conexiones. Las strings integradas son PREROUTING y OUTPUT.
  • seguridad : Usado para Control de Acceso Obligatorio
CADENAS

Hay pocas strings integradas que se incluyen en las tablas. Están:

  • INPUT: conjunto de reglas para paquetes destinados a sockets localhost.
  • FORWARD: para paquetes enrutados a través del dispositivo.
  • SALIDA: para paquetes generados localmente, destinados a ser transmitidos al exterior.
  • PREROUTING : para modificar paquetes a medida que llegan.
  • POSTROUTING: para modificar paquetes a medida que se van.

Nota: También se pueden crear strings definidas por el usuario.

OPCIONES
  1. -A, –append : Agregar a la string proporcionada en los parámetros.

    Sintaxis:

    iptables [-t table] --append [chain] [parameters]
    

    Ejemplo: este comando elimina todo el tráfico que llega a cualquier puerto.

    iptables -t filter --append INPUT -j DROP
    

    Producción:

  2. -D, –delete : Eliminar regla de la string especificada.

    Sintaxis:

    iptables [-t table] --delete [chain] [rule_number]
    

    Ejemplo: este comando elimina la regla 2 de la string INPUT.

    iptables -t filter --delete INPUT 2
    

    Producción:

  3. -C, –check : Verifica si una regla está presente en la string o no. Devuelve 0 si la regla existe y devuelve 1 si no existe.

    Sintaxis:

    iptables [-t table] --check [chain] [parameters]
    

    Ejemplo: este comando verifica si la regla especificada está presente en la string INPUT.

    iptables -t filter --check INPUT -s 192.168.1.123 -j DROP
    

    Producción:

PARÁMETROS

Los parámetros proporcionados con el comando iptables se utilizan para hacer coincidir el paquete y realizar la acción especificada. Los parámetros comunes son:

  1. -p, –proto : es el protocolo que sigue el paquete. Los posibles valores pueden ser: tcp, udp, icmp, ssh, etc.

    Sintaxis:

    iptables [-t table] -A [chain] -p {protocol_name} [target]
    

    Ejemplo: este comando agrega una regla en la string INPUT para descartar todos los paquetes udp.

    iptables -t filter -A INPUT -p udp -j DROP
    

    Producción:

  2. -s, –source: se utiliza para coincidir con la dirección de origen del paquete.

    Sintaxis:

    iptables [-t table] -A [chain] -s {source_address} [target]
    

    Ejemplo: este comando agrega una regla en la string INPUT para aceptar todos los paquetes que se originan en 192.168.1.230.

    iptables -t filter -A INPUT -s 192.168.1.230 -j ACCEPT
    

    Producción:

  3. -d, –destination : se utiliza para coincidir con la dirección de destino del paquete.

    Sintaxis:

    iptables [-t table] -A [chain] -d {destination_address} [target]
    

    Ejemplo: este comando agrega una regla en la string OUTPUT para descartar todos los paquetes destinados a 192.168.1.123.

    iptables -t filter -A OUTPUT -d 192.168.1.123 -j DROP
    

    Producción:

  4. -i, –in-interface : hace coincidir los paquetes con la interfaz de entrada especificada y realiza la acción.

    Sintaxis:

    iptables [-t table] -A [chain] -i {interface} [target]
    

    Ejemplo: este comando agrega una regla en la string INPUT para descartar todos los paquetes destinados a la interfaz inalámbrica.

    iptables -t filter -A INPUT -i wlan0 -j DROP
    

    Producción:

  5. -o, –out-interface: hace coincidir los paquetes con la interfaz de salida especificada.
  6. -j, –jump : este parámetro especifica la acción a realizar en un partido.

    Sintaxis:

    iptables [-t table] -A [chain] [parameters] -j {target}
    

    Ejemplo: este comando agrega una regla en la string FORWARD para descartar todos los paquetes.

    iptables -t filter -A FORWARD -j DROP
    

    Producción:

Nota:

  • Mientras prueba los comandos, puede eliminar todas las reglas de filtrado y las strings creadas por el usuario.
    sudo iptables --flush
    
  • Para guardar la configuración de iptables use:
    sudo iptables-save
  • La restauración de la configuración de iptables se puede hacer con:
    sudo iptables-restore
  • Existen otras interfaces, como ip6tables, que se utilizan para administrar tablas de filtrado para IPv6.

Publicación traducida automáticamente

Artículo escrito por singhyog y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *