Mecanismo de Filtrado de Paquetes en Linux

Conceptos de Seguridad

# Detección de intrusiones
Monitoriza el tráfico sin bloquear, identifica amenazas y genera alertas para análisis posterior
# Prevención de intrusiones
Analiza el tráfico en tiempo real y bloquea actividades sospechosas inmediatamente
# Cortafuegos
Filtra conexiones mediante reglas predefinidas para prevenir accesos no autorizados
# Protección de datos internos
Restringe la transmisión de información confidencial fuera de la red interna

Arquitectura de Netfilter

El subsistema de filtrado opera en el kernel mediante netfilter, gestionado con iptables
Flujos de tráfico principales:
# Entrante: PREROUTING → Decisión enrutamiento → INPUT → Pila de protocolos
# Saliente: Pila de protocolos → OUTPUT → POSTROUTING
# Reenvío: PREROUTING → FORWARD → POSTROUTING

Cadenas de Procesamiento

Puntos de enlace en el kernel:
PREROUTING
INPUT
OUTPUT
FORWARD
POSTROUTING

Tablas de Reglas

# Principales
filter: Filtrado básico
nat: Traducción de direcciones
# Complementarias
mangle: Modificación de cabeceras
raw: Desactiva seguimiento de conexiones
security: Control de acceso obligatorio

# Consultar tablas:
iptables -t [nombre_tabla] -L
# Orden de procesamiento:
security → raw → mangle → nat → filter

Interacción Tablas-Cadenas

• filter: Opera en INPUT, OUTPUT y FORWARD
• nat: Funciona en PREROUTING, OUTPUT y POSTROUTING
• raw: Configurable en PREROUTING y OUTPUT
• mangle: Disponible en todas las cadenas

Adminisrtación con iptables

Sintaxis básica:
iptables -t TABLA ACCIÓN CADENA [Criterios] -j ACCIÓN_FINAL

Acciones principales:
-A: Añadir regla al final
-I [n]: Insertar en posición n
-D: Eliminar regla
-F: Limpiar todas las reglas
-P: Establecer política por defecto (ACCEPT/DROP)

Criterios Comunes

• Origen: -s 192.168.1.0/24
• Destino: -d 10.0.0.5
• Protocolo: -p tcp --dport 80
• Módulos especiales:
  - multiport: Múltiples puertos
  - state: Estados de conexión (NEW, ESTABLISHED)
  - connlimit: Limitar conexiones simultáneas

Ejemplos Prácticos

# Permitir acceso web desde IP específica
iptables -A INPUT -p tcp -s 192.168.1.50 --dport 80 -j ACCEPT

# Bloquear tráfico no solicitado
iptables -A INPUT -m state --state INVALID -j DROP

# Registrar conexiones nuevas
iptables -I INPUT -p tcp --dport 22 -j LOG --log-prefix "Nueva conexión SSH"

Buenas Prácticas

1. Permitir siempre conexiones ESTABLISHED
2. Restringir conexiones entrantes NEW
3. Ordenar reglas de específicas a genéricas
4. Combinar reglas similares
5. Usar política DROP al final de la cadena

Ejemplo de estructura recomendada:
1. ESTABLISHED,RELATED
2. Reglas específicas (SSH, HTTP)
3. Reglas genéricas
4. Política DROP

Persistencia de Reglas

# Guardar configuración
iptables-save > /etc/iptables/reglas.conf

# Restaurar al inicio
systemctl enable iptables
iptables-restore < /etc/iptables/reglas.conf

Traducción de Direcciones

# SNAT (Enmascaramiento saliente)
iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -j MASQUERADE

# DNAT (Redirección entrante)
iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to-dest 192.168.1.10:8080

# Requiere activar IP forwarding:
sysctl -w net.ipv4.ip_forward=1

Etiquetas: iptables netfilter linux-seguridad traduccion-ip packet-filtering

Publicado el 6-27 00:02