เจชเฉเจเฉเจ เจซเจฟเจฒเจเจฐ nftables 1.0.3 เจฆเฉ เจฐเฉเจฒเฉเจเจผ เจชเฉเจฐเจเจพเจธเจผเจฟเจค เจเฉเจคเฉ เจเจ เจนเฉ, IPv4, IPv6, ARP เจ เจคเฉ เจจเฉเฉฑเจเจตเจฐเจ เจฌเฉเจฐเจฟเจเจพเจ (iptables, ip6table, arptables เจ เจคเฉ ebtables เจจเฉเฉฐ เจฌเจฆเจฒเจฃ เจฆเจพ เจเจฆเฉเจธเจผ) เจฒเจ เจชเฉเจเฉเจ เจซเจฟเจฒเจเจฐเจฟเฉฐเจ เจเฉฐเจเจฐเจซเฉเจธเจพเจ เจจเฉเฉฐ เจเจเจธเจพเจฐ เจเจฐเจจเจพเฅค เจเฉฐเจฎ เจเจฐเจจ เจฒเจ nftables 1.0.3 เจฐเฉเจฒเฉเจเจผ เจฒเจ เจฒเฉเฉเฉเจเจฆเฉเจเจ เจคเจฌเจฆเฉเจฒเฉเจเจ เจจเฉเฉฐ Linux 5.18 เจเจฐเจจเจฒ เจตเจฟเฉฑเจ เจธเจผเจพเจฎเจฒ เจเฉเจคเจพ เจเจฟเจ เจนเฉเฅค
nftables เจชเฉเจเฉเจ เจตเจฟเฉฑเจ เจชเฉเจเฉเจ เจซเจฟเจฒเจเจฐ เจญเจพเจ เจธเจผเจพเจฎเจฒ เจนเฉเฉฐเจฆเฉ เจนเจจ เจเฉ เจฏเฉเจเจผเจฐ เจธเจชเฉเจธ เจตเจฟเฉฑเจ เจเฉฑเจฒเจฆเฉ เจนเจจ, เจเจฆเฉเจ เจเจฟ เจเจฐเจจเจฒ เจชเฉฑเจงเจฐ nf_tables เจธเจฌ-เจธเจฟเจธเจเจฎ เจฆเฉเจเจฐเจพ เจฆเจฟเฉฑเจคเจพ เจเจพเจเจฆเจพ เจนเฉ, เจเฉ เจเจฟ 3.13 เจคเฉเจ เจฌเจพเจ เจฆ เจฒเฉเจจเจเจธ เจเจฐเจจเจฒ เจฆเจพ เจนเจฟเฉฑเจธเจพ เจฐเจฟเจนเจพ เจนเฉเฅค เจเจฐเจจเจฒ เจชเฉฑเจงเจฐ 'เจคเฉ, เจธเจฟเจฐเจซ เจเฉฑเจ เจเจฎ เจชเฉเจฐเฉเจเฉเจเฉเจฒ-เจธเฉเจคเฉฐเจคเจฐ เจเฉฐเจเจฐเจซเฉเจธ เจชเฉเจฐเจฆเจพเจจ เจเฉเจคเจพ เจเจพเจเจฆเจพ เจนเฉ เจเฉ เจชเฉเจเฉเจเจพเจ เจคเฉเจ เจกเจพเจเจพ เจเฉฑเจขเจฃ, เจกเฉเจเจพ 'เจคเฉ เจเจพเจฐเจตเจพเจเจเจ เจเจฐเจจ, เจ เจคเฉ เจชเฉเจฐเจตเจพเจน เจจเฉเฉฐ เจจเจฟเจฏเฉฐเจคเจฐเจฟเจค เจเจฐเจจ เจฒเจ เจฌเฉเจจเจฟเจเจฆเฉ เจซเฉฐเจเจธเจผเจจ เจชเฉเจฐเจฆเจพเจจ เจเจฐเจฆเจพ เจนเฉเฅค
เจซเจฟเจฒเจเจฐเจฟเฉฐเจ เจจเจฟเจฏเจฎ เจเฉเจฆ เจ เจคเฉ เจชเฉเจฐเฉเจเฉเจเฉเจฒ-เจตเจฟเจธเจผเฉเจธเจผ เจนเฉเจเจกเจฒเจฐ เจเจชเจญเฉเจเจคเจพ-เจธเจชเฉเจธ เจฌเจพเจเจเจเฉเจก เจตเจฟเฉฑเจ เจเฉฐเจชเจพเจเจฒ เจเฉเจคเฉ เจเจพเจเจฆเฉ เจนเจจ, เจเจฟเจธ เจคเฉเจ เจฌเจพเจ เจฆ เจเจธ เจฌเจพเจเจเจเฉเจก เจจเฉเฉฐ เจจเฉเฉฑเจเจฒเจฟเฉฐเจ เจเฉฐเจเจฐเจซเฉเจธ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจเฉ เจเจฐเจจเจฒ เจตเจฟเฉฑเจ เจฒเฉเจก เจเฉเจคเจพ เจเจพเจเจฆเจพ เจนเฉ เจ เจคเฉ BPF (เจฌเจฐเจเจฒเฉ เจชเฉเจเฉเจ เจซเจฟเจฒเจเจฐ) เจตเจฐเจเฉ เจเฉฑเจ เจตเจฟเจธเจผเฉเจธเจผ เจตเจฐเจเฉเจ เจฒ เจฎเจธเจผเฉเจจ เจตเจฟเฉฑเจ เจเจฐเจจเจฒ เจตเจฟเฉฑเจ เจเจฒเจพเจเจ เจเจพเจเจฆเจพ เจนเฉเฅค เจเจน เจชเจนเฉเฉฐเจ เจเจฐเจจเจฒ เจชเฉฑเจงเจฐ 'เจคเฉ เจเฉฑเจฒ เจฐเจนเฉ เจซเจฟเจฒเจเจฐเจฟเฉฐเจ เจเฉเจก เจฆเฉ เจเจเจพเจฐ เจจเฉเฉฐ เจฎเจนเฉฑเจคเจตเจชเฉเจฐเจจ เจคเฉเจฐ 'เจคเฉ เจเจเจพเจเจฃเจพ เจ เจคเฉ เจชเจพเจฐเจธเจฟเฉฐเจ เจจเจฟเจฏเจฎเจพเจ เจฆเฉ เจธเจพเจฐเฉ เจซเฉฐเจเจธเจผเจจเจพเจ เจ เจคเฉ เจชเฉเจฐเฉเจเฉเจเฉเจฒ เจจเจพเจฒ เจเฉฐเจฎ เจเจฐเจจ เจฆเฉ เจคเจฐเจ เจจเฉเฉฐ เจเจชเจญเฉเจเจคเจพ เจธเจชเฉเจธ เจตเจฟเฉฑเจ เจฒเจฟเจเจพเจฃเจพ เจธเฉฐเจญเจต เจฌเจฃเจพเจเจเจฆเจพ เจนเฉเฅค
เจฎเฉเฉฑเจ เจจเจตเฉเจจเจคเจพเจตเจพเจ:
- เจธเฉเฉฑเจ เจธเฉเจเฉเจเจ เจนเฉเจฃ เจฎเจพเจธเจ เจฆเฉเจเจฐเจพ เจฎเฉเจฒ เจเจพเจเจฆเฉ เจจเฉเฉฑเจเจตเจฐเจ เจเฉฐเจเจฐเจซเฉเจธ เจจเจพเจฎเจพเจ เจฆเจพ เจธเจฎเจฐเจฅเจจ เจเจฐเจฆเฉเจเจ เจนเจจ, เจเจฆเจพเจนเจฐเจจ เจฒเจ, "*" เจเจฟเฉฐเจจเฉเจน เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจเฉ เจจเจฟเจธเจผเจเจฟเจค เจเฉเจคเจพ เจเจฟเจ เจนเฉ: เจเฉเจฌเจฒ เจเจจเฉเจ เจเฉเจธเจเฉเจซเจผเจธเฉเจเจธ { เจธเฉเจ เจธเจงเจพเจฐเจจ_เจตเจพเจเจฒเจก { เจเจพเจเจช ifname เจซเจฒเฉเจ เจ เฉฐเจคเจฐเจพเจฒ เจคเฉฑเจค = { "abcdef*", "เจนเฉเจฐเจจเจพเจฎ", "pp0" } } เจเฉเจจ v4icmp { เจเจพเจเจช เจซเจฟเจฒเจเจฐ เจนเฉเฉฑเจ เจเฉฐเจชเฉเฉฑเจ เจคเจฐเจเฉเจน 0; เจจเฉเจคเฉ เจธเจตเฉเจเจพเจฐ; iifname @simple_wild เจเจพเจเจเจเจฐ เจชเฉเจเฉเจ 0 เจฌเจพเจเจเจธ 0 iifname { โabcdef*โ, โeth0โ } เจเจพเจเจเจเจฐ เจชเฉเจเฉเจ 0 เจฌเจพเจเจเจธ 0 } }
- เจเจชเจฐเฉเจธเจผเจจ เจฆเฉเจฐเจพเจจ เจเจ เจฆเฉเจเฉ เจจเฉเฉฐ เจเฉฑเจเจฃ เจตเจพเจฒเฉ เจธเฉเฉฑเจ-เจธเฉเจเฉ เจฆเฉ เจคเฉฑเจคเจพเจ เจฆเจพ เจเจเฉเจฎเฉเจเจฟเจ เจฎเจฟเจฒเจพเจจ เจฒเจพเจเฉ เจเฉเจคเจพ เจเจฟเจเฅค เจชเจนเจฟเจฒเจพเจ, เจเจฆเฉเจ "เจเจเฉ-เจ
เจญเฉเจฆ" เจตเจฟเจเจฒเจช เจธเฉเฉฑเจ เจเฉเจคเจพ เจเจฟเจ เจธเฉ, เจจเจฟเจฏเจฎเจพเจ เจฆเฉ เจเฉเจธเจผเจฃเจพ เจเจฐเจจ เจฆเฉ เจชเฉเจพเจ
'เจคเฉ เจตเจฟเจฒเฉเจจเจคเจพ เจเฉเจคเฉ เจเจพเจเจฆเฉ เจธเฉ, เจชเจฐ เจนเฉเจฃ เจเจน เจเจฆเฉเจ เจตเฉ เจเฉฐเจฎ เจเจฐเจฆเจพ เจนเฉ เจเจฆเฉเจ เจเจพเจฐเจตเจพเจ เจฆเฉเจฐเจพเจจ เจจเจตเฉเจ เจคเฉฑเจค เจฒเจเจพเจคเจพเจฐ เจธเจผเจพเจฎเจฒ เจเฉเจคเฉ เจเจพเจเจฆเฉ เจนเจจเฅค เจเจฆเจพเจนเจฐเจจ เจฒเจ, เจเฉเจธเจผเจฃเจพ เจชเฉเจพเจ
'เจคเฉ, เจธเฉเจเฉ เจธเฉเฉฑเจ y { เจซเจฒเฉเจ เจ
เฉฐเจคเจฐเจพเจฒ เจเจเฉ-เจ
เจญเฉเจฆ เจคเฉฑเจค = { 1.2.3.0, 1.2.3.255, 1.2.3.0/24, 3.3.3.3, 4.4.4.4, 4.4.4.4-4.4.4.8 , 3.3.3.4 , 3.3.3.5 } } เจคเฉฑเจค = {1.2.3.0/24, 3.3.3.3-3.3.3.5, 4.4.4.4-4.4.4.8 } เจตเจฟเฉฑเจ เจฌเจฆเจฒ เจเจพเจตเฉเจเจพ เจ
เจคเฉ เจซเจฟเจฐ เจเฉเจเจฐ เจคเฉเจธเฉเจ เจจเจตเฉเจ เจเจฒเฉเจฎเฉเจเจเจธ # nft เจเจก เจเจฒเฉเจฎเฉเจเจ เจเฉเฉเจฆเฉ เจนเฉ ip xy { 1.2.3.0 -1.2.4.255, 3.3.3.6 } เจคเฉฑเจค = {1.2.3.0-1.2.4.255, 3.3.3.3-3.3.3.6, 4.4.4.4-4.4.4.8 } เจตเจฐเจเจพ เจฆเจฟเจเจพเจ เจฆเฉเจตเฉเจเจพ
เจเจฆเฉเจ เจคเฉเจธเฉเจ เจธเฉเจเฉ เจตเจฟเฉฑเจเฉเจ เจตเจฟเจ เจเจคเฉเจเจค เจเจเจเจฎเจพเจ เจจเฉเฉฐ เจนเจเจพเจเจเจฆเฉ เจนเฉ เจเฉ เจฎเฉเจเฉเจฆเจพ เจฐเฉเจเจ เจเจเจเจฎเจพเจ เจตเจฟเฉฑเจ เจเจเจเจฆเฉเจเจ เจนเจจ, เจคเจพเจ เจฐเฉเจเจ เจจเฉเฉฐ เจเฉเจเจพ เจเจพเจ เจตเฉฐเจกเจฟเจ เจเจพเจเจฆเจพ เจนเฉเฅค
- เจเฉฑเจ เจฎเฉเจช เจธเฉเจเฉ เจตเจฟเฉฑเจ เจฎเจฒเจเฉเจชเจฒ เจเจกเจฐเฉเฉฑเจธ เจเฉเจฐเจพเจเจธเจฒเฉเจธเจผเจจ (NAT) เจจเจฟเจฏเจฎเจพเจ เจจเฉเฉฐ เจเฉเฉเจจ เจฒเจ เจธเจฎเจฐเจฅเจจ เจจเจฟเจฏเจฎ เจเจชเจเฉเจฎเจพเจเจเจผเจฐ เจตเจฟเฉฑเจ เจเฉเฉเจฟเจ เจเจฟเจ เจนเฉ, เจเจฟเจธเจจเฉเฉฐ "-o/โเจ
เจจเฉเจเฉเจฒเจฟเจค" เจตเจฟเจเจฒเจช เจจเจฟเจฐเจงเจพเจฐเจค เจเฉเจคเฉ เจเจพเจฃ 'เจคเฉ เจเจฟเจนเจพ เจเจพเจเจฆเจพ เจนเฉเฅค เจเจฆเจพเจนเจฐเจจ เจฒเจ, เจธเฉเฉฑเจ # cat ruleset.nft เจเฉเจฌเจฒ เจฒเจ ip x { เจเฉเจจ y { เจเจพเจเจช nat hook postrouting priority srcnat; เจชเจพเจฒเจฟเจธเฉ เจกเฉเจฐเฉเจช; ip saddr 1.1.1.1 tcp dport 8000 snat to 4.4.4.4:80 ip saddr 2.2.2.2 tcp dport 8001 snat เจคเฉเจ 5.5.5.5:90 } }
"nft -o -c -f ruleset.nft" เจจเฉเฉฐ เจเจฒเจพเจเจฃเจพ เจตเฉฑเจเจฐเฉ "ip saddr" เจจเจฟเจฏเจฎเจพเจ เจจเฉเฉฐ เจเฉฑเจ เจจเจเจธเจผเจพ เจธเฉเจเฉ เจตเจฟเฉฑเจ เจฌเจฆเจฒ เจฆเฉเจตเฉเจเจพ: snat เจคเฉเจ ip saddrเฅค tcp dport เจจเจเจธเจผเจพ { 1.1.1.1 . 8000: 4.4.4.4. 80, 2.2.2.2. 8001: 5.5.5.5. 90}
เจเจธเฉ เจคเจฐเฉเจนเจพเจ, เจเฉฑเจเฉ เจธเจฎเฉเจเจฐเจจเจพเจ เจจเฉเฉฐ เจจเจเจธเจผเฉ เจฆเฉเจเจ เจธเฉเจเฉเจเจ เจตเจฟเฉฑเจ เจฌเจฆเจฒเจฟเจ เจเจพ เจธเจเจฆเจพ เจนเฉ: # cat ruleset.nft เจธเจพเจฐเจฃเฉ ip x { [โฆ] เจเฉเจจ nat_dns_acme { udp เจฒเฉฐเจฌเจพเจ 47-63 @th,160,128 0x0e373135363130333131303735353203 @ d_p62st เจฒเฉฐเจฌเจพเจ @ _d78st _d160,128_0st เจฒเฉฐเจฌเจพเจ 0 31393032383939353831343037320x5301e62e goto nat_dns_this_78 udp เจฒเฉฐเจฌเจพเจ 160,128-0 @th,0 31363436323733373931323934300x5301e62e goto nat_dns_saturn_78 udp เจฒเฉฐเจฌเจพเจ 160,128-0 @th,0 32393535373539353636383732310 5302e goto nat_dns_saturn_62 udp เจฒเฉฐเจฌเจพเจ 78-160,128 @th,0 0x38353439353637323038363633390e5303e เจเจพเจ nat_dns_saturn_XNUMX เจกเจฐเจพเจช }}
เจเจชเจเฉเจฎเจพเจเจเฉเจธเจผเจจ เจคเฉเจ เจฌเจพเจ เจฆ เจธเจพเจจเฉเฉฐ เจเฉฑเจ เจจเจเจธเจผเจพ เจธเฉเจเฉ เจฎเจฟเจฒเจฆเฉ เจนเฉ: udp length. @th,160,128 vmap { 47-63 . 0x0e373135363130333131303735353203 : nat_dns_dnstc, 62-78 'เจคเฉ เจเจพเจเฅค 0x0e31393032383939353831343037320e : nat_dns_this_5301, 62-78 'เจคเฉ เจเจพเจเฅค 0x0e31363436323733373931323934300e : nat_dns_saturn_5301, 62-78 'เจคเฉ เจเจพเจเฅค 0x0e32393535373539353636383732310e : nat_dns_saturn_5302, 62-78 'เจคเฉ เจเจพเจเฅค 0x0e38353439353637323038363633390e : goto nat_dns_saturn_5303 }
- เจธเฉฐเจฏเฉเจเจจ เจเจพเจฐเจเจพเจ เจตเจฟเฉฑเจ เจเฉฑเจเฉ เจธเจฎเฉเจเจฐเจจเจพเจ เจฆเฉ เจตเจฐเจคเฉเจ เจฆเฉ เจเจเจฟเจ เจนเฉเฅค เจเจฆเจพเจนเจฐเจจ เจฒเจ: #nft เจจเจฟเจฏเจฎ xy ip saddr เจธเจผเจพเจฎเจฒ เจเจฐเฉเฅค @ih,32,32 { 1.1.1.1 . 0x14, 2.2.2.2 . 0x1e } เจเจพเจ เจธเจพเจฐเจฃเฉ x { เจธเฉเฉฑเจ y { ip saddr เจฆเฉ เจเจฟเจธเจฎเฅค @ih,32,32 เจคเฉฑเจค = { 1.1.1.1 . 0x14 } }
- เจธเฉฐเจฏเฉเจเจจ เจเจพเจฐเจเจพเจ เจตเจฟเฉฑเจ เจชเฉเจฐเจจ เจ เฉฐเจ เจธเจฟเจฐเจฒเฉเจ เจเฉเจคเจฐเจพเจ เจจเฉเฉฐ เจจเจฟเจฐเจงเจพเจฐเจค เจเจฐเจจ เจฒเจ เจธเจฎเจฐเจฅเจจ เจเฉเฉเจฟเจ เจเจฟเจ: เจเฉเจฌเจฒ inet t { เจจเจเจธเจผเจพ m1 { udp เจฒเฉฐเจฌเจพเจ เจฆเฉ เจเจฟเจธเจฎเฅค @ih,32,32 : เจซเฉเจธเจฒเจพ เจซเจฒเฉเจ เจ เฉฐเจคเจฐเจพเจฒ เจคเฉฑเจค = {20-80 . 0x14 : เจธเจตเฉเจเจพเจฐ เจเจฐเฉ, 1-10เฅค 0xa : เจกเฉเจฐเฉเจช } } เจเฉเจจ c { เจเจพเจเจช เจซเจฟเจฒเจเจฐ เจนเฉเฉฑเจ เจเฉฐเจชเฉเฉฑเจ เจคเจฐเจเฉเจน 0; เจชเจพเจฒเจฟเจธเฉ เจกเฉเจฐเฉเจช; udp เจฒเฉฐเจฌเจพเจเฅค @ih,32,32 vmap @m1 } }
- TCP เจตเจฟเจเจฒเจชเจพเจ เจจเฉเฉฐ เจฐเฉเจธเฉเฉฑเจ เจเจฐเจจ เจฒเจ เจธเจฎเจฐเจฅเจจ เจเฉเฉเจฟเจ เจเจฟเจ (เจธเจฟเจฐเจซเจผ เจฒเฉเจจเจเจธ เจเจฐเจจเจฒ 5.18+ เจจเจพเจฒ เจเฉฐเจฎ เจเจฐเจฆเจพ เจนเฉ): tcp เจซเจฒเฉเจ เจธเจฟเฉฐเจจ เจฐเฉเจธเฉเจ tcp เจตเจฟเจเจฒเจช sack-perm
- เจเฉเจจ เจเจเจเจชเฉเฉฑเจ เจเจฎเจพเจเจกเจพเจ (โnft เจธเฉเจเฉ เจเฉเจจ xyโ) เจฆเฉ เจเจเจเจผเฉเจเจฟเจเจธเจผเจจ เจจเฉเฉฐ เจคเฉเจเจผ เจเฉเจคเจพ เจเจฟเจ เจนเฉเฅค
เจธเจฐเฉเจค: opennet.ru