เบเบฒเบเบเปเบญเบเบเบปเบงเบเบญเบ packet nftables 1.0.6 เปเบเปเบเบทเบเบเบฑเบเบเบตเบกเบกเบฒ, unifying packet filtering interfaces เบชเปเบฒเบฅเบฑเบ IPv4, IPv6, ARP เปเบฅเบฐเบเบปเบงเปเบเบทเบญเบเปเบฒเบ (เบกเบตเบเบธเบเบเบฐเบชเบปเบเปเบเบทเปเบญเบเบปเบเปเบเบ iptables, ip6table, arptables เปเบฅเบฐ ebtables). เบเบธเบ nftables เบเบฐเบเบญเบเบกเบตเบญเบปเบเบเบฐเบเบญเบเบเบฒเบเบเบฑเปเบเบเบญเบเปเบเบฑเบเปเบเบฑเบเบเบตเปเบเปเบฒเปเบเบตเบเบเบฒเบเบขเบนเปเปเบเบเบทเปเบเบเบตเปเบเบญเบเบเบนเปเปเบเป, เปเบเบเบฐเบเบฐเบเบตเปเบเบฒเบเปเบฎเบฑเบเบงเบฝเบเปเบเบฅเบฐเบเบฑเบ kernel เปเบกเปเบเบชเบฐเบซเบเบญเบเปเบซเปเปเบเบเบฅเบฐเบเบปเบเบเปเบญเบ nf_tables, เปเบเบดเปเบเปเบเบฑเบเบชเปเบงเบเบซเบเบถเปเบเบเบญเบ Linux kernel เบเบฑเบเบเบฑเปเบเปเบเปเบเบฒเบเบเปเบญเบ 3.13. เบฅเบฐเบเบฑเบ kernel เบชเบฐเบซเบเบญเบเบเบฝเบเปเบเปเบชเปเบงเบเบเบดเบเบเปเปเปเบเบเปเบญเบเบฐเบฅเบฒเบเบเบญเบเปเบเปเบเบเบญเบเบเบปเปเบงเปเบเบเบตเปเบชเบฐเบซเบเบญเบเบซเบเปเบฒเบเบตเปเบเบทเปเบเบเบฒเบเบชเปเบฒเบฅเบฑเบเบเบฒเบเบชเบฐเบเบฑเบเบเปเปเบกเบนเบเบเบฒเบเปเบเบฑเบเปเบเบฑเบ, เบเบฐเบเบดเบเบฑเบเบเบฒเบเบเปเปเบกเบนเบ, เปเบฅเบฐเบเบฒเบเบเบงเบเบเบธเบกเบเบฒเบเปเบซเบผ.
เบเบปเบเบฅเบฐเบเบฝเบเบเบฒเบเบเบฑเปเบเบเบญเบเปเบฅเบฐเบเบปเบงเบเบฑเบเบเบฒเบเบชเบฐเปเบเบฒเบฐเบเบญเบเปเบเปเบเบเบญเบเปเบเปเบเบทเบเบฅเบงเบเบฅเบงเบกเปเบเบปเปเบฒเปเบเปเบ bytecode เปเบเบเบทเปเบเบเบตเปเบเบนเปเปเบเป, เบซเบผเบฑเบเบเบฒเบเบเบฑเปเบ bytecode เบเบตเปเบเบทเบเปเบซเบฅเบเปเบเบปเปเบฒเปเบเปเบ kernel เปเบเบเปเบเปเบเบฒเบเปเบเปเบเบญเบ Netlink เปเบฅเบฐเบเบทเบเบเบฐเบเบดเบเบฑเบเปเบ kernel เปเบเปเบเบทเปเบญเบ virtual เบเบดเปเบชเบเบเบตเปเบฅเบฐเบเบถเบเปเบเบดเบ BPF (Berkeley Packet Filters). เบงเบดเบเบตเบเบฒเบเบเบตเปเบเปเบงเบเปเบซเปเบเปเบฒเบเบชเบฒเบกเบฒเบเบซเบผเบธเบเบฅเบปเบเบขเปเบฒเบเบซเบผเบงเบเบซเบผเบฒเบเบเบญเบเบฅเบฐเบซเบฑเบเบเบฒเบเบเบฑเปเบเบเบญเบเบเบตเปเปเบฎเบฑเบเบงเบฝเบเบขเบนเปเปเบเบฅเบฐเบเบฑเบเปเบเปเบเปเบฅเบฐเบเปเบฒเบเบซเบเปเบฒเบเบตเปเบเบฑเบเบซเบกเบปเบเบเบญเบเบเบปเบเบฅเบฐเบเบฝเบเบเบฒเบเปเบเบเปเบฅเบฐเปเบซเบเบเบปเบเบชเปเบฒเบฅเบฑเบเบเบฒเบเปเบฎเบฑเบเบงเบฝเบเบเบฑเบเปเบเปเบเบเบญเบเปเบเบปเปเบฒเปเบเปเบเบเบทเปเบเบเบตเปเบเบญเบเบเบนเปเปเบเป.
เบเบฒเบเบเปเบฝเบเปเบเบเบเบปเปเบเบเป:
- เบเบปเบงเปเบเบตเปเบกเบเบฐเบชเบดเบเบเบดเบเบฒเบเบเบปเบเบฅเบฐเบเบฝเบ, เปเบญเบตเปเบเบงเปเบฒเปเบกเบทเปเบญเบเบปเบงเปเบฅเบทเบญเบ "-o/-optimize" เบเบทเบเบฅเบฐเบเบธ, เบกเบตเบเบฒเบเบซเบธเปเบกเบซเปเปเบญเบฑเบเบเบฐเปเบเบกเบฑเบเบเบญเบเบเบปเบเบฅเบฐเบเบฝเบเปเบเบเบเบฒเบเบฅเบงเบกเบเบงเบเบกเบฑเบเปเบฅเบฐเบเปเบฝเบเบกเบฑเบเปเบเบปเปเบฒเปเบเปเบเปเบเบเบเบตเปเปเบฅเบฐเบเปเบฒเบเบปเบเบฅเบฒเบเบเบฒเบ. เบเบปเบงเบขเปเบฒเบเปเบเบฑเปเบเบเบปเบเบฅเบฐเบเบฝเบ # cat ruleset.nft เบเบฒเบเบฐเบฅเบฒเบ 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 saddr meta 2.2.3.0eth24. .1 ip daddr 1.1.1.2-2.2.4.0 เบเบญเบกเบฎเบฑเบ meta iifname eth2.2.4.10 ip saddr 2 ip daddr 1.1.1.3 เบเบญเบกเบฎเบฑเบ } } เบซเบผเบฑเบเบเบฒเบเบเบฐเบเบดเบเบฑเบ "nft -o -c -f ruleset.nft" เบเบฐเบเบทเบเบเปเบฝเบเปเบเบฑเบเบเบฑเปเบเบเปเปเปเบเบเบตเป: ruleset . nft:2.2.2.5:4-17: meta iifname eth74 ip saddr 1 ip daddr 1.1.1.1 เบเบญเบกเบฎเบฑเบ ruleset.nft:2.2.2.3:5-17: meta iifname eth74 ip saddr 1 ip daddr 1.1.1.2 เบเบญเบกเบฎเบฑเบเบเบปเบเบฅเบฐเบเบฝเบ.nft. : 2.2.2.4:6-17: meta iifname eth77 ip saddr 1 ip daddr 1.1.1.2/2.2.3.0 เบเบญเบกเบฎเบฑเบ ruleset.nft:24:7-17: meta iifname eth83 ip saddr 1 ip daddr 1.1.1.2. เบเบญเบกเบฎเบฑเบ ruleset.nft:2.2.4.0:2.2.4.10-8: meta iifname eth17 ip saddr 74 ip daddr 2 เบเบญเบกเบฎเบฑเบเปเบเบปเปเบฒเปเบ: iifname . ip saddr. ip daddr { eth1.1.1.3 . 2.2.2.5. 1, eth1.1.1.1 . 2.2.2.3. 1, eth1.1.1.2 . 2.2.2.4. 1/1.1.1.2, eth2.2.3.0 . 24. 1-1.1.1.2, eth2.2.4.0. 2.2.4.10. 2 } เบเบญเบกเบฎเบฑเบ
- optimizer เบเบฑเบเบชเบฒเบกเบฒเบเบเปเบฝเบเบเบปเบเบฅเบฐเบเบฝเบเบเบตเปเบเปเบฒเปเบเปเบเบฑเบเบเบตเบฅเบฒเบเบเบทเปเบเบตเปเบเปเบฒเบเบปเบเปเบงเปเบเปเบฒเบเปเปเบเบปเปเบฒเปเบเปเบเบฎเบนเบเปเบเบเบเบตเปเบซเบเบฒเปเบซเบเปเบ, เบเบปเบงเบขเปเบฒเบเปเบเบฑเปเบ: เบเบปเบเบฅเบฐเบเบฝเบ: # cat ruleset.nft เบเบฒเบเบฐเบฅเบฒเบ ip filter { chain input { type filter hook input priority filter; เบเบฐเปเบเบเบฒเบเบซเบผเบธเบเบฅเบปเบ; iifname "lo" เบเบญเบกเบฎเบฑเบเบฅเบฑเบ ct เบชเปเบฒเบเบเบฑเปเบเบเบถเปเบ, เบเบตเปเบเปเบฝเบงเบเปเบญเบเบเบญเบกเบฎเบฑเบเบเปเบฒเบเบดเบเปเบซเบฑเบ "เปเบเบเบฒเบเบเบฐเบฅเบฒเบเบญเบเบเบตเปเบเบงเบเปเบฎเบปเบฒเบกเบฒเบเบฒเบ, เบเบงเบเปเบฎเบปเบฒเปเบงเปเบงเบฒเบเปเบ" iifname "enp0s31f6" ip saddr { 209.115.181.102, 216.197.228.230 } ip daddr 10.0.0.149 udp 123 เบเบดเบฅเบฒ iifname "enp32768s65535f0" ip saddr { 31, 6 } ip daddr 64.59.144.17 udp sport 64.59.150.133 udp dport 10.0.0.149-53 เบเบญเบกเบฎเบฑเบ } "}" -nftc executing เบเบฐเบเบดเบเบฑเบเบเบฒเบกเบเบปเบเบฅเบฐเบเบฝเบ : ruleset.nft:32768:65535-6: iifname "enp22s149f0" ip saddr { 31, 6 } ip daddr 209.115.181.102 udp sport 216.197.228.230-port10.0.0.149-123 } ip daddr 32768 udp sport 65535-port7-22np. 143 0 :ifname "enp31s6f64.59.144.17" ip saddr { 64.59.150.133, 10.0.0.149 } ip daddr 53 udp sport 32768 udp dport 65535-0 เบเบญเบกเบฎเบฑเบเปเบเบปเปเบฒเปเบ: iifname . ip saddr. ip เบเปเป. เบเบดเบฅเบฒ udp. udp dport { enp31s6f209.115.181.102 . 10.0.0.149. 123. เปเปเป. 32768-65535, enp0s31f6. 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 } เบเบญเบกเบฎเบฑเบ
- เปเบเปเปเบเบเบฑเบเบซเบฒเบเบฑเบเบเบฒเบเบชเปเบฒเบ bytecode เบชเปเบฒเบฅเบฑเบเบเบฒเบเบฅเบงเบกเปเบฅเบเบฐเบเบตเปเบเปเบฒเปเบเปเบเบฐเปเบเบเบเบตเปเบกเบตเบเปเบฒเบชเบฑเปเบ byte เบเบตเปเปเบเบเบเปเบฒเบเบเบฑเบ, เปเบเบฑเปเบ IPv4 (เบเปเบฒเบชเบฑเปเบ byte เปเบเบทเบญเบเปเบฒเบ) เปเบฅเบฐเปเบเบทเปเบญเบเบซเบกเบฒเบ meta (เบเปเบฒเบชเบฑเปเบ byte เบฅเบฐเบเบปเบ). เบเบฒเบเบฐเบฅเบฒเบ ip x { เปเบเบเบเบตเป w { typeof ip saddr . meta mark : verdict flags interval counter elements = { 127.0.0.1-127.0.0.4 . 0x123434-0xb00122 : เบเบญเบกเบฎเบฑเบ, 192.168.0.10-192.168.1.20 . 0x0000aa00-0x0000aaff : เบเบญเบกเบฎเบฑเบ, } } chain k { type filter hook input priority filter; เบเบฐเปเบเบเบฒเบเบซเบผเบธเบเบฅเบปเบ; ip saddr. meta mark vmap @w } }
- เบเบฑเบเบเบธเบเบเบฒเบเบเบฝเบเบเบฝเบเบเบญเบเปเบเบฃเปเบเบเบญเบเบเบตเปเบซเบฒเบเบฒเบเปเบกเบทเปเบญเปเบเปเบชเบณเบเบงเบเบเบดเบ, เบเบปเบงเบขเปเบฒเบ: meta l4proto 91 @th,400,16 0x0 เบเบญเบกเบฎเบฑเบ
- เบเบฑเบเบซเบฒเบเปเบฝเบงเบเบฑเบเบเบฒเบเปเบเบตเบเปเบเปเบเบปเบเบฅเบฐเบเบฝเบเบเบตเปเบกเบตเปเบฅเบเบฐเบซเปเบฒเบเปเบเปเบเบทเบเปเบเปเปเบเปเบฅเปเบง: insert rule x y tcp sport { 3478-3497, 16384-16387 } counter accept
- JSON API เปเบเปเบเบทเบเบเบฑเบเบเบธเบเปเบซเปเบเบตเบเบถเปเบเปเบเบทเปเบญเบฅเบงเบกเปเบญเบปเบฒเบเบฒเบเบชเบฐเปเบฑเบเบชเบฐเปเบธเบเบชเบณเบเบงเบเปเบเบฅเบฒเบเบเบฒเบเบเบตเปเบเบฑเปเบ เปเบฅเบฐเปเบเบเบเบตเป.
- เบเบฒเบเบเบฐเบซเบเบฒเบเปเบเบซเบฒเบซเปเบญเบเบชเบฐเบซเบกเบธเบ python nftables เบญเบฐเบเบธเบเบฒเบเปเบซเปเปเบซเบฅเบเบเบธเบเบเบปเบเบฅเบฐเบเบฝเบเบชเปเบฒเบฅเบฑเบเบเบฒเบเบเบธเบเปเบเปเบเปเบเบฎเบนเบเปเบเบเบเบฒเบเบเบงเบเบชเบญเบ ("-c") เปเบฅเบฐเปเบเบตเปเบกเบเบฒเบเบชเบฐเบซเบเบฑเบเบชเบฐเบซเบเบนเบเบชเปเบฒเบฅเบฑเบเบเปเบฒเบเบดเบเบฒเบกเบเบฒเบเบเบญเบเบเบญเบเบเบปเบงเปเบ.
- เบเบฒเบเปเบเบตเปเบกเบเปเบฒเปเบซเบฑเบเปเบกเปเบเบญเบฐเบเบธเบเบฒเบเปเบซเปเบขเบนเปเปเบเบญเบปเบเบเบฐเบเบญเบเบฅเบฒเบเบเบฒเบเบเบตเปเบเปเบฒเบเบปเบเปเบงเป.
- Byte rate limit เบญเบฐเบเบธเบเบฒเบเปเบซเปเบฅเบฐเบเบธเบเปเบฒเบชเบนเบ.
เปเบซเบผเปเบเบเปเปเบกเบนเบ: opennet.ru