# Guía práctica de nftables: Protege tus redes en Debian
nftables en Debian ofrece un filtrado de tráfico potente para servidores o estaciones de trabajo. ¿El objetivo? Bloquear conexiones entrantes no deseadas y controlar el tráfico saliente. El enfoque: modelar amenazas, definir controles de acceso y crear reglas de filtrado.
Empieza con una plantilla VM de Debian 11.4 netinstall: instalación mínima, sin extras, luego añade SSH, Midnight Commander y conntrack con apt install mc ssh conntrack. Usa una plataforma de virtualización con control de red como QEMU-KVM o VirtualBox.
Modelado de amenazas y estrategias de mitigación
Identifica tus principales amenazas:
- T1: Explotación de servicios — bloquea tráfico entrante por puertos/IP.
- T2: Ataques DoS — limita la tasa de paquetes, descarta fuentes loopback (127.0.0.0/8 salvo desde lo).
- T3: Ataques de fuerza bruta — rastrea inicios de sesión fallidos y veta IPs.
- T4: Conexiones salientes maliciosas — filtra por IPs, puertos, protocolos.
- T5: Puertos no autorizados — prohíbe nuevas conexiones entrantes.
Esquemas de control de acceso, de básico a reforzado:
- Mínimo (estaciones de trabajo): Bloquea todo entrante salvo establecido; permite todo saliente.
- Estándar (servidores): Permite SSH (22), HTTP/HTTPS (80/443), ICMP; limita conntrack.
- Reforzado: Listas blancas por IP, límites de tasa en puertos, listas negras para DoS.
Configuración de protección reforzada para servidores
Entorno de pruebas: Servidor Debian en red 192.168.1.0/24, interfaz eth0.
Misión: Implementar nftables con seguridad reforzada.
Pasos previos:
apt update && apt install nftables
systemctl enable nftables
Reglas en /etc/nftables.conf:
nft add table inet filter
nft add chain inet filter input { type filter hook input priority 0; policy drop; }
nft add chain inet filter output { type filter hook output priority 0; policy accept; }
nft add chain inet filter forward { type filter hook forward priority 0; policy drop; }
# Establecidas/relacionadas
nft add rule inet filter input ct state established,related accept
# Loopback
nft add rule inet filter input iifname "lo" accept
# ICMP
nft add rule inet filter input ip protocol icmp icmp type { echo-request, echo-reply } accept
# Límite de tasa para SSH
nft add rule inet filter input tcp dport 22 ct state new limit rate 5/minute accept
nft add rule inet filter input tcp dport 22 ct state new drop
# Descarta fuentes loopback
nft add rule inet filter input ip saddr 127.0.0.0/8 iifname != "lo" drop
nft add rule inet filter input ct state invalid drop
nft add rule inet filter input accept
Aplica con: nft -f /etc/nftables.conf. Verifica: nft list ruleset, conntrack -L.
Pruebas de tu cortafuegos
Entorno: Cliente (192.168.1.10), servidor (192.168.1.20).
Misión: Probar puertos, resistencia a DoS, flujos salientes.
Pasos:
nmap -p 22,80,443 192.168.1.20— solo SSH abierto.hping3 --flood -S 192.168.1.20 -p 22— entra en acción el límite de tasa.tcpdump -i eth0para ver descartes.
Segmentación de red con enrutamiento
Activa el reenvío de IP: sysctl net.ipv4.ip_forward=1.
Entorno: Router (eth0: LAN1 192.168.10.0/24, eth1: LAN2 192.168.20.0/24).
Misión: Aislar zonas de usuarios y servidores.
Reglas:
nft add table inet filter
nft add chain inet filter forward { type filter hook forward priority 0; policy drop; }
# Usuarios a servidores: solo puertos clave
nft add rule inet filter forward iifname "eth0" oifname "eth1" tcp dport {22,80,443} ct state new accept
nft add rule inet filter forward iifname "eth0" oifname "eth1" ct state established,related accept
# De vuelta
nft add rule inet filter forward iifname "eth1" oifname "eth0" ct state established,related accept
# Servidores a internet
nft add rule inet filter forward iifname "eth1" oifname "eth2" accept
Segmentación en Capa 2 (Cortafuegos de switch)
Sin subredes IP: Usa VLAN o filtrado por MAC.
Reglas de bridge:
nft add table bridge filter
nft add chain bridge filter forward { type filter hook forward priority 0; }
# Bloquea entre grupos MAC
nft add rule bridge filter forward ether saddr 00:11:22:33:44:00 ether daddr 00:55:66:77:88:99 drop
OneButtonFirewall: Protección segmentada rápida
Proyecto para despliegue exprés: Script genera reglas desde plantillas.
Entorno: Dispositivo OBF entre segmentos.
Funcionamiento: Script parsea config (JSON/YAML), aplica nftables.
Ventajas: Cero config, actualizaciones automáticas. Desventajas: Menos flexible.
Casos de uso: Oficinas en casa, pymes sin expertos en seguridad.
Lecciones clave:
- Modela amenazas primero.
- Política por defecto de drop con aceptaciones explícitas.
- Prueba límites de tasa y conntrack.
- Equilibra seguridad y usabilidad.
- Monitorea logs de nftables (
nft log rule).
— Editorial Team
Aún no hay comentarios.