เจชเฉเจเฉเจ เจซเจฟเจฒเจเจฐ nftables 1.0.0 เจฆเฉ เจฐเจฟเจฒเฉเจเจผ เจชเฉเจฐเจเจพเจธเจผเจฟเจค เจเฉเจคเฉ เจเจ เจนเฉ, IPv4, IPv6, ARP เจ เจคเฉ เจจเฉเฉฑเจเจตเจฐเจ เจฌเฉเจฐเจฟเจเจพเจ (iptables, ip6table, arptables เจ เจคเฉ ebtables เจจเฉเฉฐ เจฌเจฆเจฒเจฃ เจฆเจพ เจเจฆเฉเจธเจผ) เจฒเจ เจชเฉเจเฉเจ เจซเจฟเจฒเจเจฐเจฟเฉฐเจ เจเฉฐเจเจฐเจซเฉเจธเจพเจ เจจเฉเฉฐ เจเจเจเฉเฉฑเจ เจเจฐเจจเจพเฅค เจเฉฐเจฎ เจเจฐเจจ เจฒเจ nftables 1.0.0 เจฐเฉเจฒเฉเจเจผ เจฒเจ เจฒเฉเฉเฉเจเจฆเฉเจเจ เจคเจฌเจฆเฉเจฒเฉเจเจ เจจเฉเฉฐ Linux 5.13 เจเจฐเจจเจฒ เจตเจฟเฉฑเจ เจธเจผเจพเจฎเจฒ เจเฉเจคเจพ เจเจฟเจ เจนเฉเฅค เจธเฉฐเจธเจเจฐเจฃ เจธเฉฐเจเจฟเจ เจตเจฟเฉฑเจ เจเฉฑเจ เจฎเจนเฉฑเจคเจตเจชเฉเจฐเจจ เจคเจฌเจฆเฉเจฒเฉ เจเจฟเจธเฉ เจฌเฉเจจเจฟเจเจฆเฉ เจคเจฌเจฆเฉเจฒเฉเจเจ เจจเจพเจฒ เจเฉเฉเฉ เจจเจนเฉเจ เจนเฉ, เจชเจฐ เจเจน เจเฉเจตเจฒ เจฆเจธเจผเจฎเจฒเจต เจธเฉฐเจเฉเจค (เจชเจฟเจเจฒเฉ เจฐเฉเจฒเฉเจเจผ 0.9.9 เจธเฉ) เจตเจฟเฉฑเจ เจธเฉฐเจเจฟเจ เจฆเฉ เจจเจฟเจฐเฉฐเจคเจฐ เจจเจฟเจฐเฉฐเจคเจฐเจคเจพ เจฆเจพ เจจเจคเฉเจเจพ เจนเฉเฅค
nftables เจชเฉเจเฉเจ เจตเจฟเฉฑเจ เจชเฉเจเฉเจ เจซเจฟเจฒเจเจฐ เจญเจพเจ เจธเจผเจพเจฎเจฒ เจนเฉเฉฐเจฆเฉ เจนเจจ เจเฉ เจฏเฉเจเจผเจฐ เจธเจชเฉเจธ เจตเจฟเฉฑเจ เจเฉฑเจฒเจฆเฉ เจนเจจ, เจเจฆเฉเจ เจเจฟ เจเจฐเจจเจฒ เจชเฉฑเจงเจฐ nf_tables เจธเจฌ-เจธเจฟเจธเจเจฎ เจฆเฉเจเจฐเจพ เจฆเจฟเฉฑเจคเจพ เจเจพเจเจฆเจพ เจนเฉ, เจเฉ เจเจฟ 3.13 เจคเฉเจ เจฌเจพเจ เจฆ เจฒเฉเจจเจเจธ เจเจฐเจจเจฒ เจฆเจพ เจนเจฟเฉฑเจธเจพ เจฐเจฟเจนเจพ เจนเฉเฅค เจเจฐเจจเจฒ เจชเฉฑเจงเจฐ 'เจคเฉ, เจธเจฟเจฐเจซ เจเฉฑเจ เจเจฎ เจชเฉเจฐเฉเจเฉเจเฉเจฒ-เจธเฉเจคเฉฐเจคเจฐ เจเฉฐเจเจฐเจซเฉเจธ เจชเฉเจฐเจฆเจพเจจ เจเฉเจคเจพ เจเจพเจเจฆเจพ เจนเฉ เจเฉ เจชเฉเจเฉเจเจพเจ เจคเฉเจ เจกเจพเจเจพ เจเฉฑเจขเจฃ, เจกเฉเจเจพ 'เจคเฉ เจเจพเจฐเจตเจพเจเจเจ เจเจฐเจจ, เจ เจคเฉ เจชเฉเจฐเจตเจพเจน เจจเฉเฉฐ เจจเจฟเจฏเฉฐเจคเจฐเจฟเจค เจเจฐเจจ เจฒเจ เจฌเฉเจจเจฟเจเจฆเฉ เจซเฉฐเจเจธเจผเจจ เจชเฉเจฐเจฆเจพเจจ เจเจฐเจฆเจพ เจนเฉเฅค
เจซเจฟเจฒเจเจฐเจฟเฉฐเจ เจจเจฟเจฏเจฎ เจเฉเจฆ เจ เจคเฉ เจชเฉเจฐเฉเจเฉเจเฉเจฒ-เจตเจฟเจธเจผเฉเจธเจผ เจนเฉเจเจกเจฒเจฐ เจเจชเจญเฉเจเจคเจพ-เจธเจชเฉเจธ เจฌเจพเจเจเจเฉเจก เจตเจฟเฉฑเจ เจเฉฐเจชเจพเจเจฒ เจเฉเจคเฉ เจเจพเจเจฆเฉ เจนเจจ, เจเจฟเจธ เจคเฉเจ เจฌเจพเจ เจฆ เจเจธ เจฌเจพเจเจเจเฉเจก เจจเฉเฉฐ เจจเฉเฉฑเจเจฒเจฟเฉฐเจ เจเฉฐเจเจฐเจซเฉเจธ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจเฉ เจเจฐเจจเจฒ เจตเจฟเฉฑเจ เจฒเฉเจก เจเฉเจคเจพ เจเจพเจเจฆเจพ เจนเฉ เจ เจคเฉ BPF (เจฌเจฐเจเจฒเฉ เจชเฉเจเฉเจ เจซเจฟเจฒเจเจฐ) เจตเจฐเจเฉ เจเฉฑเจ เจตเจฟเจธเจผเฉเจธเจผ เจตเจฐเจเฉเจ เจฒ เจฎเจธเจผเฉเจจ เจตเจฟเฉฑเจ เจเจฐเจจเจฒ เจตเจฟเฉฑเจ เจเจฒเจพเจเจ เจเจพเจเจฆเจพ เจนเฉเฅค เจเจน เจชเจนเฉเฉฐเจ เจเจฐเจจเจฒ เจชเฉฑเจงเจฐ 'เจคเฉ เจเฉฑเจฒ เจฐเจนเฉ เจซเจฟเจฒเจเจฐเจฟเฉฐเจ เจเฉเจก เจฆเฉ เจเจเจพเจฐ เจจเฉเฉฐ เจฎเจนเฉฑเจคเจตเจชเฉเจฐเจจ เจคเฉเจฐ 'เจคเฉ เจเจเจพเจเจฃเจพ เจ เจคเฉ เจชเจพเจฐเจธเจฟเฉฐเจ เจจเจฟเจฏเจฎเจพเจ เจฆเฉ เจธเจพเจฐเฉ เจซเฉฐเจเจธเจผเจจเจพเจ เจ เจคเฉ เจชเฉเจฐเฉเจเฉเจเฉเจฒ เจจเจพเจฒ เจเฉฐเจฎ เจเจฐเจจ เจฆเฉ เจคเจฐเจ เจจเฉเฉฐ เจเจชเจญเฉเจเจคเจพ เจธเจชเฉเจธ เจตเจฟเฉฑเจ เจฒเจฟเจเจพเจฃเจพ เจธเฉฐเจญเจต เจฌเจฃเจพเจเจเจฆเจพ เจนเฉเฅค
เจฎเฉเฉฑเจ เจจเจตเฉเจจเจคเจพเจตเจพเจ:
- เจธเฉเฉฑเจ เจธเฉเจเฉเจเจ เจตเจฟเฉฑเจ "*" เจฎเจพเจธเจ เจคเฉฑเจค เจฒเจ เจธเจฎเจฐเจฅเจจ เจธเจผเจพเจฎเจฒ เจเฉเจคเจพ เจเจฟเจ เจนเฉ, เจเฉ เจเจฟ เจเจฟเจธเฉ เจตเฉ เจชเฉเจเฉเจ เจฒเจ เจธเจผเฉเจฐเฉ เจนเฉเฉฐเจฆเจพ เจนเฉ เจเฉ เจธเฉเฉฑเจ เจตเจฟเฉฑเจ เจชเจฐเจฟเจญเจพเจธเจผเจฟเจค เจนเฉเจฐ เจคเฉฑเจคเจพเจ เจฆเฉ เจ เจงเฉเจจ เจจเจนเฉเจ เจเจเจเจฆเฉ เจนเจจเฅค เจเฉเจฌเจฒ x { เจจเจเจธเจผเจพ เจฌเจฒเจพเจเจฒเจฟเจธเจ { เจเจพเจเจช ipv4_addr : เจซเฉเจธเจฒเจพ เจซเจฒเฉเจ เจ เฉฐเจคเจฐเจพเจฒ เจคเฉฑเจค = { 192.168.0.0/16 : เจธเจตเฉเจเจพเจฐ เจเจฐเฉ, 10.0.0.0/8 : เจธเจตเฉเจเจพเจฐ เจเจฐเฉ, * : เจกเฉเจฐเฉเจช } } เจเฉเจจ y { เจเจพเจเจช เจซเจฟเจฒเจเจฐ เจนเฉเฉฑเจ เจชเฉเจฐเฉเจฐเฉเจเจฟเฉฐเจ เจคเจฐเจเฉเจน 0; เจจเฉเจคเฉ เจธเจตเฉเจเจพเจฐ; ip saddr vmap @blocklist } }
- โ--defineโ เจตเจฟเจเจฒเจช เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจเฉ เจเจฎเจพเจเจก เจฒเจพเจเจจ เจคเฉเจ เจตเฉเจฐเฉเจเจฌเจฒเจพเจ เจจเฉเฉฐ เจชเจฐเจฟเจญเจพเจธเจผเจฟเจค เจเจฐเจจเจพ เจธเฉฐเจญเจต เจนเฉเฅค # cat test.nft เจเฉเจฌเจฒ netdev x { เจเฉเจจ y { เจเจพเจเจช เจซเจฟเจฒเจเจฐ เจนเฉเฉฑเจ เจเจจเจเจฐเฉเจธ เจกเจฟเจตเจพเจเจธ = $dev เจคเจฐเจเฉเจน 0; เจชเจพเจฒเจฟเจธเฉ เจกเฉเจฐเฉเจช; } } # nft โ define dev="{ eth0, eth1 }" -f test.nft
- เจจเจเจธเจผเจพ เจธเฉเจเฉเจเจ เจตเจฟเฉฑเจ, เจธเจฅเจฟเจฐ (เจธเจเฉเจเจซเฉเฉฑเจฒ) เจธเจฎเฉเจเจฐเจจเจพเจ เจฆเฉ เจตเจฐเจคเฉเจ เจฆเฉ เจเจเจพเจเจผเจค เจนเฉ: เจเฉเจฌเจฒ เจเจจเฉเจ เจซเจฟเจฒเจเจฐ { เจจเจเจธเจผเจพ เจชเฉเจฐเจเจฎเฉเจช { เจเจพเจเจช inet_service : เจซเฉเจธเจฒเจพ เจตเจฟเจฐเฉเจงเฉ เจคเฉฑเจค = { 22 เจเจพเจเจเจเจฐ เจชเฉเจเฉเจ 0 เจฌเจพเจเจเจธ 0 : เจเฉฐเจช ssh_เจเจจเจชเฉเจ, * เจเจพเจเจเจเจฐ เจชเฉเจเฉเจ 0 เจฌเจพเจเจเจธ 0 : เจกเจฐเจพเจช } } เจเฉเจจ ssh_input { } เจเฉเจจ wan_input { tcp dport vmap @portmap } เจเฉเจจ เจชเฉเจฐเฉเจฐเฉเจเจฟเฉฐเจ { เจเจพเจเจช เจซเจฟเจฒเจเจฐ เจนเฉเฉฑเจ เจชเฉเจฐเฉเจฐเฉเจเจฟเฉฐเจ เจคเจฐเจเฉเจน เจเฉฑเจเฉ; เจจเฉเจคเฉ เจธเจตเฉเจเจพเจฐ; iif vmap { "lo" : เจเฉฐเจช เจตเฉเจจ_เจเจจเจชเฉเจ } }
- เจฆเจฟเฉฑเจคเฉ เจเจ เจชเฉเจเฉเจ เจซเฉเจฎเจฟเจฒเฉ เจฒเจ เจนเฉเจเจกเจฒเจฐเจพเจ เจฆเฉ เจธเฉเจเฉ เจชเฉเจฐเจฆเจฐเจธเจผเจฟเจค เจเจฐเจจ เจฒเจ "เจฒเจฟเจธเจ เจนเฉเฉฑเจเจธ" เจเจฎเจพเจเจก เจธเจผเจพเจฎเจฒ เจเฉเจคเฉ เจเจ: # nft เจธเฉเจเฉ เจนเฉเฉฑเจเจธ ip เจกเจฟเจตเจพเจเจธ eth0 เจซเฉเจฎเจฟเจฒเฉ ip { เจนเฉเฉฑเจ เจเจจเจเฉเจฐเฉเจธ { +0000000010 เจเฉเจจ เจจเฉเฉฑเจเจฆเฉเจต xy [nf_tables] +0000000300 เจเฉเจจ inet mw [nf_tables in] { -0000000100 เจเฉเจจ ip ab [nf_tables] +0000000300 เจเฉเจจ inet mz [nf_tables] } เจนเฉเฉฑเจ เจซเจพเจฐเจตเจฐเจก { -0000000225 selinux_ipv4_forward 0000000000 เจเฉเจจ ip ac [nf_tables }0000000225_4 เจเฉเจจ เจเจเจชเฉ เจเจธเฉ [nf_tables] 0000000225_4 เจเฉเจจ เจเจเจ เจเจเจเจชเฉเฉฑเจ } เจนเฉเฉฑเจ เจชเฉเจธเจเจฐเฉเจเจฟเฉฐเจ { +XNUMX XNUMX selinux_ipvXNUMX_postroute } }
- เจเจคเจพเจฐ เจฌเจฒเจพเจ เจฏเฉเจเจผเจฐ เจธเจชเฉเจธ เจตเจฟเฉฑเจ เจเจคเจพเจฐเจพเจ เจตเจฟเฉฑเจ เจชเฉเจเฉเจ เจตเฉฐเจกเจฃ เจฒเจ jhash, symhash, เจ เจคเฉ numgen เจธเจฎเฉเจเจฐเจจเจพเจ เจจเฉเฉฐ เจเฉเฉเจจ เจฆเฉ เจเจเจพเจเจผเจค เจฆเจฟเฉฐเจฆเฉ เจนเจจเฅค โฆ symhash เจฎเจพเจก 65536 เจคเฉฑเจ เจเจคเจพเจฐ โฆ numgen inc mod 65536 เจจเฉเฉฐ เจฌเจพเจเจชเจพเจธ โฆ jhash oif เจฒเจ เจเจคเจพเจฐ . เจฎเฉเจเจพ เจฎเจพเจฐเจ เจฎเฉเจก 32 "เจเจฟเจ" เจจเฉเฉฐ เจเจฐเจฌเจฟเจเจฐเจฐเฉ เจเฉเฉฐเจเฉเจเจ เจฆเฉ เจ เจงเจพเจฐ เจคเฉ เจเจชเจญเฉเจเจคเจพ เจธเจชเฉเจธ เจตเจฟเฉฑเจ เจเฉฑเจ เจเจคเจพเจฐ เจเฉเจฃเจจ เจฒเจ เจจเจเจธเจผเฉ เจธเฉเจเฉเจเจ เจจเจพเจฒ เจตเฉ เจเฉเฉเจฟเจ เจเจพ เจธเจเจฆเจพ เจนเฉเฅค ... oifname เจจเจเจธเจผเฉ เจจเฉเฉฐ เจฌเจพเจเจชเจพเจธ เจเจฐเจจ เจฒเจ เจเจคเจพเจฐ เจซเจฒเฉเจ { "eth0" : 0, "pp0" : 2, "eth1" : 2 }
- เจตเฉเจฐเฉเจเจฌเจฒเจพเจ เจฆเจพ เจตเจฟเจธเจคเจพเจฐ เจเจฐเจจเจพ เจธเฉฐเจญเจต เจนเฉ เจเจฟเจธ เจตเจฟเฉฑเจ เจเจ เจจเจเจธเจผเจฟเจเจ เจตเจฟเฉฑเจ เจเฉฑเจ เจธเฉเฉฑเจ เจธเฉเจเฉ เจธเจผเจพเจฎเจฒ เจนเฉเฉฐเจฆเฉ เจนเฉเฅค เจเฉฐเจเจฐเจซเฉเจธ เจชเจฐเจฟเจญเจพเจธเจผเจฟเจค เจเจฐเฉ = { eth0, eth1 } เจเฉเจฌเจฒ ip x { เจเฉเจจ y { เจเจพเจเจช เจซเจฟเจฒเจเจฐ เจนเฉเฉฑเจ เจเฉฐเจชเฉเฉฑเจ เจคเจฐเจเฉเจน 0; เจจเฉเจคเฉ เจธเจตเฉเจเจพเจฐ; iifname vmap { lo : accept, $interfaces : drop } } } # nft -f x.nft # nft เจธเฉเจเฉ เจจเจฟเจฏเจฎ เจธเจพเจฐเจฃเฉ ip x { เจเฉเจจ y { เจเจพเจเจช เจซเจฟเจฒเจเจฐ เจนเฉเฉฑเจ เจเฉฐเจชเฉเฉฑเจ เจคเจฐเจเฉเจน 0; เจจเฉเจคเฉ เจธเจตเฉเจเจพเจฐ; iifname vmap { "lo" : เจธเจตเฉเจเจพเจฐ เจเจฐเฉ, "eth0" : drop, "eth1" : drop } } }
- เจ เฉฐเจคเจฐเจพเจฒเจพเจ 'เจคเฉ vmaps (เจซเฉเจธเจฒเฉ เจฆเจพ เจจเจเจธเจผเจพ) เจจเฉเฉฐ เจเฉเฉเจจ เจฆเฉ เจเจเจพเจเจผเจค เจนเฉ: # nft เจจเจฟเจฏเจฎ xy tcp dport เจธเจผเจพเจฎเจฒ เจเจฐเฉเฅค ip saddr vmap { 1025-65535 . 192.168.10.2 : เจธเจตเฉเจเจพเจฐ เจเจฐเฉ }
- NAT เจฎเฉเจชเจฟเฉฐเจ เจฒเจ เจธเจฐเจฒเฉเจเฉเจฐเจฟเจค เจธเฉฐเจเฉเจเจธเฅค เจชเจคเจพ เจฐเฉเจเจเจพเจ เจจเฉเฉฐ เจจเจฟเจธเจผเจเจฟเจค เจเจฐเจจ เจฆเฉ เจเจเจพเจเจผเจค เจฆเจฟเฉฑเจคเฉ เจเจ เจนเฉ: ... snat to ip saddr map { 10.141.11.4 : 192.168.2.2-192.168.2.4 } เจเจพเจ เจธเจชเจธเจผเจ IP เจชเจคเฉ เจ เจคเฉ เจชเฉเจฐเจเจพเจ: ... dnat to ip saddr map { 10.141.11.4 : 192.168.2.3 . 80 } เจเจพเจ IP เจฐเฉเจเจเจพเจ เจ เจคเฉ เจชเฉเจฐเจเจพเจ เจฆเฉ เจธเฉเจฎเฉเจฒ: ... dnat เจคเฉเจ ip saddr . tcp dport เจจเจเจธเจผเจพ { 192.168.1.2 . 80: 10.141.10.2-10.141.10.5. 8888-8999 }
เจธเจฐเฉเจค: opennet.ru