Interpretación y traducción de políticas de filtrado en iptables
INFORMACIÓN GENERAL:
- Alumno: Mauricio Josafat Salinas Carrillo
- Maestro: Servando Lopez Contreras
- Fecha: 03 de Febrero de 2026
- Tipo de documento: Actividad 03
Introducción Contextual
El filtrado de paquetes es una de las técnicas más fundamentales en la seguridad de redes Linux. iptables actúa como el "guardián" del sistema operativo, permitiendo definir reglas granulares sobre qué tráfico puede entrar, salir o atravesar una máquina. Esta actividad explora la sintaxis y lógica detrás de las tablas y cadenas que conforman este potente firewall.
1. Flujo del Paquete
Instrucción: Completa los espacios conforme se explica el flujo del paquete.
Cuando un paquete llega al sistema, primero pasa por una tabla, después por una cadena y finalmente se ejecuta una regla / acción.
2. Propósito de las Tablas
Instrucción: Relaciona cada tabla con su propósito principal.
| Tabla | Propósito principal | Ejemplo de uso |
|---|---|---|
| FILTER | Permitir o bloquear paquetes | Filtrar el tráfico en la red |
| NAT | Traducir direcciones IP | Distribuir el internet |
| MANGLE | Modificación de paquetes | Cambiar encabezados de paquetes |
| RAW | Seguimiento de paquetes | Saber si la marcación llega |
| SECURITY | Aplicar seguridad | Añadir seguridad de paquetes / servicios |
3. Anatomía de un comando iptables
Comando de ejemplo:
iptables -A INPUT -p tcp -m multiport --dports 80,443 -j ACCEPT
Este comando permite:
Respuesta: Filtrar todo lo que llegue por protocolo TCP de los PUERTOS 80, 443 y los va a aceptar.
5. Variables y opciones comunes
a) Limitar intentos por minuto
--limit 5/minute
b) Filtrar por IP de origen
-s 192.168.25.0/24
c) Ver solo números, sin DNS (ni resolución de puertos)
-list -n
d) Ver reglas con contadores (paquetes y bytes)
-L -v
6. Análisis de Regla
Comando:
iptables -A INPUT -i eth0 -p tcp -m multiport --dports 22,80,443 \
-m state --state NEW,ESTABLISHED -j ACCEPT
¿Qué hace esta regla?
Respuesta: Permite tráfico TCP entrante por la interfaz eth0 a los puertos ssh, http, https, siempre que sea parte de una conexión nueva o establecida.
Ejercicios de Escritura de Reglas
7. Permitir tráfico HTTP entrante
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
8. Permitir todo el tráfico saliente
iptables -A OUTPUT -j ACCEPT
9. Permitir SSH solo desde la IP 192.168.1.50
iptables -A INPUT -p tcp -s 192.168.1.50 --dport 22 -j ACCEPT
10. Permitir tráfico TCP entrante a puertos 80 y 443 solo si es conexión establecida o relacionada
iptables -A INPUT -p tcp -m multiport --dports 80,443 -m state --state ESTABLISHED
11. Permitir tráfico TCP entrante por eth0 a 22, 80 y 443, registrar intentos y permitir solo NEW, RELATED y ESTABLISHED
Regla 1 (Registro/Log):
iptables -A INPUT -i eth0 -p tcp -m multiport --dports 22,80,443 -j LOG --log-prefix "Intento "
Regla 2 (Aceptar conexión):
iptables -A INPUT -i eth0 -p tcp -m multiport --dports 22,80,443 -m state --state NEW,ESTABLISHED -j ACCEPT
Notas adicionales
iptables -A INPUT -m multiport --dports 56,82
iptables -A INPUT -s 192.168.1.36 --dport 22 -j REJECT
Reflexión y Casos de Uso
Reflexión Técnica
iptables es la base fundamental del filtrado de paquetes en Linux. Aunque hoy existen herramientas más abstractas como UFW o Firewalld, entender las tablas (Filter, NAT, Mangle) y las cadenas es crucial para cualquier administrador de sistemas. Esta actividad resalta la importancia del principio de "mínimo privilegio" en redes: bloquear todo por defecto y abrir solo lo estrictamente necesario.
Escenarios de Uso Real
Hardening de Servidores Web
Protección de servidores expuestos a internet permitiendo solo tráfico HTTP/HTTPS (80/443) y SSH (22) desde IPs de administración específicas, rechazando todo lo demás para reducir la superficie de ataque.
Mitigación de DoS Simple
Uso de módulos como limit (visto en la actividad) para restringir la tasa de conexiones entrantes, ayudando a mitigar ataques de denegación de servicio básicos o intentos de fuerza bruta.