GNU/Linux >> Tutoriales Linux >  >> Linux

Tutorial de firewall de Linux:tablas, cadenas y fundamentos de reglas de IPTables

El firewall de iptables se usa para administrar el filtrado de paquetes y las reglas NAT. IPTables viene con todas las distribuciones de Linux. Comprender cómo instalar y configurar iptables lo ayudará a administrar su firewall de Linux de manera efectiva.

La herramienta iptables se usa para administrar las reglas de firewall de Linux. A primera vista, iptables puede parecer complejo (o incluso confuso). Pero, una vez que comprenda los conceptos básicos de cómo funciona iptables y cómo está estructurado, leer y escribir las reglas de firewall de iptables será fácil.

Este artículo es parte de una serie de tutoriales de iptables en curso. Este es el primer artículo de esa serie.

Este artículo explica cómo se estructura iptables y explica los fundamentos de las tablas, cadenas y reglas de iptables.

En un nivel alto, las iptables pueden contener varias tablas. Las tablas pueden contener varias cadenas. Las cadenas pueden ser integradas o definidas por el usuario. Las cadenas pueden contener varias reglas. Las reglas se definen para los paquetes.

Entonces, la estructura es:iptables -> Tablas -> Cadenas -> Reglas. Esto se define en el siguiente diagrama.


Figura :Estructura de tabla, cadena y regla de IPTables

Solo para reiterar, las tablas son un montón de cadenas y las cadenas son un montón de reglas de firewall.

Yo. TABLAS IPTABLES y CADENAS

IPTables tiene las siguientes 4 tablas integradas.

1. Tabla de filtros

El filtro es la tabla predeterminada para iptables. Entonces, si no define su propia tabla, usará la tabla de filtro. La tabla de filtros de Iptables tiene las siguientes cadenas integradas.

  • Cadena INPUT:entrante al cortafuegos. Para paquetes que llegan al servidor local.
  • Cadena de SALIDA:saliente desde el cortafuegos. Para paquetes generados localmente y que salen del servidor local.
  • Cadena FORWARD:paquete para otra NIC en el servidor local. Para paquetes enrutados a través del servidor local.

2. tabla NAT

La tabla NAT de Iptable tiene las siguientes cadenas integradas.

  • Cadena PREROUTING:altera los paquetes antes del enrutamiento. es decir, la traducción del paquete ocurre inmediatamente después de que el paquete llega al sistema (y antes del enrutamiento). Esto ayuda a traducir la dirección IP de destino de los paquetes a algo que coincida con el enrutamiento en el servidor local. Esto se utiliza para DNAT (NAT de destino).
  • Cadena POSTROUTING:altera los paquetes después del enrutamiento. es decir, la traducción de paquetes ocurre cuando los paquetes salen del sistema. Esto ayuda a traducir la dirección IP de origen de los paquetes a algo que pueda coincidir con el enrutamiento en el servidor de destino. Esto se usa para SNAT (NAT de origen).
  • Cadena de SALIDA:NAT para paquetes generados localmente en el cortafuegos.

3. Mangle mesa

La tabla Mangle de Iptables es para la alteración de paquetes especializados. Esto altera los bits de QOS en el encabezado TCP. La mesa Mangle tiene las siguientes cadenas integradas.

  • Cadena PREROUTING
  • Cadena de SALIDA
  • Cadena ADELANTE
  • Cadena de ENTRADA
  • Cadena POSTROUTING

4. Tabla sin procesar

La tabla Raw de Iptable es para excepciones de configuración. La tabla sin procesar tiene las siguientes cadenas integradas.

  • Cadena PREROUTING
  • Cadena de SALIDA

El siguiente diagrama muestra las tres tablas importantes en iptables.

Fig :tablas integradas de IPTables

II. REGLAS DE IPTABLES

Los siguientes son los puntos clave a recordar para las reglas de iptables.

  • Las reglas contienen un criterio y un objetivo.
  • Si el criterio coincide, se aplica a las reglas especificadas en el destino (o) ejecuta los valores especiales mencionados en el destino.
  • Si no se cumplen los criterios, se pasa a la siguiente regla.

