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.
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:
- Editamos el archivo
1
vi /etc/nftables/nftables.d/00-mitabla
- Vaciamos la tabla MITABLA
1
nft flush table inet mitabla
- Importamos la nueva
1
nft -f /etc/nftables/nftables.d/00-mitabla
- Guardamos en el archivo de configuración
1
nft list ruleset > /etc/sysconfig/nftables.conf
- 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. 😉