Capítulo 6. Começando com nftables
A estrutura nftables
oferece facilidades de classificação de pacotes e é o sucessor designado para as ferramentas iptables
, ip6tables
, arptables
, e ebtables
. Ela oferece inúmeras melhorias em conveniência, características e desempenho em relação às ferramentas de filtragem de pacotes anteriores, mais notadamente:
- tabelas de pesquisa em vez de processamento linear
-
uma estrutura única para ambos os protocolos
IPv4
eIPv6
- regras todas aplicadas atomicamente em vez de buscar, atualizar e armazenar um conjunto completo de regras
-
suporte para depuração e rastreamento no conjunto de regras (
nftrace
) e monitoramento de eventos de rastreamento (na ferramentanft
) - sintaxe mais consistente e compacta, sem extensões específicas de protocolo
- uma API Netlink para aplicações de terceiros
Da mesma forma que iptables
, nftables
utiliza tabelas para o armazenamento de correntes. As cadeias contêm regras individuais para a realização de ações. A ferramenta nft
substitui todas as ferramentas das estruturas anteriores de filtragem de pacotes. A biblioteca libnftnl
pode ser usada para interação de baixo nível com nftables
Netlink API sobre a biblioteca libmnl
.
O efeito dos módulos sobre o conjunto de regras nftables
pode ser observado usando o comando nft
list rule set. Como estas ferramentas adicionam tabelas, correntes, regras, conjuntos e outros objetos ao conjunto de regras nftables
, esteja ciente de que nftables
operações do conjunto de regras, como o comando nft flush ruleset
, podem afetar os conjuntos de regras instalados usando os comandos herdados anteriormente separados.
6.1. Migrando de iptables para nftables
Se você atualizou seu servidor para o RHEL 8 ou sua configuração de firewall ainda usa as regras iptables
, você pode migrar suas regras iptables
para nftables
.
6.1.1. Quando usar firewalld, nftables, ou iptables
A seguir, uma breve visão geral em que cenário você deve utilizar uma das seguintes utilidades:
-
firewalld
: Use o utilitáriofirewalld
para casos simples de uso de firewall. O utilitário é fácil de usar e cobre os casos de uso típico para estes cenários. -
nftables
: Use o utilitárionftables
para criar firewalls complexos e de desempenho crítico, como para toda uma rede. -
iptables
: O utilitárioiptables
no Red Hat Enterprise Linux 8 usa a API do kernelnf_tables
ao invés do back endlegacy
. A APInf_tables
fornece compatibilidade retroativa para que scripts que usam os comandosiptables
ainda funcionem no Red Hat Enterprise Linux 8. Para novos scripts de firewall, a Red Hat recomenda usarnftables
.
Para evitar que os diferentes serviços de firewall influenciem uns aos outros, execute apenas um deles em um host RHEL, e desabilite os outros serviços.
6.1.2. Conversão de regras iptables em regras nftables
O Red Hat Enterprise Linux 8 fornece as ferramentas iptables-translate
e ip6tables-translate
para converter as regras existentes iptables
ou ip6tables
em regras equivalentes para nftables
.
Observe que algumas extensões carecem de suporte de tradução. Se tal extensão existir, a ferramenta imprime a regra não traduzida prefixada com o sinal #
. Por exemplo:
# iptables-translate -A INPUT -j CHECKSUM --checksum-fill nft # -A INPUT -j CHECKSUM --checksum-fill
Além disso, os usuários podem usar as ferramentas iptables-restore-translate
e ip6tables-restore-translate
para traduzir um lixão de regras. Note que antes disso, os usuários podem usar os comandos iptables-save
ou ip6tables-save
para imprimir um dump das regras atuais. Por exemplo:
# iptables-save >/tmp/iptables.dump # iptables-restore-translate -f /tmp/iptables.dump # Translated by iptables-restore-translate v1.8.0 on Wed Oct 17 17:00:13 2018 add table ip nat ...
Para mais informações e uma lista de opções e valores possíveis, digite o comando iptables-translate --help
.