เชชเซเชเซเช เชซเชฟเชฒเซเชเชฐ 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 เชจเชพ เชชเซเชฐเชเชพเชถเชจเชฅเซ Linux เชเชฐเซเชจเชฒเชจเซ เชญเชพเช เชเซ. เชเชฐเซเชจเชฒ เชธเซเชคเชฐ เชฎเชพเชคเซเชฐ เชเช เชธเชพเชฎเชพเชจเซเชฏ เชชเซเชฐเซเชเซเชเซเชฒ-เชธเซเชตเชคเชเชคเซเชฐ เชเชจเซเชเชฐเชซเซเชธ เชชเซเชฐเซเช เชชเชพเชกเซ เชเซ เชเซ เชชเซเชเซเชเซเชฎเชพเชเชฅเซ เชกเซเชเชพ เชเชพเชขเชตเชพ, เชกเซเชเชพ เชเชชเชฐเซเชถเชจ เชเชฐเชตเชพ เช เชจเซ เชซเซเชฒเซ เชเชเชเซเชฐเซเชฒ เชฎเชพเชเซ เชฎเซเชณเชญเซเชค เชเชพเชฐเซเชฏเซ เชชเซเชฐเชพ เชชเชพเชกเซ เชเซ.
เชซเชฟเชฒเซเชเชฐเชฟเชเชเชจเชพ เชจเชฟเชฏเชฎเซ เชชเซเชคเซ เช เชจเซ เชชเซเชฐเซเชเซเชเซเชฒ-เชตเชฟเชถเชฟเชทเซเช เชนเซเชจเซเชกเชฒเชฐเซเชธ เชฏเซเชเชฐ-เชธเซเชชเซเชธ เชฌเชพเชเชเชเซเชกเชฎเชพเช เชเชฎเซเชชเชพเชเชฒ เชเชฐเชตเชพเชฎเชพเช เชเชตเซ เชเซ, เชเซ เชชเชเซ เช เชฌเชพเชเชเชเซเชก เชจเซเชเชฒเชฟเชเช เชเชจเซเชเชฐเชซเซเชธเชจเซ เชเชชเชฏเซเช เชเชฐเซเชจเซ เชเชฐเซเชจเชฒเชฎเชพเช เชฒเซเชก เชเชฐเชตเชพเชฎเชพเช เชเชตเซ เชเซ เช เชจเซ 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" : เชเชฎเซเชช wan_input } }
- เชเชชเซเชฒ เชชเซเชเซเช เชซเซเชฎเชฟเชฒเซ เชฎเชพเชเซ เชนเซเชจเซเชกเชฒเชฐเซเชธเชจเซ เชฏเชพเชฆเซ เชชเซเชฐเชฆเชฐเซเชถเชฟเชค เชเชฐเชตเชพ เชฎเชพเชเซ "เชฒเชฟเชธเซเช เชนเซเชเซเชธ" เชเชฆเซเชถ เชเชฎเซเชฐเซเชฏเซ: # nft เชฒเชฟเชธเซเช เชนเซเชเซเชธ ip เชเชชเชเชฐเชฃ eth0 เชซเซเชฎเชฟเชฒเซ ip { เชนเซเช เชเชจเซเชเซเชฐเซเชธ { +0000000010 เชเซเชเชจ เชจเซเชเชฆเซเชต xy [nf_tables] +0000000300 เชเซเชเชจ เชเชจเซเช 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 เชฌเชนเชพเชฐ เชชเชพเชกเซ 0000000225_เชเชเชเชชเซเช } เชนเซเช เชชเซเชธเซเชเชฐเซเชเซเชเช { +4 XNUMX selinux_ipvXNUMX_postroute } }
- เชเชคเชพเชฐ เชฌเซเชฒเซเชเซเชธ jhash, symhash เช เชจเซ numgen เช เชญเชฟเชตเซเชฏเชเซเชคเชฟเชเชจเซ เชฏเซเชเชฐ เชธเซเชชเซเชธเชฎเชพเช เชเชคเชพเชฐเซเชฎเชพเช เชชเซเชเซเชเซ เชตเชฟเชคเชฐเชฟเชค เชเชฐเชตเชพ เชฎเชพเชเซ เชเซเชกเชตเชพเชจเซ เชฎเชเชเซเชฐเซ เชเชชเซ เชเซ. โฆ เชเชคเชพเชฐ เชฅเซ เชธเชฟเชฎเชนเชพเชถ เชฎเซเชก 65536 โฆ เชเชคเชพเชฐ เชซเซเชฒเซเชเซเชธ เชฌเชพเชฏเชชเชพเชธ เชเซ เชจเชฎเชเซเชจ inc เชฎเซเชก 65536 โฆ เชเชคเชพเชฐ เชฅเซ เชเชถ เชเชเชเชซ . เชฎเซเชเชพ เชฎเชพเชฐเซเช เชฎเซเชก 32 "เชเชคเชพเชฐ" เชจเซ เชจเชเชถเชพเชจเซ เชฏเชพเชฆเซเช เชธเชพเชฅเซ เชชเชฃ เชเซเชกเซ เชถเชเชพเชฏ เชเซ เชเซเชฅเซ เชเชฐเซเชฌเชฟเชเชฐเซ เชเซเชจเชพ เชเชงเชพเชฐเซ เชตเชชเชฐเชพเชถเชเชฐเซเชคเชพ เชเชเซเชฏเชพเชฎเชพเช เชเชคเชพเชฐ เชชเชธเชเชฆ เชเชฐเซ เชถเชเชพเชฏ. ... เชเชคเชพเชฐ เชซเซเชฒเซเชเซเชธ oifname เชจเชเชถเชพเชจเซ เชฌเชพเชฏเชชเชพเชธ { "eth0" : 0, "pp0" : 2, "eth1" : 2 }
- เชตเชฟเชตเชฟเชง เชจเชเชถเชพเชเชฎเชพเช เชธเชฎเซเชน เชธเซเชเชฟเชจเซ เชธเชฎเชพเชตเซเชถ เชเชฐเชคเชพ เชเชฒเซเชจเซ เชตเชฟเชธเซเชคเซเชค เชเชฐเชตเชพเชจเซเช เชถเชเซเชฏ เชเซ. เชเชจเซเชเชฐเชซเซเชธ เชตเซเชฏเชพเชเซเชฏเชพเชฏเชฟเชค เชเชฐเซ = { eth0, eth1 } เชเซเชทเซเชเช ip x { เชธเชพเชเชเชณ y { เชชเซเชฐเชเชพเชฐ เชซเชฟเชฒเซเชเชฐ เชนเซเช เชเชจเชชเซเช เชชเซเชฐเชพเชงเชพเชจเซเชฏเชคเชพ 0; เชจเซเชคเชฟ เชธเซเชตเซเชเชพเชฐเซ; iifname vmap { lo : เชธเซเชตเซเชเชพเชฐเซ, $ เชเชจเซเชเชฐเชซเซเชธ : เชกเซเชฐเซเชช } } } # nft -f x.nft # nft เชธเซเชเชฟ เชจเชฟเชฏเชฎเซ เชธเซเช เชเซเชฌเชฒ ip x { เชธเชพเชเชเชณ y { เชชเซเชฐเชเชพเชฐ เชซเชฟเชฒเซเชเชฐ เชนเซเช เชเชจเชชเซเช เชชเซเชฐเชพเชงเชพเชจเซเชฏเชคเชพ 0; เชจเซเชคเชฟ เชธเซเชตเซเชเชพเชฐเซ; iifname vmap { "lo" : เชธเซเชตเซเชเชพเชฐเซ, "eth0" : เชกเซเชฐเซเชช, "eth1" : เชกเซเชฐเซเชช } }
- เช เชเชคเชฐเชพเชฒเซ เชชเชฐ vmaps (เชเซเชเชพเชฆเซ เชจเชเชถเซ) เชเซเชกเชตเชพเชจเซ เชฎเชเชเซเชฐเซ เชเซ: # nft เชจเชฟเชฏเชฎ xy tcp dport เชเชฎเซเชฐเซ. ip saddr vmap { 1025-65535 . 192.168.10.2 : เชธเซเชตเซเชเชพเชฐเซ }
- NAT เชฎเซเชชเชฟเชเช เชฎเชพเชเซ เชธเชฐเชณ เชธเชฟเชจเซเชเซเชเซเชธ. เชธเชฐเชจเชพเชฎเชพเช เชฐเซเชจเซเชเชจเซ เชเชฒเซเชฒเซเช เชเชฐเชตเชพเชจเซ เชฎเชเชเซเชฐเซ เชเซ: ... snat to ip saddr เชจเชเชถเซ { 10.141.11.4 : 192.168.2.2-192.168.2.4 } เช เชฅเชตเชพ เชธเซเชชเชทเซเช IP เชธเชฐเชจเชพเชฎเชพเช เช เชจเซ เชชเซเชฐเซเชเซเชธ: ... dnat to ip saddr เชจเชเชถเซ { 10.141.11.4. . 192.168.2.3 } เช เชฅเชตเชพ IP เชฐเซเชจเซเช เช เชจเซ เชชเซเชฐเซเชเชจเชพ เชธเชเชฏเซเชเชจเซ: ... dnat to ip saddr . tcp เชกเซเชชเซเชฐเซเช เชจเชเชถเซ { 80 . 192.168.1.2: 80-10.141.10.2. 10.141.10.5-8888 }
เชธเซเชฐเซเชธ: opennet.ru