Valores objetivo

Los siguientes son los posibles valores especiales que puede especificar en el destino.

  • ACEPTAR:el cortafuegos aceptará el paquete.
  • DROP:el cortafuegos eliminará el paquete.
  • QUEUE:el cortafuegos pasará el paquete al espacio de usuario.
  • RETORNO:el cortafuegos dejará de ejecutar el siguiente conjunto de reglas en la cadena actual para este paquete. El control volverá a la cadena de llamadas.

Si hace iptables – list (o) service iptables status, verá todas las reglas de firewall disponibles en su sistema. El siguiente ejemplo de iptable muestra que no hay reglas de firewall definidas en este sistema. Como puede ver, muestra la tabla de entrada predeterminada, con la cadena de entrada, la cadena directa y la cadena de salida predeterminadas.

# iptables -t filter --list
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

Haga lo siguiente para ver la tabla mangle.

# iptables -t mangle --list

Haga lo siguiente para ver la tabla nat.

# iptables -t nat --list

Haga lo siguiente para ver la tabla sin formato.

# iptables -t raw --list

Nota:si no especifica la opción -t, se mostrará la tabla de filtros predeterminada. Entonces, los dos comandos siguientes son iguales.

# iptables -t filter --list
(or)
# iptables --list

El siguiente ejemplo de iptable muestra que hay algunas reglas definidas en la cadena de entrada, reenvío y salida de la tabla de filtros.

# iptables --list
Chain INPUT (policy ACCEPT)
num  target     prot opt source               destination
1    RH-Firewall-1-INPUT  all  --  0.0.0.0/0            0.0.0.0/0

Chain FORWARD (policy ACCEPT)
num  target     prot opt source               destination
1    RH-Firewall-1-INPUT  all  --  0.0.0.0/0            0.0.0.0/0

Chain OUTPUT (policy ACCEPT)
num  target     prot opt source               destination

Chain RH-Firewall-1-INPUT (2 references)
num  target     prot opt source               destination
1    ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0
2    ACCEPT     icmp --  0.0.0.0/0            0.0.0.0/0           icmp type 255
3    ACCEPT     esp  --  0.0.0.0/0            0.0.0.0/0
4    ACCEPT     ah   --  0.0.0.0/0            0.0.0.0/0
5    ACCEPT     udp  --  0.0.0.0/0            224.0.0.251         udp dpt:5353
6    ACCEPT     udp  --  0.0.0.0/0            0.0.0.0/0           udp dpt:631
7    ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           tcp dpt:631
8    ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0           state RELATED,ESTABLISHED
9    ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           state NEW tcp dpt:22
10   REJECT     all  --  0.0.0.0/0            0.0.0.0/0           reject-with icmp-host-prohibited

Las reglas en la salida del comando iptables –list contienen los siguientes campos:

  • num:número de regla dentro de la cadena en particular
  • objetivo:variable objetivo especial que discutimos anteriormente
  • prot:protocolos. tcp, udp, icmp, etc.,
  • opt:opciones especiales para esa regla específica.
  • fuente:dirección IP de origen del paquete
  • destino:dirección IP de destino para el paquete

Linux
  1. Docker Firewall script para DOCKER-USER iptables Chain

  2. IPTables de Linux:cómo agregar reglas de firewall (con el ejemplo Permitir SSH)

  3. IPTables Flush:eliminar/eliminar todas las reglas en RedHat y CentOS Linux

  4. Servicio del sistema operativo Linux 'iptables'

  5. ¿Cómo administra su configuración de iptables de Linux en una máquina que actúa como un enrutador?

Cómo configurar el cortafuegos de iptables en Linux

50 reglas de IPtables útiles y simples para el administrador de Linux

Tutorial de Iptables para principiantes:conceptos clave

Cómo proteger un firewall de Linux con reglas de IPTables

Los 5 mejores cortafuegos de Linux

Cómo configurar un cortafuegos en su servidor Linux