Inicio NfTables
Entrada
Cancelar

NfTables

nftables

INTRODUCCIÓN

Hoy vamos a hablar un poquito de nftables, tambien llamado el sucesor de iptables. RHEL 8 aconseja su uso para entornos complejos y críticos.

Documentación oficial RHEL8

Nftables se basa en tablas 😉 y tiene un archivo de configuración que podriamos llamarlo la piedra angular del servicio ubicado en /etc/sysconfig y llamado nftables.conf

Como bien indica la documentación, se aconseja el uso para entornos complejos asi que debemos gestionar las tablas de manera individual, usando el archivo mencionado antes para solamente guardar la configuración.

DESARROLLO

Para comenzar a usar nftables tenemos que crear la estructura de las tablas en cuestion.

Vamos a crear una tabla llamada mitabla

1
nft add table inet mitabla

Seguidamente vamos a crear las 3 cadenas (Input, Output y Forward)

1
2
3
nft add chain inet mitabla input '{type filter hook input priority filter;}'
nft add chain inet mitabla output '{type filter hook output priority filter;}'
nft add chain inet mitabla forward '{type filter hook forward priority filter;}'

Esto es la estructura base, ahora es momento de ir añadiendo las diferentes reglas.

Un ejemplo de Input

1
nft add rule inet mitabla input ip saddr "ip_remota" ip daddr "ip_local" tcp/udp dport "puerto" accept

Un ejemplo de Output

1
nft add rule inet mitabla output ip saddr "ip_local" ip daddr "ip_remota" tcp/udp dport "puerto" accept

Un detalle a tener en cuenta, es que podemos añadir reglas con el nombre del equipo en vez de usar la ip, pero nftables al final cambiará esa linea y usará la ip.

Una vez tengamos añadidas todas las reglas de la tabla MITABLA procedemos primero a guardar esa tabla en un archivo y luego a actualizar el archivo de configuracion.

1
2
3
nft list table inet mitabla > /etc/nftables/nftables.d/00-mitabla

nft list ruleset > /etc/sysconfig/nftables.conf

RECOMENDACIÓN

Si en un futuro necesitamos editar o añadir algún parámetro en esta tabla, el procedimiento seria el siguiente:

  1. Editamos el archivo
    1
    
    vi /etc/nftables/nftables.d/00-mitabla
    
  2. Vaciamos la tabla MITABLA
    1
    
    nft flush table inet mitabla
    
  3. Importamos la nueva
    1
    
    nft -f /etc/nftables/nftables.d/00-mitabla
    
  4. Guardamos en el archivo de configuración
    1
    
    nft list ruleset > /etc/sysconfig/nftables.conf
    
  5. Para comprobar que los datos estan correctos, reiniciamos el servicio
    1
    
    systemctl restart nftables
    

    y comprobamos que los cambios están persistentes

    1
    
    nft list table inet mitabla
    

    De esta manera, tenemos organizadas las reglas por tablas en la carpeta del ejemplo /etc/nftables/nftables.d y podemos ir importando lo que vayamos necesitando.

Espero que haya sido de utilidad. 😉

Esta entrada está licenciada bajo CC BY 4.0 por el autor.