π Π‘Ρ Π΅ΠΌΠ° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΡΡΠ°ΡΠΈΠΊΠ° Π² Zapret 2
Π ΡΡΠΌ Π·Π°ΠΌΠ΅ΡΠΊΠ°
ΠΠΎΠ»Π½ΡΠΉ ΠΏΡΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΠ°ΠΊΠ΅ΡΠ° Π²Π½ΡΡΡΠΈ Zapret 2: ΠΎΡ ΠΏΠ΅ΡΠ΅Ρ Π²Π°ΡΠ° ΠΈΠ· ΡΠ΄ΡΠ° ΠΠ‘ Π΄ΠΎ ΡΠΈΠ½Π°Π»ΡΠ½ΠΎΠ³ΠΎ Π²Π΅ΡΠ΄ΠΈΠΊΡΠ° Β«ΠΎΡΠΏΡΠ°Π²ΠΈΡΡ / ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ / Π²ΡΠ±ΡΠΎΡΠΈΡΡΒ». Π Π°Π·ΠΎΠ±ΡΠ°Π½Π° ΠΊΠ°ΠΆΠ΄Π°Ρ ΡΡΠ°Π΄ΠΈΡ ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅ΡΠ°
nfqws2β Π΄ΠΈΡΡΠ΅ΠΊΡΠΈΡ, conntrack, ΡΠ°ΡΠΏΠΎΠ·Π½Π°Π²Π°Π½ΠΈΠ΅ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π°, ΡΠ΅ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΡ, Π²ΡΠ±ΠΎΡ ΠΏΡΠΎΡΠΈΠ»Ρ, Π²ΡΠ·ΠΎΠ² Lua-ΠΈΠ½ΡΡΠ°Π½ΡΠΎΠ² ΠΈ Π°Π³ΡΠ΅Π³Π°ΡΠΈΡ Π²Π΅ΡΠ΄ΠΈΠΊΡΠΎΠ². ΠΠ·Π»ΠΎΠΆΠ΅Π½ΠΎ ΠΏΡΠΎΡΠ΅, ΡΠ΅ΠΌ Π² ΠΎΡΠΈΡΠΈΠ°Π»ΡΠ½ΠΎΠΉ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ, Π½ΠΎ Π±Π΅Π· ΠΏΠΎΡΠ΅ΡΠΈ Π΄Π΅ΡΠ°Π»Π΅ΠΉ. ΠΡΠΎ ΡΠΎΡΡΠ°Π² ΠΏΡΠΎΠ΅ΠΊΡΠ° (ΠΊΠ°ΠΊΠΈΠ΅ Π²ΠΎΠΎΠ±ΡΠ΅ Π΅ΡΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ) β ΡΠΎΡΠ΅Π΄Π½ΡΡ Π·Π°ΠΌΠ΅ΡΠΊΠ° ΡΡΡΡΠΊΡΡΡΠ° ΠΏΡΠΎΠ΅ΠΊΡΠ°; ΠΏΡΠΎ ΡΠ°ΠΌ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ--lua-desyncβ desync.
TL;DR
- ΠΠ΄ΠΈΠ½ΠΈΡΠ° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ β IP-ΠΏΠ°ΠΊΠ΅Ρ. Π―Π΄ΡΠΎ ΠΠ‘ ΠΎΡΠ΄Π°ΡΡ Π½ΡΠΆΠ½ΡΠ΅ ΠΏΠ°ΠΊΠ΅ΡΡ Π²
nfqws2(ΠΏΡΠΎΡΠ΅ΡΡ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ), ΠΈ ΡΡΠΎ Π΄ΠΎΡΠΎΠ³ΠΎ β ΠΏΠΎΡΡΠΎΠΌΡ Π»ΠΈΡΠ½Π΅Π΅ ΠΎΡΡΠ΅ΠΊΠ°ΡΡ ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ°Π½ΡΡΠ΅. - ΠΠ°ΠΆΠ΄ΡΠΉ ΠΏΠ°ΠΊΠ΅Ρ ΠΏΡΠΎΡ ΠΎΠ΄ΠΈΡ ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅Ρ: Π΄ΠΈΡΡΠ΅ΠΊΡΠΈΡ (ΡΠ°Π·Π±ΠΎΡ ΠΏΠΎ ΡΠ»ΠΎΡΠΌ) β conntrack (ΠΏΡΠΈΠ²ΡΠ·ΠΊΠ° ΠΊ ΠΏΠΎΡΠΎΠΊΡ) β ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΡΠΈΠΏΠ° ΠΏΠ΅ΠΉΠ»ΠΎΠ°Π΄Π° ΠΈ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π° β ΠΏΡΠΈ Π½ΡΠΆΠ΄Π΅ ΡΠ΅ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΡ ΠΈΠ· Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ² β Π²ΡΠ±ΠΎΡ ΠΏΡΠΎΡΠΈΠ»Ρ ΠΏΠΎ ΡΠΈΠ»ΡΡΡΠ°ΠΌ β Π²ΡΠ·ΠΎΠ² Lua-ΠΈΠ½ΡΡΠ°Π½ΡΠΎΠ² β ΠΈΡΠΎΠ³ΠΎΠ²ΡΠΉ Π²Π΅ΡΠ΄ΠΈΠΊΡ.
- ΠΡΠΎΡΠΈΠ»Ρ Π²ΡΠ±ΠΈΡΠ°Π΅ΡΡΡ ΠΏΠΎ ΡΠΈΠ»ΡΡΡΠ°ΠΌ (L3/L4/L7, ΠΏΠΎΡΡΡ, ipset, Ρ ΠΎΡΡΠ»ΠΈΡΡΡ) ΠΎΠ΄ΠΈΠ½ ΡΠ°Π· ΠΈ ΠΊΡΡΠΈΡΡΠ΅ΡΡΡ Π² Π·Π°ΠΏΠΈΡΠΈ ΠΏΠΎΡΠΎΠΊΠ°; ΠΏΠ΅ΡΠ΅ΡΠΌΠ°ΡΡΠΈΠ²Π°Π΅ΡΡΡ ΠΌΠ°ΠΊΡΠΈΠΌΡΠΌ Π΄Π²Π°ΠΆΠ΄Ρ β ΠΏΡΠΈ ΡΠ°ΡΠΏΠΎΠ·Π½Π°Π²Π°Π½ΠΈΠΈ L7-ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π° ΠΈ ΠΏΡΠΈ ΠΎΠ±Π½Π°ΡΡΠΆΠ΅Π½ΠΈΠΈ ΠΈΠΌΠ΅Π½ΠΈ Ρ ΠΎΡΡΠ°.
- ΠΠ½ΡΡΠ°Π½Ρ β ΠΎΠ΄ΠΈΠ½ Π²ΡΠ·ΠΎΠ² Lua-ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈΠ· ΠΏΡΠΎΡΠΈΠ»Ρ (ΡΠ΅ΡΠ΅Π·
--lua-desync). ΠΠ½ΡΡΠ°Π½ΡΡ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ ΡΡΡΠΎΠ³ΠΎ ΠΏΠΎ ΠΏΠΎΡΡΠ΄ΠΊΡ; ΠΊΠ°ΠΆΠ΄ΡΠΉ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π²Π΅ΡΠ΄ΠΈΠΊΡPASS/MODIFY/DROP, ΠΈ ΠΎΠ½ΠΈ Π°Π³ΡΠ΅Π³ΠΈΡΡΡΡΡΡ. - Π Π°Π΄ΠΈ ΡΠΊΠΎΠ½ΠΎΠΌΠΈΠΈ CPU Π΅ΡΡΡ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΡ cutoff (ΠΈΠ½ΡΡΠ°Π½Ρ/Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅/Π²Π΅ΡΡ ΠΏΠΎΡΠΎΠΊ ΠΎΡΠΊΠ»ΡΡΠ°ΡΡΡΡ ΠΎΡ Lua) ΠΈ ΡΠ΅ΠΆΠΈΠΌ ΠΎΡΠΊΠ΅ΡΡΡΠ°ΡΠΎΡΠ° β ΠΈΠ½ΡΡΠ°Π½ΡΠ°, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ°ΠΌ ΡΠΏΡΠ°Π²Π»ΡΠ΅Ρ Π²ΡΠ·ΠΎΠ²ΠΎΠΌ ΠΎΡΡΠ°Π»ΡΠ½ΡΡ .
Π‘ΡΠ°Π΄ΠΈΡ 0. ΠΠ°ΡΠ΅ΠΌ ΠΏΠ°ΠΊΠ΅Ρ Π²ΠΎΠΎΠ±ΡΠ΅ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡΡΡ Π² nfqws2
Π‘Π΅ΡΠΈ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ IP-ΠΏΠ°ΠΊΠ΅ΡΠ°ΠΌΠΈ, ΠΏΠΎΡΡΠΎΠΌΡ Π΅Π΄ΠΈΠ½ΠΈΡΠ° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ β ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΏΠ°ΠΊΠ΅Ρ. ΠΡΠΈΡΠΌΠΎΠΌ ΠΈ ΠΎΡΠΏΡΠ°Π²ΠΊΠΎΠΉ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ² Π·Π°Π½ΠΈΠΌΠ°Π΅ΡΡΡ ΡΠ΅ΡΠ΅Π²Π°Ρ ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΠ° Π² ΡΠ΄ΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ. Π nfqws2 ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π½Π΅ Π² ΡΠ΄ΡΠ΅ (kernel mode), Π° ΠΊΠ°ΠΊ ΠΎΠ±ΡΡΠ½ΡΠΉ ΠΏΡΠΎΡΠ΅ΡΡ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ (user mode). ΠΠ½Π°ΡΠΈΡ, ΠΏΠ΅ΡΠ²ΡΠΉ ΡΠ°Π³ β Β«Π²ΡΡΠ°ΡΠΈΡΡΒ» Π½ΡΠΆΠ½ΡΠ΅ ΠΏΠ°ΠΊΠ΅ΡΡ ΠΈΠ· ΡΠ΄ΡΠ° ΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ ΠΈΡ
Π² ΠΏΡΠΎΡΠ΅ΡΡ nfqws2.
ΠΡΠ΅ ΡΠ΅ΡΡΡΠ΅ ΡΡΠ΅Π΄ΡΡΠ²Π° ΠΏΠ΅ΡΠ΅Ρ
Π²Π°ΡΠ° (Linux β iptables/nftables, FreeBSD β ipfw, OpenBSD β pf, Windows β WinDivert; ΠΏΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅ Π² ΡΡΡΡΠΊΡΡΡΠ° ΠΏΡΠΎΠ΅ΠΊΡΠ°) ΡΠΌΠ΅ΡΡ ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΠΈΠ»ΡΡΡΠΎΠ²Π°ΡΡ ΠΏΠ°ΠΊΠ΅ΡΡ Π΅ΡΡ Π½Π° ΡΡΠΎΡΠΎΠ½Π΅ ΡΠ΄ΡΠ°. ΠΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΡΠΈΠ»ΡΡΡΠ°ΡΠΈΠΈ β Π² Linux.
ΠΠΎΡΠ΅ΠΌΡ ΡΠ°Π½Π½ΡΡ ΡΠΈΠ»ΡΡΡΠ°ΡΠΈΡ ΠΊΡΠΈΡΠΈΡΠ½Π°
ΠΠ΅ΡΠ΅Π΄Π°ΡΠ° ΠΏΠ°ΠΊΠ΅ΡΠ° ΠΈΠ· ΡΠ΄ΡΠ° Π² user mode ΠΈ ΠΎΠ±ΡΠ°ΡΠ½ΠΎ ΡΠΎΠΏΡΡΠΆΠ΅Π½Π° ΡΠΎ Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΡΠΌΠΈ Π½Π°ΠΊΠ»Π°Π΄Π½ΡΠΌΠΈ ΡΠ°ΡΡ ΠΎΠ΄Π°ΠΌΠΈ (ΡΡΠΎ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ° ΠΌΠ΅ΠΆΠ΄Ρ ΡΠ΄ΡΠΎΠΌ ΠΈ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠΌ Π½Π° ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΏΠ°ΠΊΠ΅Ρ). Π§Π΅ΠΌ Π±ΠΎΠ»ΡΡΠ΅ Π½Π΅Π½ΡΠΆΠ½ΠΎΠ³ΠΎ ΡΡΠ°ΡΠΈΠΊΠ° ΠΎΡΡΠ΅ΡΡ ΠΏΡΡΠΌΠΎ Π½Π° ΠΏΠ΅ΡΠ΅Ρ Π²Π°ΡΠ΅, ΡΠ΅ΠΌ ΠΌΠ΅Π½ΡΡΠ΅ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ² ΠΏΡΠΎΠΉΠ΄ΡΡ ΡΡΠΎΡ Π΄ΠΎΡΠΎΠ³ΠΎΠΉ ΠΏΡΡΡ β ΠΈ ΡΠ΅ΠΌ Π½ΠΈΠΆΠ΅ Π½Π°Π³ΡΡΠ·ΠΊΠ° Π½Π° ΠΏΡΠΎΡΠ΅ΡΡΠΎΡ. ΠΠΎΡΡΠΎΠΌΡ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ: ΠΎΡΡΠ΅ΠΊΠ°ΠΉ Π»ΠΈΡΠ½Π΅Π΅ ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ°Π½ΡΡΠ΅.
Π‘ΡΠ°Π΄ΠΈΡ 1. ΠΠΈΡΡΠ΅ΠΊΡΠΈΡ β ΡΠ°Π·Π±ΠΎΡ ΠΏΠ°ΠΊΠ΅ΡΠ° Π½Π° ΡΠ°ΡΡΠΈ
ΠΠ°ΠΊΠ΅Ρ ΠΏΡΠΈΡΡΠ» Π² nfqws2. ΠΠ΅ΡΠ²ΠΎΠ΅, ΡΡΠΎ ΡΠΎΡ Π΄Π΅Π»Π°Π΅Ρ, β ΡΠ°Π·Π±ΠΈΡΠ°Π΅Ρ Π΅Π³ΠΎ ΠΏΠΎ ΡΡΠΎΠ²Π½ΡΠΌ ΠΌΠΎΠ΄Π΅Π»ΠΈ OSI: Π²ΡΠ΄Π΅Π»ΡΠ΅Ρ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΈ ip, ipv6, tcp, udp ΠΈ ΠΏΠΎΠ»Π΅ Π΄Π°Π½Π½ΡΡ
(payload). ΠΡΠΎ Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ Π΄ΠΈΡΡΠ΅ΠΊΡΠΈΠ΅ΠΉ, Π° Π΅Ρ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ β Π΄ΠΈΡΡΠ΅ΠΊΡ (dis): ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠ°ΠΊΠ΅ΡΠ° Π² Π²ΠΈΠ΄Π΅ ΡΡΡΡΠΊΡΡΡ, ΠΊ ΠΏΠΎΠ»ΡΠΌ ΠΊΠΎΡΠΎΡΡΡ
ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±ΡΠ°ΡΠ°ΡΡΡΡ ΠΏΠΎ ΠΈΠΌΠ΅Π½ΠΈ.
ΠΡΠΎΡΠ΅ Π³ΠΎΠ²ΠΎΡΡ
ΠΡΠΈΡΠ΅Π΄ΡΠΈΠΉ ΠΏΠ°ΠΊΠ΅Ρ β ΡΡΠΎ ΡΠΏΠ»ΠΎΡΠ½Π°Ρ Π»Π΅Π½ΡΠ° Π±Π°ΠΉΡ. ΠΠΈΡΡΠ΅ΠΊΡΠΈΡ Β«ΡΠ°ΡΠΊΠ»Π°Π΄ΡΠ²Π°Π΅ΡΒ» Π΅Ρ ΠΏΠΎ ΠΏΠΎΠ»ΠΎΡΠΊΠ°ΠΌ: Π²ΠΎΡ IP-Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ, Π²ΠΎΡ TCP-Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ, Π²ΠΎΡ ΠΏΡΠΈΠΊΠ»Π°Π΄Π½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅. ΠΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ Lua-ΠΊΠΎΠ΄ ΠΈ C-ΡΠ΄ΡΠΎ ΠΌΠΎΠ³ΡΡ ΡΠΈΡΠ°ΡΡ ΠΈ ΠΌΠ΅Π½ΡΡΡ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΠ΅ ΠΏΠΎΠ»Ρ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, TCP sequence number), Π° Π½Π΅ ΡΡΠΈΡΠ°ΡΡ Π±Π°ΠΉΡΡ Π²ΡΡΡΠ½ΡΡ. ΠΠΎΠ΄Π΅Π»Ρ OSI β ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠ΅ Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΡΠ΅ΡΠΈ Π½Π° ΡΡΠΎΠ²Π½ΠΈ: IP β ΡΠ΅ΡΠ΅Π²ΠΎΠΉ ΡΡΠΎΠ²Π΅Π½Ρ, TCP/UDP β ΡΡΠ°Π½ΡΠΏΠΎΡΡΠ½ΡΠΉ, Π΄Π°Π½Π½ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ β Π²ΡΡΠ΅.
Π‘ΡΠ°Π΄ΠΈΡ 2. conntrack β ΠΏΡΠΈΠ²ΡΠ·ΠΊΠ° ΠΏΠ°ΠΊΠ΅ΡΠ° ΠΊ ΠΏΠΎΡΠΎΠΊΡ
ΠΠ°Π»ΡΡΠ΅ Π²ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π²ΡΡΡΠΎΠ΅Π½Π½Π°Ρ Π² nfqws2 ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΠ° conntrack (connection tracking, ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π½ΠΈΠ΅ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠΉ) β ΡΠΈΡΡΠ΅ΠΌΠ° ΡΡΡΡΠ° ΠΏΠΎΡΠΎΠΊΠΎΠ² ΠΏΠΎΠ²Π΅ΡΡ
ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ
ΠΏΠ°ΠΊΠ΅ΡΠΎΠ². ΠΠΎ Π΄Π°Π½Π½ΡΠΌ ΡΡΠΎΠ²Π½Π΅ΠΉ L3/L4 ΠΏΠ°ΠΊΠ΅ΡΠ° (Π°Π΄ΡΠ΅ΡΠ°, ΠΏΠΎΡΡΡ, ΠΏΡΠΎΡΠΎΠΊΠΎΠ») ΠΈΡΠ΅ΡΡΡ ΡΠΆΠ΅ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠ°Ρ Π·Π°ΠΏΠΈΡΡ ΠΎ ΠΏΠΎΡΠΎΠΊΠ΅; Π΅ΡΠ»ΠΈ Π΅Ρ Π½Π΅Ρ β ΡΠΎΠ·Π΄Π°ΡΡΡΡ Π½ΠΎΠ²Π°Ρ. Π‘ΡΠ°ΡΡΠ΅ Π·Π°ΠΏΠΈΡΠΈ, ΠΏΠΎ ΠΊΠΎΡΠΎΡΡΠΌ Π΄Π°Π²Π½ΠΎ Π½Π΅Ρ Π°ΠΊΡΠΈΠ²Π½ΠΎΡΡΠΈ, ΡΠ΄Π°Π»ΡΡΡΡΡ.
Π§ΡΠΎ conntrack Ρ ΡΠ°Π½ΠΈΡ ΠΈ Π΄Π΅Π»Π°Π΅Ρ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΏΠΎΡΠΎΠΊΠ°:
- ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π΅Ρ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΎΠ΅ Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΏΠ°ΠΊΠ΅ΡΠ° (Π²Ρ ΠΎΠ΄ΡΡΠΈΠΉ / ΠΈΡΡ ΠΎΠ΄ΡΡΠΈΠΉ);
- Π²Π΅Π΄ΡΡ ΠΏΠΎΠ΄ΡΡΡΡ ΠΏΡΠΎΡΠ΅Π΄ΡΠΈΡ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ² ΠΈ Π±Π°ΠΉΡ Π² ΠΎΠ±Π΅ ΡΡΠΎΡΠΎΠ½Ρ;
- ΡΠ»Π΅Π΄ΠΈΡ Π·Π° sequence numbers Π΄Π»Ρ TCP;
- ΠΏΡΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ ΡΠ±ΠΎΡΠΊΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΠΌΠΈ ΠΏΠ°ΠΊΠ΅ΡΠ°ΠΌΠΈ (ΡΠΌ. ΡΡΠ°Π΄ΠΈΡ 4).
ΠΡΠΎΡΠ΅ Π³ΠΎΠ²ΠΎΡΡ
ΠΡΠ΄Π΅Π»ΡΠ½ΡΠΉ ΠΏΠ°ΠΊΠ΅Ρ ΡΠ°ΠΌ ΠΏΠΎ ΡΠ΅Π±Π΅ ΠΌΠ°Π»ΠΎ ΡΡΠΎ Π³ΠΎΠ²ΠΎΡΠΈΡ. conntrack ΡΠ²ΡΠ·ΡΠ²Π°Π΅Ρ ΠΏΠ°ΠΊΠ΅ΡΡ Π² Β«ΡΠ°Π·Π³ΠΎΠ²ΠΎΡΒ» (ΠΏΠΎΡΠΎΠΊ) ΠΌΠ΅ΠΆΠ΄Ρ Π΄Π²ΡΠΌΡ ΡΡΠΎΡΠΎΠ½Π°ΠΌΠΈ ΠΈ ΠΏΠΎΠΌΠ½ΠΈΡ ΠΏΡΠΎ Π½Π΅Π³ΠΎ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ: ΡΠΊΠΎΠ»ΡΠΊΠΎ Π²ΡΠ΅Π³ΠΎ ΠΏΡΠΎΡΠ»ΠΎ, Π² ΠΊΠ°ΠΊΡΡ ΡΡΠΎΡΠΎΠ½Ρ, Π½Π° ΠΊΠ°ΠΊΠΎΠΌ ΠΌΠ΅ΡΡΠ΅ ΠΏΠΎΡΠΎΠΊΠ° ΠΌΡ ΡΠ΅ΠΉΡΠ°Ρ. ΠΡΠΎΡ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ Π½ΡΠΆΠ΅Π½ ΠΏΠΎΡΡΠΈ Π²ΡΠ΅ΠΌ Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠΈΠΌ ΡΠ΅ΡΠ΅Π½ΠΈΡΠΌ.
Π‘ΡΠ°Π΄ΠΈΡ 3. Π’ΠΈΠΏ ΠΏΠ΅ΠΉΠ»ΠΎΠ°Π΄Π° ΠΈ ΠΏΡΠΎΡΠΎΠΊΠΎΠ» ΠΏΠΎΡΠΎΠΊΠ°
ΠΠΎ ΡΠΈΠ³Π½Π°ΡΡΡΠ°ΠΌ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΡΡΡ ΡΠΈΠΏ ΠΏΠ΅ΠΉΠ»ΠΎΠ°Π΄Π° β ΡΡΠΎ Π·Π° ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ Π² ΡΡΠΎΠΌ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠΌ ΠΏΠ°ΠΊΠ΅ΡΠ΅ (ΠΈΠ»ΠΈ Π³ΡΡΠΏΠΏΠ΅ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ²): TLS ClientHello, HTTP-Π·Π°ΠΏΡΠΎΡ, QUIC Initial ΠΈ Ρ. Π΄. (ΡΠΌ. payload). ΠΠ° ΠΎΡΠ½ΠΎΠ²Π°Π½ΠΈΠΈ ΡΠΈΠΏΠ° ΠΏΠ΅ΠΉΠ»ΠΎΠ°Π΄Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΡΡΡ ΡΠΈΠΏ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π° Π²ΡΠ΅Π³ΠΎ ΠΏΠΎΡΠΎΠΊΠ°, ΠΈ ΠΎΠ½ Π·Π°ΠΊΡΠ΅ΠΏΠ»ΡΠ΅ΡΡΡ Π·Π° ΠΏΠΎΡΠΎΠΊΠΎΠΌ Π΄ΠΎ ΠΊΠΎΠ½ΡΠ° Π΅Π³ΠΎ ΡΡΡΠ΅ΡΡΠ²ΠΎΠ²Π°Π½ΠΈΡ.
Π’ΠΎΠ½ΠΊΠΎΡΡΡ: Π² ΡΠ°ΠΌΠΊΠ°Ρ
ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΠΎΡΠΎΠΊΠ° ΠΌΠΎΠ³ΡΡ ΠΈΠ΄ΡΠΈ ΡΠ°Π·Π½ΡΠ΅ ΡΠΈΠΏΡ ΠΏΠ΅ΠΉΠ»ΠΎΠ°Π΄ΠΎΠ². ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΠΎΡΠΎΠΊ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π° XMPP ΠΎΠ±ΡΡΠ½ΠΎ Π½Π΅ΡΡΡ ΠΈ ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ XMPP-ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ, ΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ, ΡΠ²ΡΠ·Π°Π½Π½ΡΠ΅ Ρ TLS. Π’ΠΈΠΏ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π° ΠΏΠΎΡΠΎΠΊΠ° ΠΏΡΠΈ ΡΡΠΎΠΌ ΠΎΡΡΠ°ΡΡΡΡ XMPP, Π½ΠΎ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠ΅ ΠΏΠ°ΠΊΠ΅ΡΡ ΠΏΠΎΠ»ΡΡΠ°ΡΡ ΡΠ°Π·Π½ΡΠ΅ ΡΠΈΠΏΡ ΠΏΠ΅ΠΉΠ»ΠΎΠ°Π΄Π° β ΠΊΠ°ΠΊ ΠΈΠ·Π²Π΅ΡΡΠ½ΡΠ΅, ΡΠ°ΠΊ ΠΈ Π½Π΅ΠΈΠ·Π²Π΅ΡΡΠ½ΡΠ΅. ΠΠ΅ΡΠ°ΡΠΏΠΎΠ·Π½Π°Π½Π½ΡΠΉ ΠΏΠ΅ΠΉΠ»ΠΎΠ°Π΄ ΠΏΠΎΠΌΠ΅ΡΠ°Π΅ΡΡΡ ΡΠΈΠΏΠΎΠΌ unknown.
ΠΡΠΎΡΠ΅ Π³ΠΎΠ²ΠΎΡΡ
Β«ΠΡΠΎΡΠΎΠΊΠΎΠ» ΠΏΠΎΡΠΎΠΊΠ°Β» β ΡΡΠΎ ΡΡΠ»ΡΠΊ Π½Π° Π²Π΅ΡΡ ΡΠ°Π·Π³ΠΎΠ²ΠΎΡ ΡΠ΅Π»ΠΈΠΊΠΎΠΌ (ΠΎΠ½ ΡΡΠ°Π²ΠΈΡΡΡ ΠΎΠ΄ΠΈΠ½ ΡΠ°Π· ΠΈ Π½Π΅ ΠΌΠ΅Π½ΡΠ΅ΡΡΡ). Β«Π’ΠΈΠΏ ΠΏΠ΅ΠΉΠ»ΠΎΠ°Π΄Π°Β» β ΡΡΠ»ΡΠΊ Π½Π° ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΠΉ ΠΏΠ°ΠΊΠ΅Ρ Π²Π½ΡΡΡΠΈ ΡΡΠΎΠ³ΠΎ ΡΠ°Π·Π³ΠΎΠ²ΠΎΡΠ° (Ρ ΡΠ°Π·Π½ΡΡ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ² ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ ΠΎΡΠ»ΠΈΡΠ°ΡΡΡΡ). ΠΠ½ΠΎΠ³ΠΈΠ΅ ΠΏΡΠΈΡΠΌΡ ΠΎΠ±Ρ ΠΎΠ΄Π° ΡΠ΅Π°Π³ΠΈΡΡΡΡ ΠΈΠΌΠ΅Π½Π½ΠΎ Π½Π° ΡΠΈΠΏ ΠΏΠ΅ΠΉΠ»ΠΎΠ°Π΄Π° ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠ³ΠΎ ΠΏΠ°ΠΊΠ΅ΡΠ°.
Π‘ΡΠ°Π΄ΠΈΡ 4. Π Π΅ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ ΠΈΠ· Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ² (reasm / decrypt)
ΠΠ½ΠΎΠ³Π΄Π° ΠΎΠ΄Π½ΠΎ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ Π½Π΅ ΠΏΠΎΠΌΠ΅ΡΠ°Π΅ΡΡΡ Π² ΠΎΠ΄ΠΈΠ½ ΠΏΠ°ΠΊΠ΅Ρ (ΠΊΠ»Π°ΡΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΏΡΠΈΠΌΠ΅Ρ β Π±ΠΎΠ»ΡΡΠΎΠΉ TLS ClientHello Ρ post-quantum ΠΊΠ»ΡΡΠ°ΠΌΠΈ). ΠΡΠ»ΠΈ Π΄Π»Ρ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠ³ΠΎ ΠΏΠ΅ΠΉΠ»ΠΎΠ°Π΄Π° ΠΈ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π° ΠΏΠΎΡΠΎΠΊΠ° Π²ΡΡΡΠ½ΡΠ΅ΡΡΡ, ΡΡΠΎ Π½ΡΠΆΠ½Π° ΡΠ΅ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΡ ΠΈΠ· Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ
ΠΏΠ°ΠΊΠ΅ΡΠΎΠ², nfqws2:
- Π½Π°ΡΠΈΠ½Π°Π΅Ρ Π½Π°ΠΊΠ°ΠΏΠ»ΠΈΠ²Π°ΡΡ ΡΡΠΈ ΠΏΠ°ΠΊΠ΅ΡΡ, ΠΏΡΠΈΠ²ΡΠ·ΡΠ²Π°Ρ ΠΈΡ ΠΊ Π·Π°ΠΏΠΈΡΠΈ Π² conntrack;
- Π·Π°ΠΏΡΠ΅ΡΠ°Π΅Ρ ΠΈΡ Π½Π΅ΠΌΠ΅Π΄Π»Π΅Π½Π½ΡΡ ΠΎΡΠΏΡΠ°Π²ΠΊΡ (Π΄Π΅ΡΠΆΠΈΡ, ΠΏΠΎΠΊΠ° Π½Π΅ ΡΠΎΠ±Π΅ΡΡΡ Π²ΡΡ);
- ΠΏΠΎΡΠ»Π΅ ΠΏΡΠΈΡΠΌΠ° Π²ΡΠ΅Ρ ΡΠ°ΡΡΠ΅ΠΉ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ ΡΠ΅ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΡ, Π° ΠΏΡΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ β Π΄Π΅ΡΠΈΡΡΠΎΠ²ΠΊΡ ΡΠΎΡΡΠ°Π²Π½ΠΎΠ³ΠΎ ΠΏΠ΅ΠΉΠ»ΠΎΠ°Π΄Π°.
ΠΠ°Π»ΡΠ½Π΅ΠΉΡΠΈΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΡ ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡΡΡ ΡΠΆΠ΅ Π½Π° Π±Π°Π·Π΅ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΡΠΎΠ±ΡΠ°Π½Π½ΠΎΠ³ΠΎ ΠΏΠ΅ΠΉΠ»ΠΎΠ°Π΄Π° β ΠΎΠ½ Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ reasm (reassembled, ΡΠ΅Π°ΡΡΠ΅ΠΌΠ±Π»ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ), Π° ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ ΡΠ±ΠΎΡΠΊΠΈ Ρ ΡΠ°ΡΡΠΈΡΡΠΎΠ²ΠΊΠΎΠΉ β decrypt.
ΠΡΠΎΡΠ΅ Π³ΠΎΠ²ΠΎΡΡ
ΠΡΠ»ΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ Β«ΡΠ°Π·ΡΠ΅Π·Π°Π½ΠΎΒ» ΡΠ΅ΡΡΡ Π½Π° Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ²,
nfqws2ΠΏΡΠΈΠ΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΠΈΡ , ΡΠΊΠ»Π΅ΠΈΠ²Π°Π΅Ρ ΠΎΠ±ΡΠ°ΡΠ½ΠΎ Π² ΡΠ΅Π»ΡΠΉ ΠΏΠ΅ΠΉΠ»ΠΎΠ°Π΄ (reasm) ΠΈ ΡΠΎΠ»ΡΠΊΠΎ ΡΠΎΠ³Π΄Π° Π΄Π°ΡΡ ΡΡΡΠ°ΡΠ΅Π³ΠΈΡΠΌ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ ΠΏΠΎΠ»Π½ΠΎΠΉ ΠΊΠ°ΡΡΠΈΠ½ΠΎΠΉ. ΠΠ½Π°ΡΠ΅, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π΄ΠΎΠΌΠ΅Π½ Π² SNI ΠΌΠΎΠ³ Π±Ρ ΠΎΠΊΠ°Π·Π°ΡΡΡΡ ΡΠ°Π·ΠΎΡΠ²Π°Π½ ΠΌΠ΅ΠΆΠ΄Ρ ΠΏΠ°ΠΊΠ΅ΡΠ°ΠΌΠΈ, ΠΈ Π΅Π³ΠΎ Π½Π΅Π»ΡΠ·Ρ Π±ΡΠ»ΠΎ Π±Ρ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎ Π½Π°ΠΉΡΠΈ ΠΈΠ»ΠΈ ΡΠ°Π·ΡΠ΅Π·Π°ΡΡ.
Π‘ΡΠ°Π΄ΠΈΡ 5. ΠΠ»Π°ΡΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ ΠΏΠΎ ΠΏΡΠΎΡΠΈΠ»ΡΠΌ
ΠΠΎΠ³Π΄Π° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΠΏΠ΅ΠΉΠ»ΠΎΠ°Π΄Π΅ ΠΏΠΎΠ»ΡΡΠ΅Π½Π°, Π½Π°ΡΡΡΠΏΠ°Π΅Ρ ΠΎΡΠ΅ΡΠ΅Π΄Ρ ΡΠΈΡΡΠ΅ΠΌΡ ΠΊΠ»Π°ΡΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ ΠΏΠΎ ΠΏΡΠΎΡΠΈΠ»ΡΠΌ. ΠΡΠΎΡΠΈΠ»Ρ β ΡΡΠΎ Π½Π°Π±ΠΎΡ ΠΈΠ· ΡΠΈΠ»ΡΡΡΠΎΠ² (ΠΊΠΎΠΌΡ ΠΎΠ½ Π°Π΄ΡΠ΅ΡΠΎΠ²Π°Π½) ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄-Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ (ΡΡΠΎ Π΄Π΅Π»Π°ΡΡ). ΠΡΠΎΡΠΈΠ»ΠΈ ΡΠΈΠ»ΡΡΡΡΡΡΡΡ ΠΏΠΎ:
- L3 β Π²Π΅ΡΡΠΈΡ IP-ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π°, Π½ΠΎΠΌΠ΅Ρ IP-ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π°,
ipset-Ρ (ΡΠΏΠΈΡΠΊΠΈ IP-Π°Π΄ΡΠ΅ΡΠΎΠ²); - L4 β ΠΏΠΎΡΡΡ TCP ΠΈΠ»ΠΈ UDP,
type/codeΠ΄Π»Ρ ICMP; - L6/L7 β ΡΠΈΠΏ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π° ΠΏΠΎΡΠΎΠΊΠ°, ΡΠΏΠΈΡΠΊΠΈ Π΄ΠΎΠΌΠ΅Π½ΠΎΠ² (Ρ ΠΎΡΡΠ»ΠΈΡΡΡ).
ΠΡΠ°Π²ΠΈΠ»ΠΎ Π²ΡΠ±ΠΎΡΠ°: ΠΏΡΠΎΡΠΈΠ»ΠΈ ΡΠΊΠ°Π½ΠΈΡΡΡΡΡΡ ΡΡΡΠΎΠ³ΠΎ ΠΏΠΎ ΠΏΠΎΡΡΠ΄ΠΊΡ, ΠΎΡ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ ΠΊ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅ΠΌΡ. ΠΡΠΈ ΠΏΠ΅ΡΠ²ΠΎΠΌ ΠΆΠ΅ ΡΠΎΠ²ΠΏΠ°Π΄Π΅Π½ΠΈΠΈ ΡΠΈΠ»ΡΡΡΠ° ΡΡΠΎΡ ΠΏΡΠΎΡΠΈΠ»Ρ Π²ΡΠ±ΠΈΡΠ°Π΅ΡΡΡ, ΠΈ ΡΠΊΠ°Π½ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΡΠ΅ΠΊΡΠ°ΡΠ°Π΅ΡΡΡ. ΠΡΠ»ΠΈ Π½Π΅ ΠΏΠΎΠ΄ΠΎΡΡΠ» Π½ΠΈ ΠΎΠ΄ΠΈΠ½ β Π±Π΅ΡΡΡΡΡ ΠΏΡΠΎΡΠΈΠ»Ρ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ Π½Π΅Ρ Π½ΠΈΠΊΠ°ΠΊΠΈΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ (ΡΠΎ Π΅ΡΡΡ Ρ ΡΡΠ°ΡΠΈΠΊΠΎΠΌ Π½ΠΈΡΠ΅Π³ΠΎ Π½Π΅ Π΄Π΅Π»Π°Π΅ΡΡΡ).
ΠΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΏΡΠΎΡΠΈΠ»Ρ
ΠΡΠ±ΡΠ°Π½Π½ΡΠΉ ΠΏΡΠΎΡΠΈΠ»Ρ ΠΊΡΡΠΈΡΡΠ΅ΡΡΡ Π² Π·Π°ΠΏΠΈΡΠΈ conntrack, ΠΏΠΎΡΡΠΎΠΌΡ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π³ΠΎ ΠΏΠ°ΠΊΠ΅ΡΠ° ΠΏΠΎΡΠΎΠΊΠ° ΠΏΠΎΠΈΡΠΊ Π·Π°Π½ΠΎΠ²ΠΎ Π½Π΅ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ β ΡΡΠΎ ΡΠΊΠΎΠ½ΠΎΠΌΠΈΡ CPU. ΠΠΎΠ²ΡΠΎΡΠ½ΡΠΉ ΠΏΠΎΠΈΡΠΊ Π·Π°ΠΏΡΡΠΊΠ°Π΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ ΠΈΡΡ ΠΎΠ΄Π½ΡΡ Π΄Π°Π½Π½ΡΡ , Π° ΡΠ°ΠΊΠΈΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π²ΡΠ΅Π³ΠΎ Π΄Π²Π°: ΠΎΠ±Π½Π°ΡΡΠΆΠ΅Π½ΠΈΠ΅ L7-ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π° ΠΈ ΠΎΠ±Π½Π°ΡΡΠΆΠ΅Π½ΠΈΠ΅ ΠΈΠΌΠ΅Π½ΠΈ Ρ ΠΎΡΡΠ°. Π ΡΡΠΈΡ ΡΠ»ΡΡΠ°ΡΡ ΠΏΡΠΎΡΠΈΠ»Ρ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΠ΅ΡΠ΅ΡΠΌΠΎΡΡΠ΅Π½ ΠΈ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΡΠ½. ΠΠ° Π²ΡΡ Π²ΡΠ΅ΠΌΡ ΠΆΠΈΠ·Π½ΠΈ ΠΏΠΎΡΠΎΠΊΠ° ΡΠ°ΠΊΠΈΡ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π½Π΅ Π±ΠΎΠ»Π΅Π΅ Π΄Π²ΡΡ β ΡΠΎΠ²Π½ΠΎ ΠΏΠΎΡΠΎΠΌΡ, ΡΡΠΎ ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΠΌΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° Π²ΡΠ΅Π³ΠΎ Π΄Π²Π°.
Π‘ΡΠ°Π΄ΠΈΡ 6. ΠΠ½ΡΡΠ°Π½ΡΡ β Π²ΡΠ·ΠΎΠ²Ρ Lua-ΡΡΠ½ΠΊΡΠΈΠΉ Π²Π½ΡΡΡΠΈ ΠΏΡΠΎΡΠΈΠ»Ρ
ΠΡΠΎΡΠΈΠ»Ρ Π²ΡΠ±ΡΠ°Π½. ΠΠ° Π΅Π³ΠΎ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ ΠΎΡΠ²Π΅ΡΠ°ΡΡ Lua-ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΈ ΠΈΡ Π² ΠΏΡΠΎΡΠΈΠ»Π΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»ΡΠ½ΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ. ΠΠ°ΠΆΠ΄ΡΠΉ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΉ Π²ΡΠ·ΠΎΠ² Lua-ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈΠ· ΠΏΡΠΎΡΠΈΠ»Ρ Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ ΠΈΠ½ΡΡΠ°Π½ΡΠΎΠΌ (ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠΎΠΌ Π²ΡΠ·ΠΎΠ²Π°).
ΠΠ°ΡΠ΅ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΏΠΎΠ½ΡΡΠΈΠ΅ ΠΈΠ½ΡΡΠ°Π½ΡΠ°: ΠΎΠ΄Π½Π° ΠΈ ΡΠ° ΠΆΠ΅ ΡΡΠ½ΠΊΡΠΈΡ ΠΌΠΎΠΆΠ΅Ρ Π²ΡΠ·ΡΠ²Π°ΡΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ°Π· Ρ ΡΠ°Π·Π½ΡΠΌΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°ΠΌΠΈ. ΠΠΎΡΡΠΎΠΌΡ ΠΈΠ½ΡΡΠ°Π½Ρ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΡΠΈΡΡΠ΅ΡΡΡ ΠΏΠ°ΡΠΎΠΉ Β«Π½ΠΎΠΌΠ΅Ρ ΠΏΡΠΎΡΠΈΠ»Ρ + ΠΏΠΎΡΡΠ΄ΠΊΠΎΠ²ΡΠΉ Π½ΠΎΠΌΠ΅Ρ Π²ΡΠ·ΠΎΠ²Π° Π²Π½ΡΡΡΠΈ ΠΏΡΠΎΡΠΈΠ»ΡΒ». ΠΠ½ΡΡΠ°Π½ΡΡ Π·Π°Π΄Π°ΡΡΡΡ ΡΠ»Π°Π³Π°ΠΌΠΈ --lua-desync, ΠΈ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ ΡΠ²ΠΎΠΉ Π½Π°Π±ΠΎΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»ΡΠ½ΡΡ
ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ².
ΠΠΎΡΡΠ΄ΠΎΠΊ Π²ΡΠ·ΠΎΠ²Π° ΠΈΠΌΠ΅Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅
ΠΠ½ΡΡΠ°Π½ΡΡ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ ΡΡΡΠΎΠ³ΠΎ Π² ΡΠΎΠΌ ΠΏΠΎΡΡΠ΄ΠΊΠ΅, Π² ΠΊΠ°ΠΊΠΎΠΌ Π·Π°Π΄Π°Π½Ρ ΡΠ»Π°Π³ΠΈ
--lua-desync. ΠΡΠΎΡ ΠΏΠΎΡΡΠ΄ΠΎΠΊ ΠΏΡΠΈΠ½ΡΠΈΠΏΠΈΠ°Π»Π΅Π½ Π΄Π»Ρ Π»ΠΎΠ³ΠΈΠΊΠΈ ΡΡΡΠ°ΡΠ΅Π³ΠΈΠΈ: Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ½Π°ΡΠ°Π»Π° ΠΎΡΠΏΡΠ°Π²ΠΈΡΡ ΡΠ΅ΠΉΠΊΠΎΠ²ΡΠΉ ΠΏΠ°ΠΊΠ΅Ρ, ΠΏΠΎΡΠΎΠΌ Π½Π°ΡΠ΅Π·Π°ΡΡ ΡΠ΅Π°Π»ΡΠ½ΡΠΉ β ΠΈ Π½Π°ΠΎΠ±ΠΎΡΠΎΡ ΡΡΠΎ ΡΠΆΠ΅ Π΄ΡΡΠ³Π°Ρ ΡΡΡΠ°ΡΠ΅Π³ΠΈΡ. ΠΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅ ΠΏΡΠΎ ΠΎΡΠ΅ΡΡΠ΄Π½ΠΎΡΡΡ β ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ².
ΠΠ½ΡΡΡΠΈΠΏΡΠΎΡΠΈΠ»ΡΠ½ΡΠ΅ ΡΠΈΠ»ΡΡΡΡ
ΠΡΠΎΠΌΠ΅ ΡΠΈΠ»ΡΡΡΠΎΠ² Π²ΡΠ±ΠΎΡΠ° ΠΏΡΠΎΡΠΈΠ»Ρ Π΅ΡΡΡ Π΅ΡΡ Π²Π½ΡΡΡΠΈΠΏΡΠΎΡΠΈΠ»ΡΠ½ΡΠ΅ ΡΠΈΠ»ΡΡΡΡ β ΠΎΠ½ΠΈ ΡΡΠΆΠ°ΡΡ, ΠΊΠ°ΠΊΠΈΠ΅ ΠΏΠ°ΠΊΠ΅ΡΡ Π΄ΠΎΠΉΠ΄ΡΡ Π΄ΠΎ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΡ ΠΈΠ½ΡΡΠ°Π½ΡΠΎΠ². ΠΡ ΡΡΠΈ ΡΠΈΠΏΠ°:
--payloadβ ΡΠΏΠΈΡΠΎΠΊ ΡΠΈΠΏΠΎΠ² ΠΏΠ΅ΠΉΠ»ΠΎΠ°Π΄Π°, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠ½ΡΡΠ°Π½Ρ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ (ΡΠΌ. payload);--in-rangeΠΈ--out-rangeβ Π΄Π²Π° Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π½ΡΡ ΡΠΈΠ»ΡΡΡΠ°, Π·Π°Π΄Π°ΡΡΠΈΡ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ ΠΏΠΎΠ·ΠΈΡΠΈΠΉ Π²Π½ΡΡΡΠΈ ΠΏΠΎΡΠΎΠΊΠ°, ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΡΠΉ ΠΈΠ½ΡΡΠ°Π½ΡΡ (ΡΠΌ. out-range).
ΠΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½ΡΠΉ Π²Π½ΡΡΡΠΈΠΏΡΠΎΡΠΈΠ»ΡΠ½ΡΠΉ ΡΠΈΠ»ΡΡΡ Π΄Π΅ΠΉΡΡΠ²ΡΠ΅Ρ Π½Π° Π²ΡΠ΅ ΠΏΠΎΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΈΠ½ΡΡΠ°Π½ΡΡ β Π΄ΠΎ ΡΠ΅Ρ ΠΏΠΎΡ, ΠΏΠΎΠΊΠ° Π΅Π³ΠΎ Π½Π΅ ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡ. ΠΠ»Π°Π²Π½ΡΠΉ ΡΠΌΡΡΠ» ΡΡΠΈΡ ΡΠΈΠ»ΡΡΡΠΎΠ² β ΡΠΎΠΊΡΠ°ΡΠΈΡΡ ΡΠΈΡΠ»ΠΎ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΌΠ΅Π΄Π»Π΅Π½Π½ΡΡ Π²ΡΠ·ΠΎΠ²ΠΎΠ² Lua, ΠΏΡΠΈΠ½ΡΠ² ΠΌΠ°ΠΊΡΠΈΠΌΡΠΌ ΡΠ΅ΡΠ΅Π½ΠΈΠΉ Π½Π° Π±ΡΡΡΡΠΎΠΉ ΡΡΠΎΡΠΎΠ½Π΅ C-ΠΊΠΎΠ΄Π°.
Π‘ΡΠ°Π΄ΠΈΡ 7. Π§ΡΠΎ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ Π²Π½ΡΡΡΠΈ Lua-ΠΈΠ½ΡΡΠ°Π½ΡΠ°
ΠΠ°ΠΊΠ΅Ρ Π΄ΠΎΡΡΠ» Π΄ΠΎ Lua-ΠΈΠ½ΡΡΠ°Π½ΡΠ°. Π€ΡΠ½ΠΊΡΠΈΡ ΠΈΠΌΠ΅Π΅Ρ Π΄Π²Π° ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° β ctx ΠΈ desync:
ctxβ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ Π΄Π»Ρ ΡΠ²ΡΠ·ΠΈ Ρ Π½Π΅ΠΊΠΎΡΠΎΡΡΠΌΠΈ ΡΡΠ½ΠΊΡΠΈΡΠΌΠΈ Π½Π° ΡΡΠΎΡΠΎΠ½Π΅ C-ΠΊΠΎΠ΄Π° (ΡΠ΅ΡΠ΅Π· Π½Π΅Π³ΠΎ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ΅Π°Π»ΡΠ½ΠΎ ΠΎΡΠΏΡΠ°Π²Π»ΡΡΡΡΡ ΠΏΠ°ΠΊΠ΅ΡΡ);desyncβ ΡΠ°Π±Π»ΠΈΡΠ° ΡΠΎ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎΠΌ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Π΅ΠΌΠΎΠ³ΠΎ ΠΏΠ°ΠΊΠ΅ΡΠ°. ΠΡΠ΅ΠΆΠ΄Π΅ Π²ΡΠ΅Π³ΠΎ ΡΡΠΎ Π΄ΠΈΡΡΠ΅ΠΊΡ (ΠΏΠΎΠ΄ΡΠ°Π±Π»ΠΈΡΠ°dis) ΠΈ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΈΠ· Π·Π°ΠΏΠΈΡΠΈ conntrack (ΠΏΠΎΠ΄ΡΠ°Π±Π»ΠΈΡΠ°track). ΠΡΡΡ ΠΈ ΡΡΠ΄ Π΄ΡΡΠ³ΠΈΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² β ΡΠ²ΠΈΠ΄Π΅ΡΡ ΠΈΡ Π²ΡΠ΅ ΠΌΠΎΠΆΠ½ΠΎ, Π²ΡΠΏΠΎΠ»Π½ΠΈΠ²var_debug(desync)ΠΈΠ»ΠΈ ΠΏΡΠΎΡΡΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΠ² Π³ΠΎΡΠΎΠ²ΡΠΉ ΠΈΠ½ΡΡΠ°Π½Ρpktdebug.
Π§ΡΠΎ Π΅ΡΡ Π΄ΠΎΡΡΡΠΏΠ½ΠΎ ΠΈΠ½ΡΡΠ°Π½ΡΡ:
- ΠΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ replay. ΠΡΠ»ΠΈ ΠΈΠ΄ΡΡ ΠΏΠ΅ΡΠ΅ΠΏΡΠΎΠΈΠ³ΡΡΠ²Π°Π½ΠΈΠ΅ Π·Π°Π΄Π΅ΡΠΆΠ°Π½Π½ΡΡ
ΠΏΠ°ΠΊΠ΅ΡΠΎΠ² (replay β ΠΏΠΎΠ²ΡΠΎΡΠ½Π°Ρ ΠΏΡΠΎΠ³ΠΎΠ½ΠΊΠ° Π½Π°ΠΊΠΎΠΏΠ»Π΅Π½Π½ΡΡ
ΠΏΡΠΈ ΡΠ΅ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΠΈ ΡΠ°ΡΡΠ΅ΠΉ), ΠΈΠ½ΡΡΠ°Π½Ρ ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ Π½ΠΎΠΌΠ΅Ρ ΡΠ°ΡΡΠΈ, ΠΎΠ±ΡΠ΅Π΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠ°ΡΡΠ΅ΠΉ ΠΈΡΡ
ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ, ΠΏΠΎΠ·ΠΈΡΠΈΡ ΡΠ΅ΠΊΡΡΠ΅ΠΉ ΡΠ°ΡΡΠΈ ΠΈ
reasm/decryptΠΏΡΠΈ Π½Π°Π»ΠΈΡΠΈΠΈ. - Π₯ΡΠ°Π½Π΅Π½ΠΈΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ ΠΌΠ΅ΠΆΠ΄Ρ ΠΏΠ°ΠΊΠ΅ΡΠ°ΠΌΠΈ. ΠΠ»Ρ Π΄Π°Π½Π½ΡΡ
, Π½Π΅ ΠΎΡΠ½ΠΎΡΡΡΠΈΡ
ΡΡ ΠΊ ΡΠ΅ΠΊΡΡΠ΅ΠΌΡ ΠΏΠ°ΠΊΠ΅ΡΡ, Π΄ΠΎΡΡΡΠΏΠ½Π° ΡΠ°Π±Π»ΠΈΡΠ°
desync.track.lua_stateβ Π² Π½Π΅ΠΉ ΠΌΠΎΠΆΠ½ΠΎ Ρ ΡΠ°Π½ΠΈΡΡ Π»ΡΠ±ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ, ΠΏΡΠΈΠ²ΡΠ·Π°Π½Π½ΡΡ ΠΊ Π·Π°ΠΏΠΈΡΠΈ conntrack: ΠΏΡΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ Π½ΠΎΠ²ΠΎΠΌ ΠΏΠ°ΠΊΠ΅ΡΠ΅ ΠΏΠΎΡΠΎΠΊΠ° Lua ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ ΡΡ ΠΆΠ΅ ΡΠ°ΠΌΡΡ ΡΠ°Π±Π»ΠΈΡΡ. - ΠΠ΅ΡΠ΅Π΄Π°ΡΠ° Π΄Π°Π½Π½ΡΡ
ΠΌΠ΅ΠΆΠ΄Ρ ΠΈΠ½ΡΡΠ°Π½ΡΠ°ΠΌΠΈ. Π‘Π°ΠΌΡ ΡΠ°Π±Π»ΠΈΡΡ
desyncΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄Π»Ρ Π²ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ Π΄Π°Π½Π½ΡΡ Π² ΡΠ°ΠΌΠΊΠ°Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΡΠ΅ΠΊΡΡΠ΅Π³ΠΎ ΠΏΠ°ΠΊΠ΅ΡΠ°. Π‘Π»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΈΠ½ΡΡΠ°Π½ΡΡ ΠΏΠΎΠ»ΡΡΠ°ΡΡ ΡΡ ΠΆΠ΅desyncΠΈ ΠΏΠΎΡΠΎΠΌΡ ΠΌΠΎΠ³ΡΡ ΠΏΡΠΈΠ½ΡΡΡ Π΄Π°Π½Π½ΡΠ΅ ΠΎΡ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠΈΡ .
ΠΠ΅Ρ
Π°Π½ΠΈΠΊΡ desync, ctx ΠΈ ΠΏΠΎΠ»Π΅ΠΉ Π½Π° ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΡΠ°Π·Π±ΠΈΡΠ°Π΅Ρ Π·Π°ΠΌΠ΅ΡΠΊΠ° multisplit (ΡΠ°Π·Π΄Π΅Π» ΠΏΡΠΎ Π²Ρ
ΠΎΠ΄ ΠΈ Π²ΡΡ
ΠΎΠ΄ ΡΡΠ½ΠΊΡΠΈΠΈ).
Π‘ΡΠ°Π΄ΠΈΡ 8. ΠΠ΅ΡΠ΄ΠΈΠΊΡΡ ΠΈ ΠΈΡ Π°Π³ΡΠ΅Π³Π°ΡΠΈΡ
ΠΠ½ΡΡΠ°Π½Ρ ΠΌΠΎΠΆΠ΅Ρ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΠΊΠΎΠΏΠΈΠΈ ΡΠ΅ΠΊΡΡΠ΅Π³ΠΎ Π΄ΠΈΡΡΠ΅ΠΊΡΠ°, Π²Π½ΠΎΡΠΈΡΡ Π² Π½ΠΈΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, Π³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠ΅ Π΄ΠΈΡΡΠ΅ΠΊΡΡ ΠΈ ΠΎΡΠΏΡΠ°Π²Π»ΡΡΡ ΠΈΡ ΡΠ΅ΡΠ΅Π· Π²ΡΠ·ΠΎΠ²Ρ C-ΠΊΠΎΠ΄Π°. ΠΡΠΎΠ³ ΡΠ°Π±ΠΎΡΡ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΈΠ½ΡΡΠ°Π½ΡΠ° β Π²Π΅ΡΠ΄ΠΈΠΊΡ:
VERDICT_PASSβ Π½ΠΈΡΠ΅Π³ΠΎ Π½Π΅ Π΄Π΅Π»Π°ΡΡ Ρ ΡΠ΅ΠΊΡΡΠΈΠΌ Π΄ΠΈΡΡΠ΅ΠΊΡΠΎΠΌ;VERDICT_MODIFYβ Π² ΠΊΠΎΠ½ΡΠ΅ Π²ΡΠ΅ΠΉ ΡΠ΅ΠΏΠΎΡΠΊΠΈ ΠΎΡΠΏΡΠ°Π²ΠΈΡΡ ΠΌΠΎΠ΄ΠΈΡΠΈΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ Π΄ΠΈΡΡΠ΅ΠΊΡΠ°;VERDICT_DROPβ Π²ΡΠ±ΡΠΎΡΠΈΡΡ (Π΄ΡΠΎΠΏΠ½ΡΡΡ) ΡΠ΅ΠΊΡΡΠΈΠΉ Π΄ΠΈΡΡΠ΅ΠΊΡ.
ΠΠ΅ΡΠ΄ΠΈΠΊΡΡ Π²ΡΠ΅Ρ
ΠΈΠ½ΡΡΠ°Π½ΡΠΎΠ² ΠΏΡΠΎΡΠΈΠ»Ρ Π°Π³ΡΠ΅Π³ΠΈΡΡΡΡΡΡ ΠΏΠΎ ΠΏΡΠ°Π²ΠΈΠ»Ρ ΠΏΡΠΈΠΎΡΠΈΡΠ΅ΡΠ°: MODIFY Π·Π°ΠΌΠ΅ΡΠ°Π΅Ρ PASS, Π° DROP Π·Π°ΠΌΠ΅ΡΠ°Π΅Ρ ΠΈ PASS, ΠΈ MODIFY. Π’ΠΎ Π΅ΡΡΡ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΠΎΠ΄Π½ΠΎΠΌΡ ΠΈΠ½ΡΡΠ°Π½ΡΡ Π²Π΅ΡΠ½ΡΡΡ DROP β ΠΈ ΠΎΡΠΈΠ³ΠΈΠ½Π°Π»ΡΠ½ΡΠΉ ΠΏΠ°ΠΊΠ΅Ρ Π±ΡΠ΄Π΅Ρ Π²ΡΠ±ΡΠΎΡΠ΅Π½, ΡΡΠΎ Π±Ρ Π½ΠΈ Π²Π΅ΡΠ½ΡΠ»ΠΈ ΠΎΡΡΠ°Π»ΡΠ½ΡΠ΅.
ΠΡΠΎΡΠ΅ Π³ΠΎΠ²ΠΎΡΡ
ΠΠΎΡΠ΅ΠΌΡ
DROPΡΠΈΠ»ΡΠ½Π΅Π΅ Π²ΡΠ΅Ρ : ΠΏΡΠΈΡΠΌΡ Π²ΡΠΎΠ΄Π΅ Π½Π°ΡΠ΅Π·ΠΊΠΈ ΡΠΆΠ΅ ΡΠ°ΠΌΠΈ ΠΎΡΠΏΡΠ°Π²ΠΈΠ»ΠΈ Π½ΡΠΆΠ½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΌΠΈ ΠΏΠ°ΠΊΠ΅ΡΠ°ΠΌΠΈ, ΠΏΠΎΡΡΠΎΠΌΡ ΠΎΡΠΈΠ³ΠΈΠ½Π°Π» Π½Π°Π΄ΠΎ Π²ΡΠ±ΡΠΎΡΠΈΡΡ, ΠΈΠ½Π°ΡΠ΅ ΡΠ΅ΡΠ²Π΅Ρ ΠΏΠΎΠ»ΡΡΠΈΡ Π΄Π°Π½Π½ΡΠ΅ Π΄Π²Π°ΠΆΠ΄Ρ.DROPΠΏΠ΅ΡΠ΅Π±ΠΈΠ²Π°Π΅ΡMODIFYΠΈPASS, ΡΡΠΎΠ±Ρ ΡΠ°ΠΊΠΎΠ΅ Π΄ΡΠ±Π»ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π±ΡΠ»ΠΎ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ.
Π‘ΡΠ°Π΄ΠΈΡ 9. Cutoff ΠΈ ΠΎΡΠΊΠ΅ΡΡΡΠ°ΡΠΎΡ β ΡΠΊΠΎΠ½ΠΎΠΌΠΈΡ ΠΈ Π΄ΠΈΠ½Π°ΠΌΠΈΠΊΠ°
Π§ΡΠΎΠ±Ρ Π½Π΅ Π³ΠΎΠ½ΡΡΡ ΡΠ΅ΡΠ΅Π· Lua Π»ΠΈΡΠ½ΠΈΠ΅ ΠΏΠ°ΠΊΠ΅ΡΡ, Ρ ΠΈΠ½ΡΡΠ°Π½ΡΠ° Π΅ΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠΏΠΎΡΠΎΠ±ΠΎΠ² Β«ΠΎΡΠΊΠ»ΡΡΠΈΡΡΡΡΒ»:
- instance cutoff β ΠΈΠ½ΡΡΠ°Π½Ρ ΡΠ°ΠΌ ΡΠ΅Π±Ρ ΠΎΡΠΊΠ»ΡΡΠ°Π΅Ρ ΠΎΡ Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠΈΡ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ² ΠΏΠΎΡΠΎΠΊΠ° ΠΏΠΎ Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ in/out;
- lua cutoff β ΠΎΡΠΊΠ»ΡΡΠ°Π΅Ρ Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ in/out ΡΠ΅ΠΊΡΡΠ΅Π³ΠΎ ΠΏΠΎΡΠΎΠΊΠ° ΠΎΡ Π²ΡΠ΅ΠΉ Lua-ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ;
- ΠΎΡΠΌΠ΅Π½Π° Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠ΅ΠΉ ΡΠ΅ΠΏΠΎΡΠΊΠΈ β ΠΈΠ½ΡΡΠ°Π½Ρ ΠΌΠΎΠΆΠ΅Ρ Π·Π°ΠΏΡΠΎΡΠΈΡΡ ΠΏΡΠ΅ΠΊΡΠ°ΡΠ΅Π½ΠΈΠ΅ Π²ΡΠ΅Ρ ΠΎΡΡΠ°Π²ΡΠΈΡ ΡΡ Π²ΡΠ·ΠΎΠ²ΠΎΠ² Lua ΠΏΠΎ ΡΠ΅ΠΊΡΡΠ΅ΠΌΡ Π΄ΠΈΡΡΠ΅ΠΊΡΡ.
ΠΠ½ΡΡΠ°Π½Ρ, ΠΊΠΎΡΠΎΡΡΠΉ Π±Π΅ΡΡΡ Π½Π° ΡΠ΅Π±Ρ ΡΠ°ΠΊΡΡ ΠΎΡΠΌΠ΅Π½Ρ, ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΠΎΡΠΎΠΌ Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠΈΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ β Π΅Π³ΠΎ Π½Π°Π·ΡΠ²Π°ΡΡ ΠΎΡΠΊΠ΅ΡΡΡΠ°ΡΠΎΡΠΎΠΌ (ΡΠΌ. ΠΎΡΠΊΠ΅ΡΡΡΠ°ΡΠΎΡ). C-ΠΊΠΎΠ΄ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ Π΅ΠΌΡ ΠΏΠ»Π°Π½ Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠ΅Π³ΠΎ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ β Π²ΡΠ΅ ΡΠΈΠ»ΡΡΡΡ ΠΏΡΠΎΡΠΈΠ»Ρ ΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ Π²ΡΠ·ΠΎΠ²Π° Π²ΡΠ΅Ρ ΠΎΡΡΠ°Π²ΡΠΈΡ ΡΡ ΠΈΠ½ΡΡΠ°Π½ΡΠΎΠ², β ΠΈ ΠΎΡΠΊΠ΅ΡΡΡΠ°ΡΠΎΡ ΡΠ°ΠΌ ΡΠ΅ΡΠ°Π΅Ρ, ΠΊΠΎΠ³Π΄Π° ΠΈ ΠΏΡΠΈ ΠΊΠ°ΠΊΠΈΡ ΡΡΠ»ΠΎΠ²ΠΈΡΡ ΠΈΡ Π²ΡΠ·ΡΠ²Π°ΡΡ, Π½Π΅ Π²ΡΠ·ΡΠ²Π°ΡΡ ΠΈΠ»ΠΈ ΠΌΠ΅Π½ΡΡΡ ΠΈΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ. Π’Π°ΠΊ ΡΠ΅Π°Π»ΠΈΠ·ΡΡΡΡΡ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΡΡΠ΅Π½Π°ΡΠΈΠΈ Π±Π΅Π· ΠΏΠ΅ΡΠ΅ΠΏΠΈΡΡΠ²Π°Π½ΠΈΡ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° ΡΡΡΠ°ΡΠ΅Π³ΠΈΠΈ β Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ°ΡΠΏΠΎΠ·Π½Π°ΡΡ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΡ ΡΠ΅ΡΡΡΡΠ° ΠΈ ΡΠΌΠ΅Π½ΠΈΡΡ ΡΡΡΠ°ΡΠ΅Π³ΠΈΡ, Π΅ΡΠ»ΠΈ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ°Ρ Π½Π΅ ΡΡΠ°Π±ΠΎΡΠ°Π»Π°.
ΠΡΠΈΠ·Π½Π°ΠΊ Β«lua cutoffΒ» ΠΊΠ°ΠΊ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ
ΠΡΠ»ΠΈ Π²ΡΠ΅ ΠΈΠ½ΡΡΠ°Π½ΡΡ ΠΏΡΠΎΡΠΈΠ»Ρ Π²ΠΎΡΠ»ΠΈ Π² ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ cutoff ΠΏΠΎ ΡΠ΅ΠΊΡΡΠ΅ΠΌΡ ΠΏΠΎΡΠΎΠΊΡ, Π»ΠΈΠ±ΠΎ ΡΠ΅ΠΊΡΡΠ°Ρ ΠΏΠΎΠ·ΠΈΡΠΈΡ ΠΏΠΎΡΠΎΠΊΠ° ΡΡΠ»Π° Π·Π° Π²Π΅ΡΡ Π½ΡΡ Π³ΡΠ°Π½ΠΈΡΡ range-ΡΠΈΠ»ΡΡΡΠΎΠ², Π·Π½Π°ΡΠΈΡ ΠΏΠΎ ΡΡΠΎΠΌΡ ΠΏΠΎΡΠΎΠΊΡ Lua-Π²ΡΠ·ΠΎΠ²ΠΎΠ² Π±ΠΎΠ»ΡΡΠ΅ Π½Π΅ Π±ΡΠ΄Π΅Ρ. C-ΠΊΠΎΠ΄ ΠΏΠΎΠΌΠ΅ΡΠ°Π΅Ρ ΡΠ°ΠΊΠΎΠΉ ΠΏΠΎΡΠΎΠΊ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠΌ ΠΏΡΠΈΠ·Π½Π°ΠΊΠΎΠΌ Β«lua cutoffΒ», ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΡΠΎΠ²Π΅ΡΡΠ΅ΡΡΡ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎ Π±ΡΡΡΡΠΎ, Π±Π΅Π· Π΅Π΄ΠΈΠ½ΠΎΠ³ΠΎ Π²ΡΠ·ΠΎΠ²Π° Lua. Π’Π°ΠΊ ΡΠΊΠΎΠ½ΠΎΠΌΡΡΡΡ ΡΠ΅ΡΡΡΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ°: Β«ΠΎΡΡΠ°Π±ΠΎΡΠ°Π²ΡΠΈΠ΅Β» ΠΏΠΎΡΠΎΠΊΠΈ Π΄Π°Π»ΡΡΠ΅ ΠΈΠ΄ΡΡ ΠΏΠΎ Π±ΡΡΡΡΠΎΠΌΡ ΠΏΡΡΠΈ.
Π‘ΡΠ°Π΄ΠΈΡ 10. ΠΡΠΎΠ³ΠΎΠ²ΡΠΉ Π²Π΅ΡΠ΄ΠΈΠΊΡ ΠΈ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΠΏΠ°ΠΊΠ΅Ρ
ΠΠΎΡΠ»Π΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π²ΡΠ΅ΠΉ ΡΠ΅ΠΏΠΎΡΠΊΠΈ ΠΈΠ½ΡΡΠ°Π½ΡΠΎΠ² ΠΏΡΠΎΡΠΈΠ»Ρ C-ΠΊΠΎΠ΄ ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ ΠΈΡΠΎΠ³ΠΎΠ²ΡΠΉ Π°Π³ΡΠ΅Π³ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ Π²Π΅ΡΠ΄ΠΈΠΊΡ β ΡΡΠΎ Π΄Π΅Π»Π°ΡΡ Ρ ΡΠ΅ΠΊΡΡΠΈΠΌ Π΄ΠΈΡΡΠ΅ΠΊΡΠΎΠΌ: ΠΎΡΠΏΡΠ°Π²ΠΈΡΡ ΠΊΠ°ΠΊ Π΅ΡΡΡ (PASS), ΠΎΡΠΏΡΠ°Π²ΠΈΡΡ ΠΌΠΎΠ΄ΠΈΡΠΈΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ Π²Π°ΡΠΈΠ°Π½Ρ (MODIFY) ΠΈΠ»ΠΈ Π²ΡΠ±ΡΠΎΡΠΈΡΡ (DROP).
ΠΠ° ΡΡΠΎΠΌ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΠΏΠ°ΠΊΠ΅ΡΠ° Π·Π°Π²Π΅ΡΡΠ°Π΅ΡΡΡ: nfqws2 ΠΏΠ΅ΡΠ΅Ρ
ΠΎΠ΄ΠΈΡ ΠΊ ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΡ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π³ΠΎ ΠΏΠ°ΠΊΠ΅ΡΠ°, ΠΈ Π²Π΅ΡΡ ΡΠΈΠΊΠ» ΠΏΠΎΠ²ΡΠΎΡΡΠ΅ΡΡΡ Π·Π°Π½ΠΎΠ²ΠΎ.
ΠΠ΅ΡΡ ΠΏΡΡΡ ΠΏΠ°ΠΊΠ΅ΡΠ° ΠΎΠ΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΎΠΉ
Π―Π΄ΡΠΎ ΠΠ‘ β ΠΏΠ΅ΡΠ΅Ρ Π²Π°Ρ ΠΈ ΡΠ°Π½Π½ΡΡ ΡΠΈΠ»ΡΡΡΠ°ΡΠΈΡ β Π΄ΠΈΡΡΠ΅ΠΊΡΠΈΡ β conntrack β ΡΠΈΠΏ ΠΏΠ΅ΠΉΠ»ΠΎΠ°Π΄Π° ΠΈ ΠΏΡΠΎΡΠΎΠΊΠΎΠ» ΠΏΠΎΡΠΎΠΊΠ° β (ΠΏΡΠΈ Π½ΡΠΆΠ΄Π΅) ΡΠ΅ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΡ reasm/decrypt β Π²ΡΠ±ΠΎΡ ΠΏΡΠΎΡΠΈΠ»Ρ ΠΏΠΎ ΡΠΈΠ»ΡΡΡΠ°ΠΌ β ΡΠ΅ΠΏΠΎΡΠΊΠ° Lua-ΠΈΠ½ΡΡΠ°Π½ΡΠΎΠ² Ρ ΠΈΡ Π²Π΅ΡΠ΄ΠΈΠΊΡΠ°ΠΌΠΈ β Π°Π³ΡΠ΅Π³ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ Π²Π΅ΡΠ΄ΠΈΠΊΡ β ΠΎΡΠΏΡΠ°Π²ΠΈΡΡ / ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ / Π΄ΡΠΎΠΏΠ½ΡΡΡ β ΠΆΠ΄Π°ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΠΏΠ°ΠΊΠ΅Ρ.
π Π‘ΠΌ. ΡΠ°ΠΊΠΆΠ΅
- Π‘ΡΡΡΠΊΡΡΡΠ° ΠΏΡΠΎΠ΅ΠΊΡΠ° Zapret 2 β ΠΈΠ· ΠΊΠ°ΠΊΠΈΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ (ΠΏΠ°ΡΠ½Π°Ρ Π·Π°ΠΌΠ΅ΡΠΊΠ°: ΡΠ°ΠΌ Β«ΡΡΠΎ Π΅ΡΡΡΒ», Π·Π΄Π΅ΡΡ Β«ΠΊΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°Π΅ΡΒ»)
- Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ Zapret 2 β ΠΎΠ±Π·ΠΎΡ ΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π°Π²ΡΠΎΡΠ°
- ΠΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ βlua-desync β ΠΊΠ°ΠΊ Π·Π°Π΄Π°ΡΡΡΡ ΠΈ Π²ΡΠ·ΡΠ²Π°ΡΡΡΡ ΠΈΠ½ΡΡΠ°Π½ΡΡ
- ΠΡΠΎΡΠΎΡΠΈΠΏ ΠΈ ΡΡΡΡΠΊΡΡΡΠ° desync β ΠΏΠΎΠ»Π½ΡΠΉ ΡΠ°Π·Π±ΠΎΡ ΠΏΠΎΠ»Π΅ΠΉ
desync, Π΄ΠΈΡΡΠ΅ΠΊΡΠ°,track, reasm/replay, Π²Π΅ΡΠ΄ΠΈΠΊΡΠΎΠ² - ΠΡΠΎΡΠΈΠ»ΠΈ ΠΈ ΠΡΠ΅ΡΠ΅ΡΡ β ΠΊΠ°ΠΊ ΠΎΠΏΠΈΡΡΠ²Π°ΡΡΡΡ ΡΡΡΠ°ΡΠ΅Π³ΠΈΠΈ
- Π€ΠΈΠ»ΡΡΡΡ Β· Π’ΠΈΠΏ payload Β· out-range β Π΄Π΅ΡΠ°Π»ΠΈ ΠΊΠ»Π°ΡΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ
- ΠΡΠΊΠ΅ΡΡΡΠ°ΡΠΈΡ β Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈΠΉ Π²ΡΠ±ΠΎΡ ΡΡΡΠ°ΡΠ΅Π³ΠΈΠΈ
- multisplit β ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΠΉ ΠΏΡΠΈΠΌΠ΅Ρ ΠΈΠ½ΡΡΠ°Π½ΡΠ°: ΡΡΠΎ ΠΎΠ½ ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ Π²
desyncΠΈ ΡΡΠΎ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ - ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ² β ΠΏΠΎΡΠ΅ΠΌΡ ΠΏΠΎΡΡΠ΄ΠΎΠΊ ΠΈΠ½ΡΡΠ°Π½ΡΠΎΠ² Π²Π°ΠΆΠ΅Π½
- π ΠΡΠΈΡΠΈΠ°Π»ΡΠ½Π°Ρ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ (docs/manual.md) β ΠΏΠ΅ΡΠ²ΠΎΠΈΡΡΠΎΡΠ½ΠΈΠΊ
π€ ΠΡΠΈ ΡΡΠ°ΡΡΠΈ ΠΎΡΠΊΡΡΡΡ β ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±ΡΡΠ°ΡΡ Π½Π° Π½ΠΈΡ ΠΠ
ΠΡΠΈ ΠΆΠ΅Π»Π°Π½ΠΈΠΈ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π½Π°ΡΡΠ΅Π½ΠΈΡΠΎΠ²Π°ΡΡ ΠΠ Π½Π° Π½Π°ΡΠΈΡ ΡΡΠ°ΡΡΡΡ . ΠΡΡ ΠΎΠ΄Π½ΠΎΠ΅ ΡΠΎΡΠΌΠ°ΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ ΡΠΊΠ°ΡΠΈΠ²Π°Π½ΠΈΠ΅ Π²ΡΠ΅Π³ΠΎ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ ΠΎΠ΄Π½ΠΈΠΌ zip-Π°ΡΡ ΠΈΠ²ΠΎΠΌ Π΄ΠΎΡΡΡΠΏΠ½Ρ Π² Forgejo: ΠΈΡΡ ΠΎΠ΄Π½ΠΈΠΊ ΡΡΠΎΠΉ Π·Π°ΠΌΠ΅ΡΠΊΠΈ Β· Π²Π΅ΡΡ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ.