Consulte a man page do Nftables para ver a sintaxe básica dos comandos no terminal para adicionar, deletar, renomear, etc:
Man page of NFT
Exemplos:
# nft add rule filter input ip saddr { 10.0.0.0/8, 192.168.0.0/16 } tcp dport { 22, 443 } accept
# nft add set ip filter blackhole "{ type ipv4_addr; flags timeout; size 65536; }"
# nft create chain nat prerouting { type nat hook prerouting priority 0; }
# nft add chain nat prerouting { type nat hook prerouting priority 0; }
# nft delete rule inet filter input handle 5
Nas referências e no link logo abaixo temos exemplos de arquivos nftables.conf prontos para estudo ou para serem usados se se adequarem ao seu ambiente:
Nftables Examples
Bônus
Habilitando/desabilitando no kernel algumas proteções extras
Verifique o caminho correto no teu sistema
Linux, procure pelo arquivo com:
# find / -type f -name sysctl.conf
Edite o arquivo /etc/sysctl.conf (Debian e derivados) e descomente as seguintes linhas:
# Enable IP spoofing protection, turn on Source Address Verification
net.ipv4.conf.default.rp_filter = 1
net.ipv4.conf.all.rp_filter = 1
# Enable TCP SYN Cookie Protection
net.ipv4.tcp_syncookies = 1
# Disable ICMP Redirect Acceptance
net.ipv4.conf.all.accept_redirects = 0
net.ipv6.conf.all.accept_redirects = 0
# Do not send ICMP redirects (we are not a router, não somos um roteador)
net.ipv4.conf.all.send_redirects = 0
Somente descomente se o servidor não faz roteamento (NAT)
# Do not accept IP source route packets (we are not a router)
net.ipv4.conf.all.accept_source_route = 0
net.ipv6.conf.all.accept_source_route = 0
Somente descomente se o servidor não faz roteamento (NAT)
# Log Spoofed Packets, Source Routed Packets, Redirect Packets
net.ipv4.conf.all.log_martians = 1
Caso quiser acrescente as linhas abaixo no final do arquivo, se não tiver:
# Enable ignoring broadcasts request (Ignora solicitação de transmissão. Quando um pacote é enviado para um IP da rede, por exemplo, 192.168.1.255 de uma máquina da rede local, esse pacote pode ser entregue a todas as máquinas dessa rede, então desabilitamos o broadcast habilitando o "ignore_broadcast" para evitar tal comportamento)
net.ipv4.icmp_echo_ignore_broadcasts = 1
# Enable ignoring ping request (Ignora ping)
net.ipv4.icmp_echo_ignore_all = 1
* 1 habilita e 0 desabilita.
Em sendo um framework, o Nftables dá uma margem maior para que comecem a aparecer interfaces gráficas para ele.
O Firewalld da Red Hat em 2018 deu suporte para usar o Nftables como backend da sua GUI (Interface Gráfica).
Referência:
https://firewalld.org/2018/07/nftables-backend
O nftfw é um pacote Debian para o Nftables.
O OpenSnitch a partir da versão 1.4.0 deu suporte ao Nftables.
O OpenSnitch é composto por um daemon (escrito em Go) e uma GUI (Interface gráfica em PyQt5), sendo que um ícone de bandeja também está disponível, o qual você pode usar para abrir a GUI do OpenSnitch, desabilitar o firewall ou fechá-lo.
Referência:
https://github.com/evilsocket/opensnitch
Com a palavra, a
Alexa Bolada:
"Embora o Nftables possa ser configurado por linha de comando, atualmente não há uma interface gráfica oficial para o Nftables.
No entanto, existem algumas ferramentas de terceiros que oferecem uma interface gráfica para o Nftables, como o Nftables Web Interface (nftweb) e o Nftables Firewall Configuration Tool (nft-fw).
Essas ferramentas podem ser úteis para usuários que preferem uma interface gráfica para gerenciar suas regras de firewall.
No entanto, é importante lembrar que essas ferramentas de terceiros podem não ser tão completas quanto a linha de comando e podem não ter suporte oficial.
Por isso, é sempre importante ter um conhecimento sólido do Nftables e suas regras para garantir uma configuração adequada e segura do firewall."
Referências