Volver al inicio

guía nftables: configuración de firewall en Debian

Guía para el uso práctico de nftables en Debian para la protección del servidor y la segmentación de red. Describe modelos de amenazas, esquemas de segregación, ejemplos de reglas y entornos de prueba. Incluye OneButtonFirewall para un despliegue rápido.

nftables: desde FW local hasta segmentación de red
Advertisement 728x90

# 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:

Google AdInline article slot
  • 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.

Google AdInline article slot

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.

Google AdInline article slot

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 eth0 para 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

Advertisement 728x90

Leer después