Hola a tod@s, en este post vamos a ver ejemplos de como configurar un firewall con nftables, el esquema de la infraestructura montada sería el siguiente:
Antes de empezar debemos de ejecutar sobre la máquina cortafuegos los siguientes comandos:
apt-get update para actualizar
apt-get install nftables para instalar
systemctl start nftables.service para iniciar el servicio
systemctl status nftables.service para ver el estado del servicio
- Vamos a crear una tabla llamada accesojramos, en la máquina cortafuegos vamos a añadir la tabla indicando, nft add table inet accesojramos con nft list tables podemos ver el listado de tablas:
- Vamos a crear dos cadenas en los hook input y output con política accept por defecto
- En la máquina cortafuegos vamos a añadir las dos cadenas en los hook input y output con política accept por defecto, para ello, introducimos para la entrada nft add chain inet accesojramos entrada { type filter hook input priority 0 \; policy accept \;} y para la salida nft add chain inet accesojramos salida { type filter hook output priority 0 \; policy accept \;}
- Con nft list table inet accesojramos podemos ver la tabla con su contenido:
- Para finalizar, guardamos la configuración y reiniciamos el servicio, nft list ruleset > /etc/nftables.conf y systemctl restart nftables.service
- Bloquear en la entrada el acceso al servidor FTP desde el Cortafuegos
- En la máquina cortafuegos introducimos, nft add rule inet accesojramos entrada ip daddr 10.0.0.10 tcp dport 21 counter reject y con nft list table inet accesojramos podemos ver la tabla con su contenido:
- Para finalizar, guardamos la configuración y reiniciamos el servicio, nft list ruleset > /etc/nftables.conf y systemctl restart nftables.service
- Bloquear en la salida el ping con cualquier IP destino u origen
- En la máquina cortafuegos introducimos, nft add rule inet accesojramos salida ip protocol icmp drop y con nft list table inet accesojramos podemos ver la tabla con su contenido:
- Para finalizar, guardamos la configuración y reiniciamos el servicio, nft list ruleset > /etc/nftables.conf y systemctl restart nftables.service
- Ahora si desde la máquina servidor intentamos hacer un ping a la máquina cortafuegos, podemos ver que no funciona:
- Mostramos toda la configuración indicando el código de cada línea
- Con nft list table inet accesojramos podemos ver toda la configuración realizada y el código de cada línea:
Saludos y espero que os sea de ayuda 😉