Cómo administrar firewalls y configuraciones con nftables: Una guía completa y práctica
Capacitación sobre firewalls y nftables para administradores de servidores y personas preocupadas por la seguridad de la red.

Cómo administrar firewalls y configuraciones con nftables: Una guía completa y práctica

Este artículo proporciona instrucciones prácticas sobre cómo usar nftables como un nuevo cortafuegos para Linux y un sistema de gestión de seguridad de red, con ejemplos prácticos.
0 acciones
0
0
0
0

¿Cómo gestionar firewalls y nftables, desde lo básico hasta lo avanzado?

Administración y configuración del firewall nftables Es fundamental para cualquier administrador de sistemas, profesional de DevOps o propietario de servidores. En esta guía, cubrimos el lenguaje técnico y operativo, desde los conceptos básicos hasta escenarios avanzados, con ejemplos prácticos y archivos de configuración.

Conceptos básicos de nftables

nftables Para diseñar un conjunto de reglas, es necesario familiarizarse con ciertos componentes:

  • familia: Familia de protocolos (p. ej. Internet Para IPv4 e IPv6 simultáneos, ip, ip6, arp, bridge).
  • mesa: Contenedor de reglas (p. ej. filtro inet).
  • cadena: Cadena de reglas con gancho, tipo (entrada, avance, salida) y prioridad.
  • regla: Condiciones y acciones (aceptar, descartar, rechazar, contador, registrar).
  • conjunto / mapa: Colecciones para almacenar direcciones IP, puertos o valores para una rápida coincidencia.
  • conntrack: Seguimiento del estado de la conexión (establecida, relacionada, nueva, inválida).

¿Por qué nftables?

Principales razones para la elección nftables Entre ellos se incluyen:

  • Compatibilidad simultánea con IPv4 e IPv6. Utilizando la familia Internet.
  • Mejor rendimiento Y la posibilidad reemplazo atómico Para cargar el conjunto de reglas de forma segura.
  • Apoyo para Conjuntos con tiempo de espera y mapas Para NAT avanzado.
  • Compatibilidad con iptables a través de una capa de compatibilidad en las nuevas distribuciones.

Inicio rápido: Instalación, revisión y guardado de reglas

Comandos básicos para comprobar, cargar y guardar conjuntos de reglas:

nft --version
nft list ruleset
nft -f /etc/nftables.conf
nft list ruleset > /etc/nftables.conf
systemctl enable --now nftables

Ejemplo práctico: un conjunto de reglas básicas (para un servidor Linux)

Archivo /etc/nftables.conf sugerido que utiliza la familia Internet Para cubrir tanto IPv4 como IPv6:

table inet filter {
    set allowed_ssh {
        type ipv4_addr; flags timeout;
    }

    chain input {
        type filter hook input priority 0;
        policy drop;

        # loopback
        iif "lo" accept

        # established/related
        ct state established,related accept

        # ICMP/ICMPv6
        ip protocol icmp accept
        ip6 nexthdr ipv6-icmp accept

        # Allow SSH with rate limit & whitelist
        tcp dport 22 ct state new limit rate 3/minute accept
        ip saddr @allowed_ssh accept

        # HTTP/HTTPS
        tcp dport { 80, 443 } ct state new accept

        # DNS
        udp dport 53 accept
        tcp dport 53 accept

        # log and drop others
        counter log prefix "nft-drop: " flags all drop
    }

    chain forward {
        type filter hook forward priority 0; policy drop;
    }

    chain output {
        type filter hook output priority 0; policy accept;
    }
}

Explicación: Este conjunto de reglas básicas permite el bucle de retorno, las conexiones existentes, SSH (con límite de velocidad), HTTP/HTTPS y DNS, y registra y descarta el resto del tráfico. establecer allowed_ssh Adecuado para incluir direcciones IP en la lista blanca con tiempo de espera.

Gestión de conjuntos y bloques temporales

Crear y administrar conjuntos para listas blancas o negras es muy útil. Ejemplos:

nft add element inet filter allowed_ssh { 203.0.113.5 timeout 1h }
nft list set inet filter allowed_ssh

Para bloquear temporalmente a los atacantes, active una bandera. se acabó el tiempo Cree y agregue direcciones IP para un período de tiempo específico.

NAT, reenvío de puertos y enmascaramiento

Ejemplo de NAT para un VPS que publica múltiples servicios detrás de una IP privada:

table ip nat {
    chain prerouting {
        type nat hook prerouting priority 0;
        tcp dport 2222 dnat to 10.0.0.10:22
        tcp dport 8443 dnat to 10.0.0.20:443
    }

    chain postrouting {
        type nat hook postrouting priority 100;
        oif "eth0" masquerade
    }
}

