nftables packet filter hoʻokuʻu 0.9.3

paʻi ʻia hoʻokuʻu kānana ʻeke nfttables 0.9.3, e hoʻomohala ana ma ke ʻano he pani no nā iptables, ip6table, arptables a me nā ebtables ma o ka hoʻohui ʻana i nā pākana kānana packet no IPv4, IPv6, ARP a me nā alahaka pūnaewele. Aia ka pūʻolo nftables i nā ʻāpana kānana packet e holo ana ma kahi o ka mea hoʻohana, aʻo ka hana kernel-level i hāʻawi ʻia e ka nf_tables subsystem, i lilo i ʻāpana o ka kernel Linux mai ka hoʻokuʻu ʻana iā 3.13. ʻO nā loli i koi ʻia no ka hoʻokuʻu ʻana o nftables 0.9.3 i ka hana i loko o ka lālā kernel Linux 5.5 e hiki mai ana.

Hāʻawi ka pae kernel i kahi kikowaena kūʻokoʻa protocol generic e hāʻawi i nā hana maʻamau no ka unuhi ʻana i ka ʻikepili mai nā ʻeke, hana i nā hana ʻikepili, a me ka mana kahe. Hoʻopili ʻia ka loiloi kānana ponoʻī a me nā mea hoʻohana kikoʻī protocol i ka bytecode ma kahi o ka mea hoʻohana, a laila hoʻokomo ʻia kēia bytecode i loko o ka kernel me ka hoʻohana ʻana i ka interface Netlink a hoʻokō ʻia i kahi mīkini virtual kūikawā e hoʻomanaʻo ana i ka BPF (Berkeley Packet Filters). ʻO kēia ala e hiki ai iā ʻoe ke hōʻemi nui i ka nui o ke code kānana e holo ana ma ka pae kernel a neʻe i nā hana āpau o nā lula parsing a me nā loiloi no ka hana ʻana me nā protocols i loko o kahi mea hoʻohana.

Nā hana hou nui:

  • Kākoʻo no ka hoʻohālikelike ʻana i nā ʻeke ma ka manawa. Hiki iā ʻoe ke wehewehe i nā pae manawa a me nā lā kahi e hoʻomaka ai ka lula, a hoʻonohonoho i ka hoʻomaka ʻana i nā lā pākahi o ka pule. Hoʻohui pū i kahi koho hou "-T" e hōʻike i ka manawa epochal i kekona.

    manawa meta \»2019-12-24 16:00\" — \»2020-01-02 7:00\"
    hola meta \"17:00\" - \"19:00\"
    lā meta \"Palima\"

  • Kākoʻo no ka hoʻihoʻi ʻana a me ka mālama ʻana i nā māka SELinux (secmark).

    ct secmark hoʻonoho meta secmark
    meta secmark hoʻonohonoho ct secmark

  • Kākoʻo no nā papa inoa palapala ʻāina synproxy, e ʻae iā ʻoe e wehewehe ʻoi aku ma mua o hoʻokahi lula no kēlā me kēia hope.

    papa ip foo {
    synproxy https-synproxy {
    mss 1460
    wscale 7
    ʻeke ʻeke-perm
    }

    synproxy other-synproxy {
    mss 1460
    wscale 5
    }

    kaulahao mua {
    ʻano kānana hook prerouting priority maka; ʻae i nā kulekele;
    tcp dport 8888 tcp hae syn notrack
    }

    kaulahao kaula {
    ʻano kānana hook i mua kānana kānana; ʻae i nā kulekele;
    ʻAʻole kūpono ʻo ct state, untracked synproxy name ip saddr map { 192.168.1.0/24 : “https-synproxy”, 192.168.2.0/24 : “other-synproxy” }
    }
    }

  • ʻO ka hiki ke hoʻoneʻe ikaika i nā mea i hoʻonohonoho ʻia mai nā lula kaʻina hana packet.

    nft hoʻohui lula ... holoi @set5 { ip6 saddr . ip6 papa}

  • Kākoʻo no ka palapala palapala VLAN e ka ID a me ka protocol i wehewehe ʻia ma ka metadata interface alahaka pūnaewele;

    meta ibrpvid 100
    meta ibrvproto vlan

  • Koho "-t" ("--terse") e kāpae i nā mea o nā pūʻulu hoʻonohonoho i ka wā e hōʻike ana i nā lula. Ke holo nei "nft -t list ruleset" e puka mai:

    papa ip x {
    hoʻonoho y {
    ʻano ipv4_addr
    }
    }

    A me "nft list ruleset"

    papa ip x {
    hoʻonoho y {
    ʻano ipv4_addr
    mau mea = { 192.168.10.2, 192.168.20.1,
    192.168.4.4, 192.168.2.34 }
    }
    }

  • Hiki ke kuhikuhi i nā mea ʻoi aku ma mua o hoʻokahi mea ma nā kaulahao netdev (hana wale me ka kernel 5.5) e hoʻohui i nā lula kānana maʻamau.

    hoʻohui i ka pākaukau netdev x
    hoʻohui i ke kaulahao netdev xy { \
    ʻano kānana hoʻokomo mea hoʻokomo = { eth0, eth1 } mea nui 0;
    }

  • Hiki ke hoʻohui i nā wehewehe o nā ʻano ʻikepili.

    #nft wehewehe ipv4_addr
    ʻano ʻikepili ipv4_addr (helu helu IPv4) (integer basetype), 32 mau ʻāpana

  • Hiki ke kūkulu i kahi kikowaena CLI me ka waihona linenoise ma kahi o ka libreadline.

    ./configure --with-cli=linenoise

Source: opennet.ru

Pākuʻi i ka manaʻo hoʻopuka