Configuración de Iptables: Reglas y ejemplos prácticos para tu firewall
Enviado por Chuletator online y clasificado en Informática y Telecomunicaciones
Escrito el en español con un tamaño de 5,18 KB
Configuración de Iptables: Reglas y ejemplos prácticos
A continuación, se presentan ejemplos de configuración de iptables para un firewall, incluyendo el borrado de reglas existentes, el establecimiento de políticas por defecto y la configuración de reglas específicas para diferentes escenarios.
Borrado de reglas
Para empezar, es importante limpiar cualquier configuración previa. Los siguientes comandos borran todas las reglas existentes en las tablas filter y nat:
iptables -F
iptables -X
iptables -Z
iptables -t nat -F
Estableciendo políticas por defecto permisivas
Inicialmente, se establecen políticas permisivas para evitar bloquear el tráfico accidentalmente. Estas políticas permiten todo el tráfico entrante, saliente y de reenvío:
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -t nat -P PREROUTING ACCEPT
iptables -t nat -P POSTROUTING ACCEPT
Filtrado de tráfico
Una vez establecidas las políticas por defecto, se pueden añadir reglas para filtrar el tráfico no deseado. A continuación, se muestran algunos ejemplos:
- Bloquear el tráfico en la interfaz de loopback (
lo
):
iptables -P INPUT -i lo -j DROP
Redireccionamiento de puertos
El redireccionamiento de puertos (DNAT) permite dirigir el tráfico entrante a una máquina interna específica. Los siguientes ejemplos redirigen el tráfico de los puertos 80 y 443 a la máquina interna 192.168.3.2
:
- Redirigir el puerto 80:
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j DNAT --to-destination 192.168.3.2:80
- Redirigir el puerto 443:
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 443 -j DNAT --to-destination 192.168.3.2:80
También se puede redirigir un puerto externo a un puerto diferente en la misma máquina. El siguiente ejemplo redirige el puerto 22222
al puerto 22
:
- Redirigir el puerto 22222 al 22:
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 22222 -j REDIRECT --to-port 22
Permitir tráfico específico
Es importante permitir el tráfico necesario para el funcionamiento correcto del sistema y la red:
- Permitir el tráfico en la interfaz de loopback:
iptables -A INPUT -i lo -j ACCEPT
- Permitir el acceso al firewall desde la red local:
iptables -A INPUT -s 192.168.10.0/24 -i eth1 -j ACCEPT
Enmascaramiento (MASQUERADE)
El enmascaramiento permite que las máquinas en la red local y la DMZ salgan a internet utilizando la dirección IP del firewall:
- Enmascarar el tráfico de la red local:
iptables -t nat -A POSTROUTING -s 192.168.10.0/24 -o eth0 -j MASQUERADE
- Enmascarar el tráfico de la DMZ:
iptables -t nat -A POSTROUTING -s 192.168.3.0/24 -o eth0 -j MASQUERADE
Además, es necesario activar el IP forwarding para permitir que el firewall reenvíe el tráfico:
- Activar IP forwarding:
echo 1 > /proc/sys/net/ipv4/ip_forward
Reglas de reenvío (FORWARD)
Las reglas de reenvío controlan el tráfico que pasa a través del firewall entre diferentes redes:
- Permitir el acceso de la DMZ a una base de datos en la LAN:
iptables -A FORWARD -s 192.168.3.0/24 -p tcp --dport 5432 -d 192.168.10.0/24 -j ACCEPT
iptables -A FORWARD -s 192.168.10.0 -p tcp --dport 5432 -d 192.168.3.0/24 -j ACCEPT
- Permitir el acceso al Terminal Server (3389) desde la LAN:
iptables -A FORWARD -s 192.168.10.0/24 -p tcp --dport 3389 -d 192.168.3.2 -j ACCEPT
iptables -A FORWARD -s 192.168.3.2 -p tcp --sport 3389 -d 192.168.10.0/24 -j ACCEPT
- Cerrar el acceso de la DMZ a la LAN:
iptables -A FORWARD -s 192.168.3.0/24 -d 192.168.10.0/24 -j DROP
- Cerrar el acceso de la DMZ al propio firewall:
iptables -A INPUT -s 192.168.3.0/24 -i eth2 -j DROP
Seguridad adicional
Se pueden añadir reglas para mejorar la seguridad del firewall:
- Permitir el acceso del administrador desde una IP específica:
iptables -A INPUT -i eth0 -s 88.56.96.13 --dport 22
- Cerrar el rango de puertos bien conocidos (1-1024):
iptables -A INPUT -s 0.0.0.0/0 -p tcp --dport 1:1024 -j DROP
iptables -A INPUT -s 0.0.0.0/0 -p udp --dport 1:1024 -j DROP
- Cerrar el puerto de gestión Webmin (10000):
iptables -A INPUT -s 0.0.0.0/0 -p tcp --dport 10000 -j DROP
- Evitar el envío de pings:
iptables -A INPUT -p icmp --icmp-type echo-request -j DROP
iptables -A INPUT -p icmp --icmp-type echo-reply -j DROP