nftables packet filter 0.9.3 nga pagpagawas

gipatik pagpagawas sa packet filter nftables 0.9.3, nag-develop isip kapuli sa mga iptable, ip6table, arptables ug ebtables pinaagi sa paghiusa sa mga packet filtering interface para sa IPv4, IPv6, ARP ug network bridges. Ang nftables package naglakip sa packet filter components nga nagdagan sa user space, samtang ang kernel-level work gihatag sa nf_tables subsystem, nga nahimong bahin sa Linux kernel sukad sa pagpagawas sa 3.13. Ang mga pagbag-o nga gikinahanglan alang sa nftables 0.9.3 nga pagpagawas sa pagtrabaho gilakip sa umaabot nga Linux 5.5 kernel branch.

Ang lebel sa kernel naghatag lamang ug usa ka generic nga protocol-independent nga interface nga naghatag ug sukaranang mga gimbuhaton alang sa pagkuha sa datos gikan sa mga pakete, paghimo sa mga operasyon sa datos, ug pagkontrol sa dagan. Ang filtering logic mismo ug ang protocol-specific nga mga handler gihugpong ngadto sa bytecode sa user space, human niini kini nga bytecode gikarga ngadto sa kernel gamit ang Netlink interface ug gipatuman sa usa ka espesyal nga virtual machine nga nagpahinumdom sa BPF (Berkeley Packet Filters). Kini nga pamaagi nagtugot kanimo nga makunhuran ang gidak-on sa code sa pagsala nga nagdagan sa lebel sa kernel ug ibalhin ang tanan nga mga gimbuhaton sa mga lagda sa pag-parse ug lohika alang sa pagtrabaho kauban ang mga protocol sa wanang sa gumagamit.

Panguna nga mga inobasyon:

  • Suporta alang sa pagpares sa mga pakete sa oras. Mahimo nimong itakda ang mga han-ay sa oras ug petsa kung diin ang lagda ma-trigger, ug i-configure ang pag-trigger sa indibidwal nga mga adlaw sa semana. Nagdugang usab usa ka bag-ong kapilian nga "-T" aron ipakita ang epochal nga oras sa mga segundo.

    meta time \Β»2019-12-24 16:00\" β€” \Β»2020-01-02 7:00\"
    meta oras \"17:00\" - \"19:00\"
    meta day \"Biy\"

  • Suporta alang sa pagbawi ug pagtipig sa mga marka sa SELinux (secmark).

    ct secmark nagbutang sa meta secmark
    meta secmark set ct secmark

  • Suporta alang sa mga lista sa mapa sa synproxy, nga nagtugot kanimo sa paghubit sa labaw sa usa ka lagda matag backend.

    lamesa ip foo {
    synproxy https-synproxy {
    mss 1460
    wscale 7
    timestamp sako-perm
    }

    synproxy lain-synproxy {
    mss 1460
    wscale 5
    }

    kadena pre {
    tipo sa filter hook prerouting priority nga hilaw; pagdawat sa palisiya;
    tcp dport 8888 tcp flags syn notrack
    }

    chain bar {
    type filter hook forward priority filter; pagdawat sa palisiya;
    ct state invalid, untracked synproxy name ip saddr map { 192.168.1.0/24 : β€œhttps-synproxy”, 192.168.2.0/24 : β€œother-synproxy” }
    }
    }

  • Ang abilidad sa dinamikong pagtangtang sa mga set nga elemento gikan sa mga lagda sa pagproseso sa packet.

    nft add rule ... delete @set5 { ip6 saddr . ip6 dadr}

  • Suporta alang sa VLAN mapping pinaagi sa ID ug protocol nga gihubit sa network bridge interface metadata;

    meta ibrpvid 100
    meta ibrvproto vlan

  • Opsyon nga "-t" ("--terse") aron dili iapil ang mga elemento sa set set kung magpakita sa mga lagda. Ang pagpadagan sa "nft -t list ruleset" magpagawas:

    lamesa ip x {
    set y {
    type ipv4_addr
    }
    }

    Ug uban sa "nft list ruleset"

    lamesa ip x {
    set y {
    type ipv4_addr
    elemento = {192.168.10.2, 192.168.20.1,
    192.168.4.4, 192.168.2.34 }
    }
    }

  • Abilidad sa pagpiho labaw pa sa usa ka device sa netdev kadena (motrabaho lamang uban sa kernel 5.5) sa paghiusa sa komon nga mga lagda sa pagsala.

    idugang ang lamesa netdev x
    idugang ang kadena netdev x y { \
    type filter hook ingress devices = { eth0, eth1 } priority 0;
    }

  • Abilidad sa pagdugang mga paghubit sa mga tipo sa datos.

    # nft naghulagway sa ipv4_addr
    datatype ipv4_addr (IPv4 address) (basetype integer), 32 bits

  • Abilidad sa paghimo ug CLI interface sa linenoise library imbes sa libreadline.

    ./configure --with-cli=linenoise

Source: opennet.ru

Idugang sa usa ka comment