Lançamento do filtro de pacotes nftables 1.0.1

Foi lançado o filtro de pacotes nftables 1.0.1, unificando as interfaces de filtragem de pacotes para IPv4, IPv6, ARP e pontes de rede (destinado a substituir iptables, ip6tables, arptables e ebtables). As mudanças necessárias para o funcionamento do lançamento do nftables 1.0.1 estão incluídas no núcleo Linux 5.16-rc1.

O pacote nftables inclui componentes do filtro de pacotes que operam no espaço do usuário, enquanto a funcionalidade no nível do núcleo é assegurada pelo subsistema nf_tables, que faz parte do núcleo do Linux a partir da versão 3.13. No nível do núcleo, é fornecida apenas uma interface geral, independente de protocolo específico, que oferece funções básicas para a extração de dados de pacotes, execução de operações sobre dados e controle de fluxo.

As regras de filtragem e os manipuladores específicos de protocolos são compilados em bytecode no espaço do usuário, após o que esse bytecode é carregado no núcleo por meio da interface Netlink e executado no núcleo em uma máquina virtual, semelhante ao BPF (Berkeley Packet Filters). Essa abordagem permite reduzir significativamente o tamanho do código de filtragem que opera no nível do núcleo e deslocar todas as funções de análise de regras e lógica de operação com protocolos para o espaço do usuário.

Principais novidades:

  • Reduzido o consumo de memória ao carregar grandes listas set e map.
  • Aumentada a velocidade de reinicialização das listas set e map.
  • Aumentada a velocidade de saída de tabelas e cadeias favoritas em grandes conjuntos de regras. Por exemplo, o tempo de execução do comando "nft list ruleset" para exibir um conjunto de regras com 100 mil linhas é de 3,049 segundos, enquanto a saída apenas das tabelas nat e filter ("nft list table nat", "nft list table filter") é reduzida para 1,969 e 0,697 segundos.
  • Aumentada a velocidade de execução de consultas com a opção "--terse" ao processar regras com grandes listas set e map.
  • Foi fornecida a possibilidade de filtrar tráfego da cadeia "egress", processada no mesmo nível que o manipulador egress na cadeia netdev (gancho egress), ou seja, na fase em que o driver recebe o pacote do stack de rede do núcleo. table netdev filter { chain egress { type filter hook egress devices = { eth0, eth1 } priority 0; meta priority set ip saddr map { 192.168.10.2 : abcd:2, 192.168.10.3 : abcd:3 } } }
  • Permitido o mapeamento e a modificação de bytes no cabeçalho e no conteúdo do pacote em um deslocamento especificado. # nft add rule x y @ih,32,32 0x14000000 counter # nft add rule x y @ih,32,32 set 0x14000000 counter

Fonte: opennet.ru

Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS 🔥 Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS | ProHoster