ืคืืจืกืื ืืืืืจืช ืืกื ื ืืื ืืช nftables 1.0.6, ืืืืืืช ืืืฉืงื ืกืื ืื ืื ืืช ืขืืืจ IPv4, IPv6, ARP ืืืฉืจื ืจืฉืช (ืฉืืืจืชื ืืืืืืฃ iptables, ip6table, arptables ื-ebtables). ืืืืืช nftables ืืืืืช ืจืืืื ืืกื ื ืื ืืช ืืคืืขืืื ืืืื ืืืฉืชืืฉ, ืืขืื ืฉืจืืช ืืืืื ืืกืืคืงืช ืขื ืืื ืชืช-ืืืขืจืืช nf_tables, ืฉืืืืชื ืืืง ืืืืืช ืืื ืืงืก ืืื ืืจืกื 3.13. ืืจืืช ืืงืจื ื, ืืกืืคืง ืจืง ืืืฉืง ืื ืจื ืืืชื ืชืืื ืืคืจืืืืงืื ืืืกืคืง ืคืื ืงืฆืืืช ืืกืืกืืืช ืืืืืืฅ ื ืชืื ืื ืืื ืืช, ืืืฆืืข ืคืขืืืืช ืขื ื ืชืื ืื ืืฉืืืื ืืืจืืื.
ืืืื ืืกืื ืื ืขืฆืื ืืืืืคืืื ืืกืคืฆืืคืืื ืืคืจืืืืงืื ืืืจืืืื ืืชืื bytecode ืฉื ืืจืื ืืืฉืชืืฉ, ืืืืืจ ืืื ืงืื ืืืช ืื ื ืืขื ืืชืื ืืืืื ืืืืฆืขืืช ืืืฉืง Netlink ืืืืืฆืข ืืงืจื ื ืืืืื ื ืืืจืืืืืืช ืืืืืืช ืืืืื ื-BPF (Berkeley Packet Filters). ืืืฉื ืื ืืืคืฉืจืช ืืืงืืื ืืฉืืขืืชืืช ืืช ืืืื ืงืื ืืกืื ืื ืืคืืขื ืืจืืช ืืงืจื ื ืืืืขืืืจ ืืช ืื ืืคืื ืงืฆืืืช ืฉื ืืืงื ืื ืืชืื ืืืืืืืื ืฉื ืขืืืื ืขื ืคืจืืืืงืืืื ืืืจืื ืืืฉืชืืฉ.
ืฉืื ืืืื ืขืืงืจืืื:
- ืืืืคืืืืืืฆืืืช ืืืืืื ืื ืงืจืืช ืืขืช ืฆืืื ืืืคืฉืจืืช "-o/--optimize", ืืืืืจื ืืจืืื ืืืืืืืืช ืฉื ืืืืื ืขื ืืื ืฉืืืืื ืืืืจืชื ืืจืฉืืืืช ืืคืืช ื-ืกื. ืืืืืื, ืืืืืื ืื # cat ruleset.nft table ip x { chain y { type filter hook input priority filter; ืืจืืืช ืืืื ืืืช; meta iifname eth1 ip saddr 1.1.1.1 ip daddr 2.2.2.3 ืงืื meta iifname eth1 ip saddr 1.1.1.2 ip daddr 2.2.2.4 ืงืื meta iifname eth1 ip saddr 1.1.1.2 ip ืกืddr 2.2.3.0 ืงืื ืขื. 24 .1 ip daddr 1.1.1.2-2.2.4.0 accept meta iifname eth2.2.4.10 ip saddr 2 ip daddr 1.1.1.3 accept } } ืืืืจ "nft -o -c -f ruleset.nft" ืืืืจ ืืกื ืืื: ืืืงืื. nft:2.2.2.5:4-17: meta iifname eth74 ip saddr 1 ip daddr 1.1.1.1 accept ruleset.nft:2.2.2.3:5-17: meta iifname eth74 ip saddr 1 ip daddr 1.1.1.2.nft: accept ruleset 2.2.2.4:6-17: meta iifname eth77 ip saddr 1 ip daddr 1.1.1.2/2.2.3.0 accept ruleset.nft:24:7-17: meta iifname eth83 ip saddr 1 ip daddr 1.1.1.2-2.2.4.0. accept ruleset.nft:2.2.4.10:8-17: meta iifname eth74 ip saddr 2 ip daddr 1.1.1.3 accept into: iifname . ip saddr . ip daddr { eth2.2.2.5. 1. 1.1.1.1, eth2.2.2.3 . 1. 1.1.1.2, eth2.2.2.4 . 1. 1.1.1.2/2.2.3.0, eth24 . 1. 1.1.1.2-2.2.4.0, eth2.2.4.10 . 2. 1.1.1.3 } ืงืื
- ืืื ืืืืคืืืืืืฆืื ืืืื ืื ืืจืื ืืืืื ืฉืืืจ ืืฉืชืืฉืื ื-setlists ืคืฉืืืื ืืฆืืจื ืงืืืคืงืืืช ืืืชืจ, ืืืื: # cat ruleset.nft table ip filter { chain input { type filter hook input priority filter; ืืจืืืช ืืืื ืืืช; iifname "lo" accept ct state fixed,related accept comment "In traffic we origin, we trust" iifname "enp0s31f6" ip saddr { 209.115.181.102, 216.197.228.230 } ip daddr 10.0.0.149 udp sport 123 udp32768 iifname "enp65535s0f31" ip saddr { 6, 64.59.144.17} ip daddr 64.59.150.133 udp sport 10.0.0.149 udp dport 53-32768 ืงืื } } ืืืืจ ืืคืขืืช "c-ft" ืืืืื ืื - ft ืืืื like this : ruleset.nft:65535:6-22: iifname "enp149s0f31" ip saddr { 6, 209.115.181.102 } ip daddr 216.197.228.230 udp sport 10.0.0.149 dnft.123 ืงืื ืืืงืื 32768 dnft.65535 7 22 : iifname "enp143s0f31" ip saddr { 6, 64.59.144.17 } ip daddr 64.59.150.133 udp sport 10.0.0.149 udp dport 53-32768 accept into: iifname. ip saddr . ip daddr . udp ืกืคืืจื. udp dport {enp65535s0f31. 6 . 209.115.181.102 . 10.0.0.149 . 123-32768, enp65535s0f31 . 6 . 216.197.228.230 . 10.0.0.149 . 123-32768, enp65535s0f31 . 6. 64.59.144.17 . 10.0.0.149 . 53-32768, enp65535s0f31 . 6. 64.59.150.133 . 10.0.0.149 . 53-32768 } ืงืื
- ืคืชืจ ืืขืื ืขื ืืฆืืจืช ืงืื ืืชืื ืืืืืื ืืจืืืืื ืืืฉืชืืฉืื ืืกืืืื ืืขืื ืงืฆื ืฉืื ื, ืืืื IPv4 (ืื ืืืื ืจืฉืช) ืืืื ืกืืื (ืื ืืืื ืืขืจืืช). table ip x { map w { typeof ip saddr . ืืื ืกืืื: ืจืืืื ืืื ื ืืจืืืื ืคืกืง ืืื ืืืืื = {127.0.0.1-127.0.0.4. 0x123434-0xb00122 : ืงืื, 192.168.0.10-192.168.1.20 . 0x0000aa00-0x0000aaff : accept, } } chain k { type filter hook input priority filter; ืืจืืืช ืืืื ืืืช; ip saddr. ืืื ืกืืื vmap @w } }
- ืืืคืืื ืคืจืืืืงืื ื ืืืจืื ืืฉืืคืจืื ืืขืช ืฉืืืืฉ ืืืืืืืื ืืืืืืื, ืืืืืื: meta l4proto 91 @th,400,16 0x0 accept
- ืชืืงื ื ืืขืืืช ืขื ืืคืขืืช ืืืืื ืืืจืืืืื: ืืืกืฃ ืืื xy tcp sport { 3478-3497, 16384-16387 } counter accept
- ื-API ืฉื JSON ืฉืืคืจ ืืื ืืชืืื ืืืืืืืื ืืจืฉืืืืช ืกื ืืืคืืช.
- ืืืจืืืืช ืืกืคืจืืืช nftables python, ืืืชืจ ืืืขืื ืขืจืืืช ืืืืื ืืขืืืื ืืืฆื ืฆ'ืง ("-c") ืื ืืกืคื ืชืืืื ืืืืืจืช ืืฉืชื ื ืืืฆืื ื.
- ืืืกืคืช ืืขืจืืช ืืืชืจืช ืืืืื ืืื ืฉื ืกื-ืืืกืืื.
- ืืืชืจ ืืฆืืื ืขืจื ืืคืก ื-byte ratelimit.
ืืงืืจ: OpenNet.ru