Este glosario proporciona una explicación detallada de los parámetros utilizados en las reglas de iptables
, junto con ejemplos prácticos.
Descripción: El objetivo MASQUERADE
se utiliza en la tabla nat
para realizar la traducción de direcciones de red (NAT). Permite que todos los dispositivos en una red privada aparezcan como si estuvieran utilizando una única dirección IP pública.
Ejemplo: Para configurar NAT y permitir que una red local comparta una conexión a Internet, usamos el siguiente comando:
sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
En este ejemplo, eth0
es la interfaz conectada a Internet[^1^][1].
Descripción: El objetivo ACCEPT
permite el paso de paquetes que coinciden con la regla.
Ejemplo: Para permitir el tráfico SSH (puerto 22), usamos el siguiente comando:
sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT
Descripción: El objetivo DROP
descarta los paquetes que coinciden con la regla, sin enviar ninguna respuesta.
Ejemplo: Para bloquear todo el tráfico de una IP específica (por ejemplo, 192.168.1.100), usamos el siguiente comando:
sudo iptables -A INPUT -s 192.168.1.100 -j DROP
Descripción: El objetivo LOG
registra los paquetes que coinciden con la regla en los registros del sistema.
Ejemplo: Para registrar todos los paquetes entrantes, usamos el siguiente comando:
sudo iptables -A INPUT -j LOG --log-prefix "IPTables-INPUT-Dropped: " --log-level 4
Descripción: El objetivo REDIRECT
redirige los paquetes a un puerto diferente en el mismo host.
Ejemplo: Para redirigir el tráfico HTTP (puerto 80) a HTTPS (puerto 443), usamos el siguiente comando:
sudo iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 443
Descripción: El objetivo DNAT
(Destination NAT) cambia la dirección IP de destino de los paquetes.
Ejemplo: Para redirigir el tráfico de un puerto específico a otro servidor, usamos el siguiente comando:
sudo iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to-destination 192.168.1.2:80
Descripción: El objetivo SNAT
(Source NAT) cambia la dirección IP de origen de los paquetes.
Ejemplo: Para cambiar la dirección IP de origen de los paquetes salientes a una dirección específica, usamos el siguiente comando:
sudo iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth0 -j SNAT --to-source 203.0.113.1
Descripción: El objetivo REJECT
descarta los paquetes que coinciden con la regla y envía una respuesta de error al remitente.
Ejemplo: Para rechazar conexiones entrantes en el puerto 22, usamos el siguiente comando:
sudo iptables -A INPUT -p tcp --dport 22 -j REJECT
Descripción: El módulo connlimit
permite limitar el número de conexiones simultáneas desde una misma IP.
Ejemplo: Para limitar el número de conexiones entrantes a un máximo de 10 por minuto desde una misma IP, usamos el siguiente comando:
sudo iptables -A INPUT -p tcp --dport 22 -m connlimit --connlimit-above 10 -j REJECT
Descripción: El módulo multiport
permite especificar múltiples puertos en una sola regla.
Ejemplo: Para permitir el acceso a un rango de puertos (por ejemplo, del 1024 al 2048), usamos el siguiente comando:
sudo iptables -A INPUT -p tcp --match multiport --dports 1024:2048 -j ACCEPT
Descripción: El módulo state
permite filtrar paquetes según su estado de conexión (NEW, ESTABLISHED, RELATED, INVALID).
Ejemplo: Para permitir solo paquetes relacionados o establecidos, usamos el siguiente comando:
sudo iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
Descripción: El módulo limit
permite limitar la tasa de coincidencia de una regla.
Ejemplo: Para limitar los registros de paquetes a un máximo de 5 por minuto, usamos el siguiente comando:
sudo iptables -A INPUT -m limit --limit 5/min -j LOG --log-prefix "IPTables-Limit: "