Manual de Introducción a Seguridad Informática con IPTABLES
Este manual proporciona una introducción básica al diseño, configuración, administración y gestión de la seguridad informática utilizando IPTABLES en sistemas Linux.
Introducción a la Seguridad Informática
La seguridad informática es el conjunto de medidas y prácticas destinadas a proteger los sistemas, redes y datos contra accesos no autorizados, ataques y vulnerabilidades. Uno de los componentes clave de la seguridad en sistemas Linux es el uso de firewalls, y una de las herramientas más utilizadas para este fin es IPTABLES.
¿Qué es IPTABLES?
IPTABLES es una herramienta de firewall en sistemas Linux que permite filtrar, modificar y redirigir el tráfico de red. Funciona mediante reglas que definen cómo se manejan los paquetes de red (aceptar, rechazar o descartar).
Conceptos Básicos de IPTABLES
- Tablas: IPTABLES organiza las reglas en tablas. Las tablas más comunes son:
- filter: Para filtrar paquetes (aceptar, rechazar o descartar).
- nat: Para traducción de direcciones de red (NAT).
- mangle: Para modificar paquetes (por ejemplo, cambiar el TTL).
- Cadenas: Cada tabla tiene cadenas predefinidas que representan puntos de decisión:
- INPUT: Paquetes destinados al sistema local.
- OUTPUT: Paquetes generados por el sistema local.
- FORWARD: Paquetes que se enrutarán a través del sistema.
- PREROUTING y POSTROUTING: Para NAT y mangle.
- Reglas: Son las instrucciones que definen qué hacer con los paquetes. Cada regla tiene:
- Un criterio de coincidencia (por ejemplo, dirección IP, puerto, protocolo).
- Una acción (ACCEPT, DROP, REJECT).
- Argumentos:
-A <CHAIN>
: Añade regla a la cadena especificada-D <CHAIN>
: Eliminar Regla-s <SOURCE>
: Fuente, IP de procedencia-j <ACTION>
: (jump) - Salto (ACCEPT, DROP or REJECT)-p <protocol>
: Protocolo--dport <port>
: Destination Port--sport: <port>
: Puerto fuente,-i
:interfaz entrante-o
:interfaz saliente-s
:dirección IP origen-d
:dirección IP destino
Diseño de un Firewall con IPTABLES
- Definir políticas por defecto: Establece qué hacer con el tráfico que no coincide con ninguna regla.
- Ejemplo:
iptables -P INPUT DROP
(rechazar todo el tráfico entrante por defecto). (-P: policy, –p: policy)
- Ejemplo:
- Permitir tráfico necesario: Abre solo los puertos y servicios esenciales.
- Ejemplo:
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
(permitir SSH). (-A:Add, -p: protocol, –dport: Destination Port, -j: JUMP )
- Ejemplo:
- Bloquear tráfico no deseado: Bloquea direcciones IP o rangos sospechosos.
- Ejemplo:
iptables -A INPUT -s 192.168.1.100 -j DROP
.
- Ejemplo:
- Habilitar NAT (si es necesario): Para permitir que los dispositivos internos accedan a Internet.
- Ejemplo:
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
.
- Ejemplo:
Configuración Básica de IPTABLES
- Listar reglas existentes:
iptables -L -v -n
- Agregar una regla: Permitir tráfico HTTP (puerto 80):
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
- Eliminar una regla: Eliminar la regla de HTTP:
iptables -D INPUT -p tcp --dport 80 -j ACCEPT
- Guardar reglas:
- En sistemas basados en Debian/Ubuntu:
iptables-save > /etc/iptables/rules.v4
- En sistemas basados en RedHat/CentOS:
service iptables save
- En sistemas basados en Debian/Ubuntu:
Administración y Gestión de IPTABLES
- Monitoreo del tráfico:
- Usa
iptables -L -v -n
para ver el tráfico que coincide con las reglas.
- Usa
- Bloquear ataques:
- Limitar el número de conexiones por IP para evitar ataques DDoS:
iptables -A INPUT -p tcp --dport 80 -m limit --limit 25/minute -j ACCEPT
- Limitar el número de conexiones por IP para evitar ataques DDoS:
- Reglas persistentes:
- Asegúrate de que las reglas se guarden y se carguen al reiniciar el sistema.
- Logging:
- Registrar tráfico sospechoso:
iptables -A INPUT -p tcp --dport 22 -j LOG --log-prefix "SSH Attempt: "
- Registrar tráfico sospechoso:
Ejemplo de Configuración Básica
# Establecer políticas por defecto
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT
# Permitir tráfico local
iptables -A INPUT -i lo -j ACCEPT
# Permitir tráfico HTTP y HTTPS
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp --dport 443 -j ACCEPT
# Permitir SSH desde una IP específica
iptables -A INPUT -p tcp --dport 22 -s 192.168.1.50 -j ACCEPT
# Habilitar NAT
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
# Guardar reglas
iptables-save > /etc/iptables/rules.v4
Consejos de Seguridad
- Minimizar la exposición: Abre solo los puertos necesarios.
- Actualizar regularmente: Mantén tu sistema y aplicaciones actualizados.
- Monitorear registros: Revisa los logs para detectar actividades sospechosas.
- Usar herramientas adicionales: Combina IPTABLES con herramientas como Fail2Ban para mayor seguridad.