Saltar al contenido

CyberSkills – Tutoriales de Seguridad y Servidores

Tutorial de Instalación y Configuración de nftables en Ubuntu Server 24.04.3 LTS

Tutorial de Instalación y Configuración de nftables en Ubuntu Server 24.04.3 LTS

En este tutorial, aprenderemos a instalar y configurar nftables, el sucesor de iptables, en un servidor Ubuntu Server 24.04.3 LTS. nftables proporciona un marco más flexible y eficiente para la filtrado de paquetes y la gestión del firewall.

1. Introducción a nftables

nftables es el sistema de filtrado de paquetes de próxima generación en Linux. Ofrece una sintaxis más sencilla y un rendimiento mejorado en comparación con iptables. Permite definir reglas de firewall de manera más lógica y estructurada.

2. Instalación de nftables

Ubuntu Server 24.04.3 LTS ya incluye nftables por defecto. Sin embargo, es una buena práctica asegurarse de que esté instalado y actualizado.
sudo apt update
sudo apt install nftables

3. Configuración Básica de nftables

Antes de empezar, es crucial entender que nftables funciona con conjuntos de reglas. Vamos a crear un archivo de configuración para nuestras reglas.

3.1. Limpiar Reglas Existentes (Opcional)

Si tienes reglas de iptables o nftables preexistentes, puedes limpiarlas para empezar desde cero. Ten cuidado al ejecutar estos comandos, ya que podrían desconectarte del servidor si no tienes un plan de recuperación.
sudo systemctl stop nftables
sudo nft flush ruleset
sudo systemctl start nftables

3.2. Crear el Archivo de Configuración

Crearemos un archivo de configuración en /etc/nftables.conf. Este archivo contendrá todas nuestras reglas.
sudo nano /etc/nftables.conf
A continuación, se muestra una configuración básica que permite SSH en el puerto 1422, tráfico saliente y bloquea el resto.
#!/usr/sbin/nft -f

flush ruleset

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

        # Permitir tráfico de loopback
        iif "lo" accept

        # Permitir conexiones ya establecidas y relacionadas
        ct state established,related accept

        # Permitir SSH en el puerto 1422
        tcp dport 1422 accept

        # Bloquear todo lo demás (política por defecto es drop)
    }

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

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

        # Permitir todo el tráfico saliente
    }
}
Guarda y cierra el archivo (Ctrl+X, Y, Enter).

3.3. Cargar las Reglas

Para cargar las reglas que acabamos de definir, ejecuta:
sudo nft -f /etc/nftables.conf

3.4. Habilitar el Servicio nftables

Para que las reglas se carguen automáticamente al reiniciar el servidor, habilita el servicio nftables:
sudo systemctl enable nftables
sudo systemctl start nftables

4. Integración con Fail2Ban

Fail2Ban es una herramienta que escanea archivos de log en busca de intentos de autenticación fallidos y bloquea las direcciones IP de los atacantes. Podemos configurarlo para trabajar con nftables.

4.1. Instalación de Fail2Ban

sudo apt install fail2ban

4.2. Configuración de Fail2Ban para nftables

Crea un archivo de configuración local para Fail2Ban:
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
sudo nano /etc/fail2ban/jail.local
Dentro de jail.local, asegúrate de que la acción predeterminada use nftables. Busca la línea banaction y configúrala así:
banaction = nftables-multiport
También, configura la sección [sshd] para que use el puerto 1422:
[sshd]
enabled = true
port = 1422
logpath = %(sshd_log)s
backend = %(sshd_backend)s
Guarda y cierra el archivo.

4.3. Reiniciar Fail2Ban

sudo systemctl restart fail2ban

5. Persistencia de Reglas

Las reglas de nftables se cargan desde /etc/nftables.conf. Asegúrate de que este archivo contenga siempre la configuración deseada.

6. Hardening Adicional

  • Actualizaciones Regulares: Mantén tu sistema actualizado con sudo apt update && sudo apt upgrade.
  • Deshabilitar Servicios Innecesarios: Deshabilita cualquier servicio que no sea esencial para el funcionamiento del servidor.
  • Auditoría de Logs: Revisa regularmente los logs del sistema (/var/log/auth.log, /var/log/syslog) en busca de actividades sospechosas.
  • Autenticación por Clave SSH: Configura la autenticación por clave SSH y deshabilita el inicio de sesión por contraseña para mayor seguridad.

Conclusión

Con nftables y Fail2Ban configurados correctamente, tu servidor Ubuntu Server 24.04.3 LTS estará mucho más seguro contra ataques externos. Recuerda siempre probar tus reglas de firewall en un entorno controlado antes de aplicarlas en producción.

Únete a la conversación

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *