ΠΠ±ΡΠ°Π²Π΅Π½ΠΎ Π΅ ΠΎΠ±ΡΠ°Π²ΡΠ²Π°ΡΠ΅ΡΠΎ Π½Π° ΠΏΠ°ΠΊΠ΅ΡΠ½ΠΈΡΠ΅ ΡΠΈΠ»ΡΡΠΈ 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. ΠΠΈΠ²ΠΎΡΠΎ Π½Π° ΡΠ°Π΄ΡΠΎΡΠΎ ΠΎΠ±Π΅Π·Π±Π΅Π΄ΡΠ²Π° ΡΠ°ΠΌΠΎ Π³Π΅Π½Π΅ΡΠΈΡΠΊΠΈ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΡΡ Π½Π΅Π·Π°Π²ΠΈΡΠ΅Π½ ΠΎΠ΄ ΠΏΡΠΎΡΠΎΠΊΠΎΠ» ΠΊΠΎΡ ΠΎΠ±Π΅Π·Π±Π΅Π΄ΡΠ²Π° ΠΎΡΠ½ΠΎΠ²Π½ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ Π·Π° ΠΈΠ·Π²Π»Π΅ΠΊΡΠ²Π°ΡΠ΅ ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈ ΠΎΠ΄ ΠΏΠ°ΠΊΠ΅ΡΠΈ, ΠΈΠ·Π²ΡΡΡΠ²Π°ΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΡΠΎ ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈ ΠΈ ΠΊΠΎΠ½ΡΡΠΎΠ»Π° Π½Π° ΠΏΡΠΎΡΠΎΠΊΠΎΡ.
Π‘Π°ΠΌΠΈΡΠ΅ ΠΏΡΠ°Π²ΠΈΠ»Π° Π·Π° ΡΠΈΠ»ΡΡΠΈΡΠ°ΡΠ΅ ΠΈ ΡΠ°ΠΊΡΠ²Π°ΡΠΈΡΠ΅ ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ½ΠΈ Π·Π° ΠΏΡΠΎΡΠΎΠΊΠΎΠ»ΠΎΡ ΡΠ΅ ΠΊΠΎΠΌΠΏΠ°ΡΠ»ΠΈΡΠ°Π°Ρ Π²ΠΎ Π±Π°ΡΡΠ΅ΠΊΠΎΠ΄ Π½Π° ΠΊΠΎΡΠΈΡΠ½ΠΈΡΠΊΠΈ ΠΏΡΠΎΡΡΠΎΡ, ΠΏΠΎ ΡΡΠΎ ΠΎΠ²ΠΎΡ Π±Π°ΡΡΠ΅ΠΊΠΎΠ΄ ΡΠ΅ Π²ΡΠΈΡΡΠ²Π° Π²ΠΎ ΠΊΠ΅ΡΠ½Π΅Π»ΠΎΡ ΡΠΎ ΠΏΠΎΠΌΠΎΡ Π½Π° ΠΈΠ½ΡΠ΅ΡΡΠ΅ΡΡΠΎΡ Π½Π° Netlink ΠΈ ΡΠ΅ ΠΈΠ·Π²ΡΡΡΠ²Π° Π²ΠΎ ΠΊΠ΅ΡΠ½Π΅Π»ΠΎΡ Π²ΠΎ ΡΠΏΠ΅ΡΠΈΡΠ°Π»Π½Π° Π²ΠΈΡΡΡΠ΅Π»Π½Π° ΠΌΠ°ΡΠΈΠ½Π° ΡΡΠΎ Π»ΠΈΡΠΈ Π½Π° BPF (Berkeley Packet Filters). ΠΠ²ΠΎΡ ΠΏΡΠΈΡΡΠ°ΠΏ ΠΎΠ²ΠΎΠ·ΠΌΠΎΠΆΡΠ²Π° Π·Π½Π°ΡΠΈΡΠ΅Π»Π½ΠΎ Π΄Π° ΡΠ΅ Π½Π°ΠΌΠ°Π»ΠΈ Π³ΠΎΠ»Π΅ΠΌΠΈΠ½Π°ΡΠ° Π½Π° ΠΊΠΎΠ΄ΠΎΡ Π·Π° ΡΠΈΠ»ΡΡΠΈΡΠ°ΡΠ΅ ΡΡΠΎ ΡΠ°Π±ΠΎΡΠΈ Π½Π° Π½ΠΈΠ²ΠΎ Π½Π° ΡΠ°Π΄ΡΠΎΡΠΎ ΠΈ Π΄Π° ΡΠ΅ ΠΏΡΠ΅ΠΌΠ΅ΡΡΠ°Ρ ΡΠΈΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ Π½Π° ΠΏΡΠ°Π²ΠΈΠ»Π°ΡΠ° Π·Π° ΠΏΠ°ΡΡΠΈΡΠ°ΡΠ΅ ΠΈ Π»ΠΎΠ³ΠΈΠΊΠ°ΡΠ° Π½Π° ΡΠ°Π±ΠΎΡΠ° ΡΠΎ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»ΠΈ Π²ΠΎ ΠΊΠΎΡΠΈΡΠ½ΠΈΡΠΊΠΈΠΎΡ ΠΏΡΠΎΡΡΠΎΡ.
ΠΠ»Π°Π²Π½ΠΈΡΠ΅ ΠΈΠ½ΠΎΠ²Π°ΡΠΈΠΈ:
- ΠΠΎΠ΄Π΄ΡΡΠΊΠ°ΡΠ° Π·Π° Π΅Π»Π΅ΠΌΠ΅Π½ΡΠΎΡ ΠΌΠ°ΡΠΊΠ° β*β Π΅ Π΄ΠΎΠ΄Π°Π΄Π΅Π½Π° Π²ΠΎ ΡΠΏΠΈΡΠΎΡΠΈΡΠ΅ ΡΠΎ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π°, ΡΡΠΎ ΡΠ΅ Π°ΠΊΡΠΈΠ²ΠΈΡΠ° Π·Π° ΡΠΈΡΠ΅ ΠΏΠ°ΠΊΠ΅ΡΠΈ ΡΡΠΎ Π½Π΅ ΡΠΏΠ°ΡΠ°Π°Ρ Π²ΠΎ Π΄ΡΡΠ³ΠΈ Π΅Π»Π΅ΠΌΠ΅Π½ΡΠΈ Π΄Π΅ΡΠΈΠ½ΠΈΡΠ°Π½ΠΈ Π²ΠΎ ΡΠ΅ΡΠΎΡ. ΡΠ°Π±Π΅Π»Π° 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
- ΠΠΎ ΡΠΏΠΈΡΠΎΡΠΈΡΠ΅ Π½Π° ΠΊΠ°ΡΡΠΈ, Π΄ΠΎΠ·Π²ΠΎΠ»Π΅Π½Π° Π΅ ΡΠΏΠΎΡΡΠ΅Π±Π° Π½Π° ΠΊΠΎΠ½ΡΡΠ°Π½ΡΠ½ΠΈ (stateful) ΠΈΠ·ΡΠ°Π·ΠΈ: table inet filter { map portmap { type inet_service : verdict counter elements = { 22 counter ΠΏΠ°ΠΊΠ΅ΡΠΈ 0 bytes 0 : jump ssh_input, * counter ΠΏΠ°ΠΊΠ΅ΡΠΈ 0 bytes 0 : drop } } chain ssh_input { } chain wan_input { tcp dport vmap @portmap } chain prerouting { type filter hook prerouting priority raw; ΠΏΠΎΠ»ΠΈΡΠΈΠΊΠ° ΠΏΡΠΈΡΠ°ΡΠΈ; iif vmap { "lo" : jump wan_input } } }
- ΠΠΎΠ΄Π°Π΄Π΅Π½Π° Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Π° βΠ»ΠΈΡΡΠ° ΠΊΡΠΊΠΈβ Π·Π° ΠΏΡΠΈΠΊΠ°ΠΆΡΠ²Π°ΡΠ΅ Π»ΠΈΡΡΠ° Π½Π° ΡΠ°ΠΊΡΠ²Π°ΡΠΈ Π·Π° Π΄Π°Π΄Π΅Π½Π° ΡΠ°ΠΌΠΈΠ»ΠΈΡΠ° Π½Π° ΠΏΠ°ΠΊΠ΅ΡΠΈ: # nft Π»ΠΈΡΡΠ° ΠΊΡΠΊΠΈ ip ΡΡΠ΅Π΄ eth0 ΡΠ°ΠΌΠΈΠ»ΠΈΡΠ° ip { hook ingress { +0000000010 ΡΠΈΠ½ΡΠΈΡ netdev xy [nf_tables] +0000000300 ΡΠΈΠ½ΡΠΈΡ inet mw [nf} hookables inputs] { -0000000100 ΡΠΈΠ½ΡΠΈΡ ip ab [nf_tables] +0000000300 ΡΠΈΠ½ΡΠΈΡ inet mz [nf_tables] } ΠΊΡΠΊΠ° Π½Π°ΠΏΡΠ΅Π΄ { -0000000225 selinux_ipv4_forward 0000000000 ΡΠΈΠ½ΡΠΈΡ ip Π°ΠΊΡΠΈΠΎΠ½Π΅ΡΡΠΊΠΈ [nf_tokable] {0000000225} _ipv4_output } ΠΊΡΠΊΠ° ΠΏΠΎΡΡΡΡΡΠΈΡΠ°ΡΠ΅ { +0000000225 4 selinux_ipvXNUMX_postroute } }
- ΠΠ»ΠΎΠΊΠΎΠ²ΠΈΡΠ΅ Π½Π° ΡΠ΅Π΄ΠΈΡΠΈ Π΄ΠΎΠ·Π²ΠΎΠ»ΡΠ²Π°Π°Ρ jhash, symhash ΠΈ numgen ΠΈΠ·ΡΠ°Π·ΠΈ Π΄Π° ΡΠ΅ ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡΠ°Π°Ρ Π·Π° Π΄Π° ΡΠ΅ Π΄ΠΈΡΡΡΠΈΠ±ΡΠΈΡΠ°Π°Ρ ΠΏΠ°ΠΊΠ΅ΡΠΈ Π²ΠΎ ΡΠ΅Π΄ΠΈΡΠΈ Π²ΠΎ ΠΊΠΎΡΠΈΡΠ½ΠΈΡΠΊΠΈΠΎΡ ΠΏΡΠΎΡΡΠΎΡ. β¦ ΡΠ΅Π΄ Π΄ΠΎ symhash mod 65536 β¦ ΡΠ΅Π΄ΠΈΡΠ°ΡΠ° ΠΎΠ·Π½Π°ΡΡΠ²Π° Π±Π°ΡΠΏΠ°Ρ Π΄ΠΎ numgen inc mod 65536 β¦ ΡΠ΅Π΄ Π΄ΠΎ jhash oif . ΠΌΠ΅ΡΠ° ΠΎΠ·Π½Π°ΠΊΠ° mod 32 βΡΠ΅Π΄ΠΈΡΠ°β ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡΠ° ΠΈ ΡΠΎ Π»ΠΈΡΡΠΈ Π½Π° ΠΌΠ°ΠΏΠΈ Π·Π° Π΄Π° ΡΠ΅ ΠΈΠ·Π±Π΅ΡΠ΅ ΡΠ΅Π΄ΠΈΡΠ° Π²ΠΎ ΠΊΠΎΡΠΈΡΠ½ΠΈΡΠΊΠΈΠΎΡ ΠΏΡΠΎΡΡΠΎΡ Π²ΡΠ· ΠΎΡΠ½ΠΎΠ²Π° Π½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»Π½ΠΈ ΠΊΠ»ΡΡΠ΅Π²ΠΈ. ... ΡΠ΅Π΄ΠΈΡΠ°ΡΠ° ΠΎΠ·Π½Π°ΡΡΠ²Π° Π·Π°ΠΎΠ±ΠΈΠΊΠΎΠ»ΡΠ²Π°ΡΠ΅ Π½Π° ΠΊΠ°ΡΡΠ°ΡΠ° oifname { "eth0" : 0, "ppp0" : 2, "eth1" : 2 }
- ΠΠΎΠΆΠ½ΠΎ Π΅ Π΄Π° ΡΠ΅ ΠΏΡΠΎΡΠΈΡΠ°Ρ ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈΡΠ΅ ΡΡΠΎ Π²ΠΊΠ»ΡΡΡΠ²Π°Π°Ρ Π·Π±ΠΈΡΠΊΠ° Π»ΠΈΡΡΠ° Π²ΠΎ Π½Π΅ΠΊΠΎΠ»ΠΊΡ ΠΌΠ°ΠΏΠΈ. Π΄Π΅ΡΠΈΠ½ΠΈΡΠ°Ρ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΡΡΠΈ = { eth0, eth1 } ΡΠ°Π±Π΅Π»Π° ip x { ΡΠΈΠ½ΡΠΈΡ y { ΡΠΈΠΏ ΠΏΡΠΈΠΎΡΠΈΡΠ΅Ρ Π½Π° Π²Π»Π΅Π·Π½Π°ΡΠ° ΠΊΡΠΊΠ° Π·Π° ΡΠΈΠ»ΡΠ΅Ρ 0; ΠΏΠΎΠ»ΠΈΡΠΈΠΊΠ° ΠΏΡΠΈΡΠ°ΡΠΈ; iifname vmap { lo : ΠΏΡΠΈΡΠ°ΡΠΈ, $interfaces : drop } } } # nft -f x.nft # nft list ΡΠ°Π±Π΅Π»Π° ΡΠΎ ΠΏΡΠ°Π²ΠΈΠ»Π° 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 Π΄ΠΎ ip saddr map { 10.141.11.4 : 192.168.2.3-80 } ΠΈΠ»ΠΈ Π΅ΠΊΡΠΏΠ»ΠΈΡΠΈΡΠ½ΠΈ IP Π°Π΄ΡΠ΅ΡΠΈ ΠΈ ΠΏΠΎΡΡΠΈ: ... dnat Π΄ΠΎ ip saddr map { 192.168.1.2:80. . 10.141.10.2 } ΠΈΠ»ΠΈ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°ΡΠΈΠΈ Π½Π° ΠΎΠΏΡΠ΅Π³ Π½Π° IP ΠΈ ΠΏΠΎΡΡΠΈ: ... dnat to ip saddr . tcp dport ΠΌΠ°ΠΏΠ° {10.141.10.5. 8888: 8999-XNUMX. XNUMX-XNUMX }
ΠΠ·Π²ΠΎΡ: opennet.ru