ACTIVIDAD #3
El presente cuestionario aborda conceptos fundamentales del filtrado de paquetes en sistemas GNU/Linux mediante iptables, herramienta basada en Netfilter que permite implementar controles de acceso a nivel de red. El dominio de estos comandos es clave dentro de la administración segura de servidores, ya que permite aplicar políticas de control de tráfico alineadas a principios como mínimo privilegio y defensa en profundidad.
La configuración correcta de un firewall host-based reduce significativamente la superficie de ataque, mitigando amenazas como escaneo de puertos, accesos no autorizados y explotación de servicios expuestos.
1. Recorrido de un paquete dentro del firewall
Cuando un paquete entra o sale del sistema, el kernel lo procesa a través de una tabla, posteriormente pasa por una cadena (chain) y finalmente se ejecuta un objetivo (target) como ACCEPT, DROP o LOG.
Este flujo permite aplicar reglas organizadas por función (filtrado, traducción de direcciones, etc.), garantizando un control granular del tráfico.
2. Tablas principales y su función operativa
- FILTER: Tabla predeterminada para permitir o bloquear tráfico.
Ejemplo: Bloquear conexiones SSH no autorizadas. - NAT: Traducción de direcciones IP y puertos.
Ejemplo: Compartir conexión a internet mediante enmascaramiento (MASQUERADE). - MANGLE: Modificación avanzada de paquetes (marcado, QoS).
- RAW: Permite excepciones en el seguimiento de conexiones (conntrack).
- SECURITY: Integración con módulos de seguridad como SELinux.
Estas funciones están documentadas en recursos técnicos en español como:
- Documentación oficial de Netfilter (traducciones comunitarias)
- Guía de iptables en Red Hat Enterprise Linux (accesible en español)
- Manual de administración de servidores Linux en Ubuntu Server
- Portal especializado en seguridad informática de INCIBE (España)
3. Estructura de un comando típico
iptables -A INPUT -p tcp -m multiport --dports 80,443 -j ACCEPT
Desglose técnico:
- -A INPUT: Agrega la regla a la cadena INPUT.
- -p tcp: Aplica únicamente a protocolo TCP.
- -m multiport: Permite evaluar múltiples puertos.
- --dports 80,443: Puertos destino HTTP y HTTPS.
- -j ACCEPT: Acción final: permitir tráfico.
4. Interpretación funcional
La regla permite tráfico TCP entrante hacia los puertos 80 y 443, habilitando servicios web HTTP y HTTPS en el servidor.
5. Opciones frecuentes en reglas de seguridad
a) Control de tasa de intentos
- --limit → Útil para mitigar ataques de fuerza bruta o DoS básicos.
b) Filtrado por dirección IP origen
- -s → Restringe acceso a direcciones específicas.
c) Visualización sin resolución DNS
- -n → Muestra direcciones numéricas, agilizando consultas.
d) Mostrar estadísticas de tráfico
- -v → Incluye contadores de paquetes y bytes.
6. Análisis de regla con control de estado
iptables -A INPUT -i eth0 -p tcp -m multiport --dports 22,80,443 -m state --state NEW,ESTABLISHED -j ACCEPT
Esta configuración permite tráfico TCP entrante por la interfaz eth0 en los puertos 22 (SSH), 80 (HTTP) y 443 (HTTPS), únicamente si la conexión es nueva o ya está establecida.
El uso de state o conntrack implementa un firewall con inspección de estado (stateful firewall), aumentando el nivel de seguridad frente a paquetes inválidos.
7. Habilitar servicio web
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
Permite tráfico HTTP entrante hacia el servidor.
8. Política permisiva de salida
iptables -A OUTPUT -j ACCEPT
Autoriza todo el tráfico saliente. En entornos productivos se recomienda definir reglas más restrictivas según el principio de mínimo privilegio.
9. Restringir SSH a una IP específica
iptables -A INPUT -p tcp --dport 22 -s 192.168.1.50 -j ACCEPT
Permite acceso SSH únicamente desde la IP indicada, reduciendo la exposición a ataques automatizados.
10. Permitir únicamente conexiones establecidas o relacionadas
iptables -A INPUT -p tcp -m multiport --dports 80,443 -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
Refuerza la seguridad permitiendo únicamente tráfico asociado a conexiones ya iniciadas o relacionadas con una sesión válida.
11. Registro y autorización controlada
Registro de intentos nuevos
iptables -A INPUT -i eth0 -p tcp -m multiport --dports 22,80,443 -m conntrack --ctstate NEW -j LOG --log-prefix "Firewall: "
Permitir conexiones válidas
iptables -A INPUT -i eth0 -p tcp -m multiport --dports 22,80,443 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
Permitir tráfico de respuesta
iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
El registro previo permite auditoría y análisis forense, práctica alineada a buenas prácticas recomendadas por organismos como INCIBE y manuales de endurecimiento de servidores Linux.
Aplicación en un entorno típico
Internet | [Router] | [Firewall Linux] | [Servidor Web]
En esta topología básica, el firewall host-based controla el tráfico antes de que llegue al servicio web, reduciendo riesgos de explotación remota.
Conclusión
En entornos reales, especialmente en pequeñas y medianas empresas en México, es común encontrar servidores Linux expuestos sin reglas adecuadas de filtrado. Muchas veces se confía únicamente en el firewall perimetral, dejando desprotegidos los servicios internos.
La correcta implementación de iptables, combinada con monitoreo de logs y segmentación de red, fortalece significativamente la postura de seguridad. Sin embargo, su configuración debe realizarse con conocimiento técnico sólido, ya que una regla mal definida puede generar indisponibilidad o dejar brechas abiertas.
Referencias
- Guía de iptables – Documentación oficial de Red Hat (versión en español).
- Manual de administración de Ubuntu Server (sección de firewall).
- Portal de ciberseguridad del INCIBE (Instituto Nacional de Ciberseguridad de España).
- Comunidad Linux y manuales técnicos disponibles en documentación GNU.