Lançamento do filtro de pacotes nftables 0.9.3

Publicado lançamento do filtro de pacotes nftables 0.9.3, que se está desenvolvendo como uma substituição ao iptables, ip6tables, arptables e ebtables por meio da unificação das interfaces de filtragem de pacotes para IPv4, IPv6, ARP e pontes de rede. O pacote nftables inclui componentes de filtragem de pacotes que operam no espaço do usuário, enquanto, no nível do kernel, a operação é suportada pelo subsistema nf_tables, que faz parte do núcleo Linux desde a versão 3.13. As alterações necessárias para a operação do nftables 0.9.3 estão incluídas na futura ramificação do núcleo Linux 5.5.

No nível do kernel, é fornecida apenas uma interface geral, independente do protocolo específico, que oferece funções básicas de extração de dados de pacotes, execução de operações sobre dados e controle de fluxo. A lógica de filtragem e os manipuladores específicos de protocolo são compilados em bytecode no espaço do usuário, após o que esse bytecode é carregado no kernel através da interface Netlink e executado em uma máquina virtual especial, semelhante ao BPF (Berkeley Packet Filters). Essa abordagem permite reduzir significativamente o tamanho do código de filtragem que opera no nível do kernel e transferir todas as funções de análise de regras e lógica de trabalho com protocolos para o espaço do usuário.

Principais novidades:

  • Suporte para correspondência de pacotes por tempo. É possível definir tanto intervalos de tempo e datas em que a regra será aplicada quanto configurar a ativação em dias específicos da semana. Também foi adicionada uma nova opção «-T» para exibir o horário epoch em segundos.

    meta time \»2019-12-24 16:00\» — \»2020-01-02 7:00\»
    meta hour \»17:00\» — \»19:00\»
    meta day \»Fri\»

  • Suporte para recuperação e preservação de etiquetas SELinux (secmark).

    ct secmark set meta secmark
    meta secmark set ct secmark

  • Suporte para listas de mapeamento synproxy, permitindo definir mais de uma regra para o backend.

    table ip foo {
    synproxy https-synproxy {
    mss 1460
    wscale 7
    timestamp sack-perm
    }

    synproxy other-synproxy {
    mss 1460
    wscale 5
    }

    chain pre {
    type filter hook prerouting priority raw; policy accept;
    tcp dport 8888 tcp flags syn notrack
    }

    chain bar {
    type filter hook forward priority filter; policy accept;
    ct state invalid,untracked synproxy name ip saddr map { 192.168.1.0/24 : «https-synproxy», 192.168.2.0/24 : «other-synproxy» }
    }
    }

  • A capacidade de remover dinamicamente elementos de conjuntos de set das regras de processamento de pacotes.

    nft add rule … delete @set5 { ip6 saddr . ip6 daddr }

  • Suporte para correspondência VLAN por identificador e protocolo, definidos nos metadados da interface da ponte de rede;

    meta ibrpvid 100
    meta ibrvproto vlan

  • A opção «-t» («—terse») para excluir elementos de conjuntos set ao exibir regras. Ao executar «nft -t list ruleset», será exibido:

    table ip x {
    set y {
    tipo ipv4_addr
    }
    }

    Mas ao usar «nft list ruleset»

    table ip x {
    set y {
    tipo ipv4_addr
    elementos = { 192.168.10.2, 192.168.20.1,
    192.168.4.4, 192.168.2.34 }
    }
    }

  • A capacidade de especificar mais de um dispositivo nas cadeias netdev (funciona apenas com o kernel 5.5) para combinar regras de filtragem padrão.

    adicionar tabela netdev x
    adicionar cadeia netdev x y { \
    tipo filter hook ingress dispositivos = { eth0, eth1 } prioridade 0;
    }

  • A capacidade de adicionar descrições de tipos de dados.

    # nft describe ipv4_addr
    datatype ipv4_addr (endereço IPv4) (basetype inteiro), 32 bits

  • A possibilidade de compilar a interface CLI com a biblioteca linenoise em vez de libreadline.

    .\/configure —with-cli=linenoise

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