Nota: En arquitecturas de nube con múltiples direcciones, utilice enmascaramiento o NAT de origen para la salida. Para IPv6, utilice la asignación DNAT o CIDR adecuada.

Cómo contrarrestar los ataques DDoS y SYN

nftables cuenta con funciones de limitación de velocidad y tablas de flujo que pueden utilizarse para mitigar el impacto de los ataques.

# allow limited number of new SYNs per second
tcp flags syn ct state new limit rate 10/second burst 20 accept

# synproxy can be used in extreme cases (kernel feature)
# nftables can match and direct traffic to synproxy or other mitigations

Para ataques a gran escala, la combinación de un servidor cortafuegos (nftables) con un Capa anti-DDoS de red La mejor estrategia es filtrar el tráfico malicioso antes de que llegue al servidor.

Reglas de registro y monitoreo

Herramientas y comandos útiles para la monitorización:

  • Mostrar contadores para cada regla: conjunto de reglas de la lista nft.
  • Habilitar el registro con prefijo y limitación de velocidad:
nft add rule inet filter input tcp dport 22 counter log prefix "ssh-drop: " limit rate 10/minute drop

Otras herramientas: journalctl -f -u nftables, volcado de tcp, tshark, y monitor nft.

Consejos prácticos de seguridad

Algunos consejos prácticos e importantes:

  • Siempre haz copias de seguridad: Antes de la implementación, salida conjunto de reglas de la lista nft Ahorrar.
  • Utilice la carga atómica: nft -f /etc/nftables.conf Carga el archivo de forma atómica.
  • Evite los bloqueos de SSH: Establezca una regla de aceptación temporal para su IP o utilice una consola externa.
  • Script de deshacer automático: Al realizar cambios delicados, configure una reversión automática si no se confirman.

Consejos prácticos para diferentes aplicaciones

Para administradores de WordPress y sitios web

Abra únicamente los puertos esenciales (80/443/22). Utilice límites de velocidad para los formularios de inicio de sesión y XML-RPC, y cree un conjunto de direcciones IP de penalización para prevenir ataques de fuerza bruta. Se recomienda la combinación con CDN y WAF.

Para programadores y DevOps

De la familia Internet Utilice la compatibilidad con IPv4/IPv6 para la implementación simultánea. Almacene las reglas en el sistema de control de versiones y utilice CI/CD para la implementación automatizada. Utilice la carga de archivos y la reversión rápida para probar los cambios.

Para comerciantes (VPS para comercio)

Para obtener la menor latencia, elija una ubicación cercana a los servidores del bróker o de la bolsa. Restrinja el tráfico entrante y saliente a las direcciones IP necesarias y utilice listas blancas para evitar que se cierren los puertos durante las actualizaciones.

Para jugadores (VPS para juegos)

Abre los puertos UDP que requiere el juego y optimiza los tiempos de espera de conntrack para UDP. Si necesitas NAT, usa flowtable para un mejor rendimiento y elige una ubicación con baja latencia.

Para IA y GPU en la nube

Permita el acceso a los puertos de administración (SSH, API de Kubernetes) solo desde direcciones IP específicas. En entornos distribuidos, defina reglas entre nodos y verifique el rendimiento de conntrack. Se recomienda usar una red privada y BGP/VLAN privada para mayor seguridad y alto rendimiento.

Consejos prácticos para la implementación y el mantenimiento.

Algunos consejos prácticos para el proceso de mantenimiento:

  • Realice siempre una copia de seguridad del conjunto de reglas antes de realizar cambios.
  • Uso de reemplazo atómico Con nft -f /etc/nftables.conf.
  • Antes de realizar cambios importantes, establezca una regla de aceptación temporal para la IP de administración.
  • Configure cron o systemd-timer para que se produzca una reversión automática si no se recibe confirmación.

Herramientas y depuración

Herramientas clave para la depuración y la monitorización:

  • conjunto de reglas de la lista nft
  • monitor nft / Rastreo del monitor nft
  • ss -tunlp Para mostrar puertos
  • conntrack -L Del paquete conntrack-tools
  • volcado de tcp O tshark Para la captura de paquetes

Conclusión y recomendaciones prácticas

nftables es una herramienta potente que hace que la administración del firewall sea moderna, rápida y flexible. Utilizando la familia Internet, conjuntos, límite de velocidad y conntrack puedes crear una capa de protección eficaz que sea adecuada para servidores web, comercio VPS, juegos y nube GPU.

Junto con la configuración del servidor, la combinación con servicios de red como CDN, protección anti-DDoS y BGP, que se ofrecen en más de 85 ubicaciones globales, eleva la seguridad y la disponibilidad a un nivel más fiable.

Preguntas frecuentes

También te puede gustar