fbpx
Pesquisar

Nftables: A Evolução do Iptables e Exemplos de Utilização

O nftables é a ferramenta de firewall e filtragem de pacotes do kernel Linux, que sucedeu o tradicional iptables. Projetado para ser mais flexível e eficiente, o nftables oferece uma sintaxe simplificada, desempenho otimizado e funcionalidades avançadas. Neste artigo, vamos explorar a evolução do iptables para o nftables e apresentar exemplos práticos de uso, destacando as melhorias trazidas por essa nova ferramenta.

image 12
NFTables

O Que é o Nftables?

O nftables é um framework para manipulação de pacotes de rede que foi introduzido no kernel do Linux na versão 3.13, em 2014. Ele é a evolução do sistema anterior, o iptables, e traz uma série de melhorias e novos recursos, incluindo:

  • Sintaxe Simplificada: O nftables apresenta uma sintaxe mais amigável e concisa em comparação ao iptables, facilitando a configuração e manutenção das regras de firewall.
  • Performance: Melhorias no desempenho, já que o nftables utiliza uma única tabela para manipulação de pacotes, em vez de várias tabelas distintas como o iptables.
  • Flexibilidade: Suporte a regras e estruturas mais complexas, como sets e maps, tornando-o mais flexível e adaptável a diferentes cenários.
  • Consistência: O nftables unifica a manipulação de regras IPv4, IPv6, ARP e bridges em uma única ferramenta.

Principais Diferenças entre Nftables e Iptables

1. Sintaxe Unificada e Simplificada

Uma das mudanças mais notáveis é a simplificação da sintaxe. Enquanto o iptables requer comandos separados para IPv4 e IPv6, o nftables usa uma sintaxe unificada que funciona para ambas as versões do IP, além de fornecer um conjunto de comandos mais limpo e menos redundante.

2. Uso de Tabelas, Chains e Sets

O nftables utiliza uma estrutura baseada em tabelas, chains e sets para definir as regras de firewall. Isso permite a reutilização de configurações e facilita a administração das regras:

  • Tabelas: Armazenam as regras e objetos relacionados (chains e sets).
  • Chains: Define um ponto específico do fluxo de pacotes (ex: entrada, saída) onde as regras serão aplicadas.
  • Sets: Permitem agrupar endereços IP, portas e outras informações, tornando as regras mais eficientes e fáceis de gerenciar.

3. Flexibilidade e Desempenho

O uso de sets e maps no nftables permite agrupar e aplicar regras a diversos endereços IP, portas ou interfaces com uma única instrução. Essa abordagem resulta em um processamento de regras mais eficiente e otimizado.

Exemplo de Uso do Nftables

Vamos explorar exemplos práticos para ilustrar a sintaxe e as funcionalidades do nftables. Primeiro, é importante saber que você pode interagir com o nftables por meio do comando nft.

1. Instalação do Nftables

Para começar a utilizar o nftables, ele deve estar instalado no seu sistema Linux. Em distribuições baseadas no Debian (como Ubuntu), você pode instalá-lo com:

sudo apt-get install nftables

Em distribuições como Fedora ou CentOS:

sudo dnf install nftables

2. Criando uma Tabela e Chains

Primeiro, vamos criar uma tabela e adicionar chains (fluxos de pacotes) para definir regras de filtragem:

sudo nft add table inet my_table
sudo nft add chain inet my_table input { type filter hook input priority 0\; }
sudo nft add chain inet my_table output { type filter hook output priority 0\; }
sudo nft add chain inet my_table forward { type filter hook forward priority 0\; }

Neste exemplo, criamos uma tabela chamada my_table no contexto inet, que abrange tanto IPv4 quanto IPv6. Em seguida, adicionamos três chains: input, output e forward, que são os principais pontos onde as regras de firewall podem ser aplicadas.

3. Adicionando Regras de Firewall

Com as chains criadas, podemos agora adicionar regras. Por exemplo, para permitir apenas o tráfego SSH (porta 22) e bloquear todas as outras conexões de entrada:

sudo nft add rule inet my_table input tcp dport 22 accept
sudo nft add rule inet my_table input drop
  • A primeira regra permite conexões TCP na porta 22.
  • A segunda regra (drop) bloqueia todo o restante do tráfego de entrada.

4. Utilizando Sets para IPs ou Portas

Os sets do nftables permitem definir listas de endereços IP, sub-redes, portas e outros elementos, tornando as regras mais eficientes. Por exemplo, para criar um set de IPs e permitir apenas conexões a partir deles:

sudo nft add set inet my_table allowed_ips { type ipv4_addr\; }
sudo nft add element inet my_table allowed_ips { 192.168.1.10, 192.168.1.20 }

sudo nft add rule inet my_table input ip saddr @allowed_ips accept
sudo nft add rule inet my_table input drop
  • O comando add set cria um set chamado allowed_ips que armazenará endereços IPv4.
  • O comando add element adiciona os endereços IP permitidos ao set.
  • A regra seguinte (add rule) permite apenas tráfego de entrada dos endereços IP definidos no set.
  • Finalmente, a regra drop bloqueia todo o restante do tráfego de entrada.

5. Bloqueando IPs com Nftables

Para bloquear um endereço IP específico, podemos simplesmente adicionar uma regra de drop:

sudo nft add rule inet my_table input ip saddr 203.0.113.45 drop

Esse comando bloqueará todas as conexões de entrada provenientes do IP 203.0.113.45.

6. Salvando as Configurações

Para garantir que as regras do nftables sejam mantidas após uma reinicialização do sistema, salve a configuração atual com o comando:

sudo nft list ruleset > /etc/nftables.conf

E então, edite o arquivo de configuração /etc/nftables.conf se precisar realizar ajustes futuros.

7. Limpar as Regras Existentes

Se você deseja limpar todas as regras, chains e tabelas existentes no nftables:

sudo nft flush ruleset

Esse comando removerá todas as configurações atuais, permitindo que você recomece com uma nova configuração.

Conclusão

O nftables traz uma evolução significativa em relação ao iptables, oferecendo uma sintaxe mais limpa, maior flexibilidade e um melhor desempenho. Com recursos avançados, como sets e maps, o nftables permite criar regras de firewall eficientes e gerenciáveis, tornando a configuração de segurança de redes Linux mais poderosa e acessível.

Além disso, a unificação de comandos para IPv4 e IPv6, juntamente com o suporte a scripts e configuração de regras complexas, faz do nftables a ferramenta de escolha para administradores de sistemas que desejam otimizar a segurança de seus servidores e redes.

Conheça nosso Canal do Youtube
Escute Nosso DoluCast
Melhores da Semana