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