ΠΠ·Π΄Π°Π½ΠΈΠ΅ΡΠΎ Π½Π° ΡΠΈΠ»ΡΡΡΠ° Π·Π° ΠΏΠ°ΠΊΠ΅ΡΠΈ nftables 1.0.3 Π±Π΅ΡΠ΅ ΠΏΡΠ±Π»ΠΈΠΊΡΠ²Π°Π½ΠΎ, ΠΎΠ±Π΅Π΄ΠΈΠ½ΡΠ²Π°ΠΉΠΊΠΈ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΈΡΠ΅ Π·Π° ΡΠΈΠ»ΡΡΠΈΡΠ°Π½Π΅ Π½Π° ΠΏΠ°ΠΊΠ΅ΡΠΈ Π·Π° IPv4, IPv6, ARP ΠΈ ΠΌΡΠ΅ΠΆΠΎΠ²ΠΈ ΠΌΠΎΡΡΠΎΠ²Π΅ (Π½Π°ΡΠΎΡΠ΅Π½ΠΈ ΠΊΡΠΌ Π·Π°ΠΌΡΠ½Π° Π½Π° iptables, ip6table, arptables ΠΈ ebtables). ΠΡΠΎΠΌΠ΅Π½ΠΈΡΠ΅, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΈ Π·Π° ΡΠ°Π±ΠΎΡΠ° Π½Π° ΠΈΠ·Π΄Π°Π½ΠΈΠ΅ΡΠΎ nftables 1.0.3, ΡΠ° Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈ Π² ΡΠ΄ΡΠΎΡΠΎ Π½Π° Linux 5.18.
ΠΠ°ΠΊΠ΅ΡΡΡ nftables Π²ΠΊΠ»ΡΡΠ²Π° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΈ Π·Π° ΡΠΈΠ»ΡΡΡ Π½Π° ΠΏΠ°ΠΊΠ΅ΡΠΈ, ΠΊΠΎΠΈΡΠΎ ΡΠ°Π±ΠΎΡΡΡ Π² ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΡΠΊΠΎΡΠΎ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ, Π΄ΠΎΠΊΠ°ΡΠΎ Π½ΠΈΠ²ΠΎΡΠΎ Π½Π° ΡΠ΄ΡΠΎΡΠΎ ΡΠ΅ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Ρ ΠΎΡ ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ° nf_tables, ΠΊΠΎΡΡΠΎ Π΅ ΡΠ°ΡΡ ΠΎΡ ΡΠ΄ΡΠΎΡΠΎ Π½Π° Linux ΠΎΡ Π²Π΅ΡΡΠΈΡ 3.13. ΠΠ° Π½ΠΈΠ²ΠΎ ΡΠ΄ΡΠΎ ββΡΠ΅ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Ρ ΡΠ°ΠΌΠΎ ΠΎΠ±Ρ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ, Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌ ΠΎΡ ΠΏΡΠΎΡΠΎΠΊΠΎΠ», ΠΊΠΎΠΉΡΠΎ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Ρ ΠΎΡΠ½ΠΎΠ²Π½ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ Π·Π° ΠΈΠ·Π²Π»ΠΈΡΠ°Π½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈ ΠΎΡ ΠΏΠ°ΠΊΠ΅ΡΠΈ, ΠΈΠ·Π²ΡΡΡΠ²Π°Π½Π΅ Π½Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Ρ Π΄Π°Π½Π½ΠΈ ΠΈ ΠΊΠΎΠ½ΡΡΠΎΠ»ΠΈΡΠ°Π½Π΅ Π½Π° ΠΏΠΎΡΠΎΠΊΠ°.
Π‘Π°ΠΌΠΈΡΠ΅ ΠΏΡΠ°Π²ΠΈΠ»Π° Π·Π° ΡΠΈΠ»ΡΡΠΈΡΠ°Π½Π΅ ΠΈ ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ½ΠΈΡΠ΅ Π·Π° ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π° ΠΌΠ°Π½ΠΈΠΏΡΠ»Π°ΡΠΎΡΠΈ ΡΠ΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠ°Ρ Π² Π±Π°ΠΉΡ ΠΊΠΎΠ΄ Π½Π° ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΡΠΊΠΎΡΠΎ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ, ΡΠ»Π΅Π΄ ΠΊΠΎΠ΅ΡΠΎ ΡΠΎΠ·ΠΈ Π±Π°ΠΉΡ ΠΊΠΎΠ΄ ΡΠ΅ Π·Π°ΡΠ΅ΠΆΠ΄Π° Π² ΡΠ΄ΡΠΎΡΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° Netlink ΠΈ ΡΠ΅ ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π° Π² ΡΠ΄ΡΠΎΡΠΎ Π² ΡΠΏΠ΅ΡΠΈΠ°Π»Π½Π° Π²ΠΈΡΡΡΠ°Π»Π½Π° ΠΌΠ°ΡΠΈΠ½Π°, Π½Π°ΠΏΠΎΠ΄ΠΎΠ±ΡΠ²Π°ΡΠ° BPF (Berkeley Packet Filters). Π’ΠΎΠ·ΠΈ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ ΠΏΡΠ°Π²ΠΈ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎ Π·Π½Π°ΡΠΈΡΠ΅Π»Π½ΠΎ Π½Π°ΠΌΠ°Π»ΡΠ²Π°Π½Π΅ Π½Π° ΡΠ°Π·ΠΌΠ΅ΡΠ° Π½Π° ΡΠΈΠ»ΡΡΠΈΡΠ°ΡΠΈΡ ΠΊΠΎΠ΄, ΡΠ°Π±ΠΎΡΠ΅Ρ Π½Π° Π½ΠΈΠ²ΠΎ ΡΠ΄ΡΠΎ, ΠΈ ΠΏΡΠ΅ΠΌΠ΅ΡΡΠ²Π°Π½Π΅ Π½Π° Π²ΡΠΈΡΠΊΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ Π½Π° ΠΏΡΠ°Π²ΠΈΠ»Π°ΡΠ° Π·Π° Π°Π½Π°Π»ΠΈΠ· ΠΈ Π»ΠΎΠ³ΠΈΠΊΠ°ΡΠ° Π½Π° ΡΠ°Π±ΠΎΡΠ° Ρ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»ΠΈ Π² ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΡΠΊΠΎΡΠΎ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ.
ΠΡΠ½ΠΎΠ²Π½ΠΈ ΠΈΠ½ΠΎΠ²Π°ΡΠΈΠΈ:
- Π‘ΠΏΠΈΡΡΡΠΈΡΠ΅ Ρ Π½Π°Π±ΠΎΡΠΈ Π²Π΅ΡΠ΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ°Ρ ΡΡΠ²ΠΏΠ°Π΄Π΅Π½ΠΈΠ΅ Π½Π° ΠΈΠΌΠ΅Π½Π° Π½Π° ΠΌΡΠ΅ΠΆΠΎΠ²ΠΈ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΈ ΡΡΠ΅Π· ΠΌΠ°ΡΠΊΠ°, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ Π·Π°Π΄Π°Π΄Π΅Π½Π° Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° Π·Π½Π°ΠΊΠ° "*": table inet testifsets { set simple_wild { type ifname flags interval elements = { "abcdef*", "othername", "ppp0" } } Π²Π΅ΡΠΈΠ³Π° 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-1.2.3.0 } ΠΈ ΡΠ»Π΅Π΄ ΡΠΎΠ²Π°, Π°ΠΊΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΠΌ Π½ΠΎΠ²ΠΈ Π΅Π»Π΅ΠΌΠ΅Π½ΡΠΈ # nft Π΄ΠΎΠ±Π°Π²ΠΈ Π΅Π»Π΅ΠΌΠ΅Π½Ρ ip xy { 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-XNUMX }
ΠΠΎΠ³Π°ΡΠΎ ΠΏΡΠ΅ΠΌΠ°Ρ Π½Π΅ΡΠ΅ ΠΎΡΠ΄Π΅Π»Π½ΠΈ Π΅Π»Π΅ΠΌΠ΅Π½ΡΠΈ ΠΎΡ ΡΠΏΠΈΡΡΠΊΠ°, ΠΊΠΎΠΈΡΠΎ ΠΏΠΎΠΏΠ°Π΄Π°Ρ Π² ΡΠ°ΠΌΠΊΠΈΡΠ΅ Π½Π° ΡΡΡΠ΅ΡΡΠ²ΡΠ²Π°ΡΠΈ Π΅Π»Π΅ΠΌΠ΅Π½ΡΠΈ Ρ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½, Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ΡΡ ΡΠ΅ Π½Π°ΠΌΠ°Π»ΡΠ²Π° ΠΈΠ»ΠΈ ΡΠ°Π·Π΄Π΅Π»Ρ.
- ΠΠΎΠ±Π°Π²Π΅Π½Π° Π΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π·Π° ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡΠ°Π½Π΅ Π½Π° ΠΏΡΠ°Π²ΠΈΠ»Π° Π·Π° ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΠ²Π°Π½Π΅ Π½Π° ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ Π°Π΄ΡΠ΅ΡΠΈ (NAT) Π² ΡΠΏΠΈΡΡΠΊ Ρ ΠΊΠ°ΡΡΠΈ Π² ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΎΡΠ° Π½Π° ΠΏΡΠ°Π²ΠΈΠ»Π°, ΠΈΠ·Π²ΠΈΠΊΠ°Π½ ΠΏΡΠΈ ΠΏΠΎΡΠΎΡΠ²Π°Π½Π΅ Π½Π° ΠΎΠΏΡΠΈΡΡΠ° "-o/--optimize". ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π·Π° set # cat ruleset.nft table ip x { chain y { type nat hook postrouting priority srcnat; ΡΠΏΠ°Π΄ Π½Π° ΠΏΠΎΠ»ΠΈΡΠΈΠΊΠ°ΡΠ°; ip saddr 1.1.1.1 tcp dport 8000 snat Π΄ΠΎ 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 map { 1.1.1.1 . 8000: 4.4.4.4. 80, 2.2.2.2. 8001:5.5.5.5. 90}
ΠΠΎ ΡΡΡΠΈΡ Π½Π°ΡΠΈΠ½ Π½Π΅ΠΎΠ±ΡΠ°Π±ΠΎΡΠ΅Π½ΠΈΡΠ΅ ΠΈΠ·ΡΠ°Π·ΠΈ ΠΌΠΎΠ³Π°Ρ ΡΡΡΠΎ Π΄Π° Π±ΡΠ΄Π°Ρ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΠ²Π°Π½ΠΈ Π² ΡΠΏΠΈΡΡΡΠΈ Ρ ΠΊΠ°ΡΡΠΈ: # cat ruleset.nft table ip x { [β¦] chain nat_dns_acme { udp length 47-63 @th,160,128 0x0e373135363130333131303735353203 goto nat_dns_dnstc udp length 62-78 @ th,160,128 0x0e31393032383939353831343037320e ΠΎΡΠΈΠ²Π°ΠΌ nat_dns_this_5301 udp Π΄ΡΠ»ΠΆΠΈΠ½Π° 62-78 @th,160,128 0x0e31363436323733373931323934300e goto nat_dns_saturn_5301 udp Π΄ΡΠ»ΠΆΠΈΠ½Π° 62-78 @th,160,128 0x0e32393535373539353636383732310 5302e goto nat_dns_saturn_62 udp Π΄ΡΠ»ΠΆΠΈΠ½Π° 78-160,128 @th,0 0x38353439353637323038363633390e5303e goto nat_dns_saturn_XNUMX drop } }
ΡΠ»Π΅Π΄ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ ΠΏΠΎΠ»ΡΡΠ°Π²Π°ΠΌΠ΅ ΡΠΏΠΈΡΡΠΊ Ρ ΠΊΠ°ΡΡΠΈ: 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 : ΠΎΡΠΈΠ΄Π΅ΡΠ΅ Π΄ΠΎ nat_dns_saturn_5303 }
- Π Π°Π·ΡΠ΅ΡΠ΅Π½ΠΎ Π΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ΡΠΎ Π½Π° Π½Π΅ΠΎΠ±ΡΠ°Π±ΠΎΡΠ΅Π½ΠΈ ΠΈΠ·ΡΠ°Π·ΠΈ Π² ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈΡΠ΅ Π·Π° ΠΊΠΎΠ½ΠΊΠ°ΡΠ΅Π½Π°ΡΠΈΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ: # nft add rule xy ip saddr. @ih,32,32 { 1.1.1.1. 0x14, 2.2.2.2. 0x1e } ΠΈΠ»ΠΈ ΡΠ°Π±Π»ΠΈΡΠ° x { set y { typeof ip saddr. @ih,32,32 Π΅Π»Π΅ΠΌΠ΅Π½ΡΠ° = { 1.1.1.1. 0x14 } } }
- ΠΠΎΠ±Π°Π²Π΅Π½Π° Π΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π·Π° ΡΠΊΠ°Π·Π²Π°Π½Π΅ Π½Π° ΡΠ΅Π»ΠΎΡΠΈΡΠ»Π΅Π½ΠΈ Π·Π°Π³Π»Π°Π²Π½ΠΈ ΠΏΠΎΠ»Π΅ΡΠ° Π² ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π·Π° ΠΊΠΎΠ½ΠΊΠ°ΡΠ΅Π½Π°ΡΠΈΡ: table inet t { map m1 { typeof udp length . @ih,32,32 : Π·Π½Π°ΠΌΠ΅Π½Π° Π·Π° ΠΏΡΠΈΡΡΠ΄Π° ΠΈΠ½ΡΠ΅ΡΠ²Π°Π»Π½ΠΈ Π΅Π»Π΅ΠΌΠ΅Π½ΡΠΈ = { 20-80 . 0x14 : ΠΏΡΠΈΠ΅ΠΌΠ°ΠΌ, 1-10 . 0xa : ΠΊΠ°ΠΏΠΊΠ° } } Π²Π΅ΡΠΈΠ³Π° c { ΡΠΈΠΏ ΡΠΈΠ»ΡΡΡ ΠΊΡΠΊΠ° Π²Ρ ΠΎΠ΄Π΅Π½ ΠΏΡΠΈΠΎΡΠΈΡΠ΅Ρ 0; ΡΠΏΠ°Π΄ Π½Π° ΠΏΠΎΠ»ΠΈΡΠΈΠΊΠ°ΡΠ°; udp Π΄ΡΠ»ΠΆΠΈΠ½Π°. @ih,32,32 vmap @m1 } }
- ΠΠΎΠ±Π°Π²Π΅Π½Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π·Π° Π½ΡΠ»ΠΈΡΠ°Π½Π΅ Π½Π° TCP ΠΎΠΏΡΠΈΠΈ (ΡΠ°Π±ΠΎΡΠΈ ΡΠ°ΠΌΠΎ Ρ Linux ΡΠ΄ΡΠΎ ββ5.18+): tcp ΡΠ»Π°Π³ΠΎΠ²Π΅ syn reset tcp ΠΎΠΏΡΠΈΡ sack-perm
- ΠΠΎ-Π±ΡΡΠ·ΠΎ ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° Π²Π΅ΡΠΈΠΆΠ½ΠΈ ΠΈΠ·Ρ ΠΎΠ΄Π½ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ ("nft list chain xy").
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: opennet.ru