ΠΠ°ΡΡΡΠΏΠΈΠ»ΠΎ Π²ΡΠ΅ΠΌΡ, ΠΊΠΎΠ³Π΄Π° VPN ΡΠΆΠ΅ Π½Π΅ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΊΠ°ΠΊΠΈΠΌ-ΡΠΎ ΡΠΊΠ·ΠΎΡΠΈΡΠ΅ΡΠΊΠΈΠΌ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠΌ Π±ΠΎΡΠΎΠ΄Π°ΡΡΡ ΡΠΈΡΠ°Π΄ΠΌΠΈΠ½ΠΎΠ². ΠΠ°Π΄Π°ΡΠΈ Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ ΡΠ°Π·Π½ΡΠ΅, Π½ΠΎ ΡΠ°ΠΊΡ Π² ΡΠΎΠΌ, ΡΡΠΎ VPN ΡΡΠ°Π» Π½ΡΠΆΠ΅Π½ Π²ΠΎΠΎΠ±ΡΠ΅ Π²ΡΠ΅ΠΌ.
ΠΡΠΎΠ±Π»Π΅ΠΌΠ° ΡΠ΅ΠΊΡΡΠΈΡ VPN ΡΠ΅ΡΠ΅Π½ΠΈΠΉ Π² ΡΠΎΠΌ, ΡΡΠΎ ΠΈΡ ΡΡΠΆΠ΅Π»ΠΎ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ Π½Π°ΡΡΡΠΎΠΈΡΡ, Π΄ΠΎΡΠΎΠ³ΠΎ ΠΎΠ±ΡΠ»ΡΠΆΠΈΠ²Π°ΡΡ, Π° ΡΠ°ΠΊ ΠΆΠ΅ Π² Π½ΠΈΡ ΠΏΠΎΠ»Π½ΠΎ legacy ΠΊΠΎΠ΄Π° ΡΠΎΠΌΠ½ΠΈΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ ΠΊΠ°ΡΠ΅ΡΡΠ²Π°.
ΠΠ΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π»Π΅Ρ Π½Π°Π·Π°Π΄ ΠΊΠ°Π½Π°Π΄ΡΠΊΠΈΠΉ ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΡΡ ΠΏΠΎ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ Jason A. Donenfeld ΡΠ΅ΡΠΈΠ», ΡΡΠΎ Ρ
Π²Π°ΡΠΈΡ ΡΡΠΎ ΡΠ΅ΡΠΏΠ΅ΡΡ, ΠΈ Π½Π°ΡΠ°Π» ΡΠ°Π±ΠΎΡΡ Π½Π°Π΄
ΠΠ°ΡΠ²Π»Π΅Π½Π½ΡΠ΅ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π° WireGuard Π½Π°Π΄ Π΄ΡΡΠ³ΠΈΠΌΠΈ VPN ΡΠ΅ΡΠ΅Π½ΠΈΡΠΌΠΈ:
- ΠΡΠΎΡΡΠΎΠΉ Π² ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ.
- ΠΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΠΊΡΠΈΠΏΡΠΎΠ³ΡΠ°ΡΠΈΡ: Noise protocol framework, Curve25519, ChaCha20, Poly1305, BLAKE2, SipHash24, HKDF ΠΈ Ρ.Π΄.
- ΠΠΎΠΌΠΏΠ°ΠΊΡΠ½ΡΠΉ ΡΠΈΡΠ°Π΅ΠΌΡΠΉ ΠΊΠΎΠ΄, ΠΏΡΠΎΡΠ΅ ΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΡ Π½Π° ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΠΈ.
- ΠΡΡΠΎΠΊΠ°Ρ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ.
- Π§Π΅ΡΠΊΠ°Ρ ΠΈ ΠΏΡΠΎΡΠ°Π±ΠΎΡΠ°Π½Π½Π°Ρ
ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ .
ΠΠ΅ΡΠΆΠ΅Π»ΠΈ Π½Π°ΠΉΠ΄Π΅Π½Π° ΡΠ΅ΡΠ΅Π±ΡΡΠ½Π½Π°Ρ ΠΏΡΠ»Ρ? OpenVPN ΠΈ IPSec ΠΏΠΎΡΠ° Π·Π°ΠΊΠ°ΠΏΡΠ²Π°ΡΡ? Π― ΡΠ΅ΡΠΈΠ» Ρ ΡΡΠΈΠΌ ΡΠ°Π·ΠΎΠ±ΡΠ°ΡΡΡΡ, Π° Π·Π°ΠΎΠ΄Π½ΠΎ ΡΠ΄Π΅Π»Π°Π»
ΠΡΠΈΠ½ΡΠΈΠΏΡ ΡΠ°Π±ΠΎΡΡ
ΠΡΠΈΠ½ΡΠΈΠΏΡ ΡΠ°Π±ΠΎΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΠΈΡΠ°ΡΡ ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΎ ΡΠ°ΠΊ:
- Π‘ΠΎΠ·Π΄Π°Π΅ΡΡΡ WireGuard ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ, Π΅ΠΌΡ Π½Π°Π·Π½Π°ΡΠ°Π΅ΡΡΡ ΠΏΡΠΈΠ²Π°ΡΠ½ΡΠΉ ΠΊΠ»ΡΡ ΠΈ IP Π°Π΄ΡΠ΅Ρ. ΠΠ°Π³ΡΡΠΆΠ°ΡΡΡΡ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ Π΄ΡΡΠ³ΠΈΡ ΠΏΠΈΡΠΎΠ²: ΠΈΡ ΠΏΡΠ±Π»ΠΈΡΠ½ΡΠ΅ ΠΊΠ»ΡΡΠΈ, IP Π°Π΄ΡΠ΅ΡΠ° ΠΈ Ρ.Π΄.
- ΠΡΠ΅ IP ΠΏΠ°ΠΊΠ΅ΡΡ, ΠΏΡΠΈΡ
ΠΎΠ΄ΡΡΠΈΠ΅ Π½Π° WireGuard ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΠΈΠ½ΠΊΠ°ΠΏΡΡΠ»ΠΈΡΡΡΡΡΡ Π² UDP ΠΈ
Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎ Π΄ΠΎΡΡΠ°Π²Π»ΡΡΡΡΡ Π΄ΡΡΠ³ΠΈΠΌ ΠΏΠΈΡΠ°ΠΌ. - ΠΠ»ΠΈΠ΅Π½ΡΡ Π·Π°Π΄Π°ΡΡ ΠΏΡΠ±Π»ΠΈΡΠ½ΡΠΉ IP Π°Π΄ΡΠ΅Ρ ΡΠ΅ΡΠ²Π΅ΡΠ° Π² Π½Π°ΡΡΡΠΎΠΉΠΊΠ°Ρ . Π‘Π΅ΡΠ²Π΅Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΡΠ·Π½Π°Π΅Ρ Π²Π½Π΅ΡΠ½ΠΈΠ΅ Π°Π΄ΡΠ΅ΡΠ° ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠ², ΠΊΠΎΠ³Π΄Π° ΠΎΡ Π½ΠΈΡ ΠΏΡΠΈΡ ΠΎΠ΄ΡΡ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎ Π°ΡΡΠ΅Π½ΡΠΈΡΠΈΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅.
- Π‘Π΅ΡΠ²Π΅Ρ ΠΌΠΎΠΆΠ΅Ρ ΠΌΠ΅Π½ΡΡΡ ΠΏΡΠ±Π»ΠΈΡΠ½ΡΠΉ IP Π°Π΄ΡΠ΅Ρ Π½Π΅ ΠΏΡΠ΅ΡΡΠ²Π°Ρ ΡΠ°Π±ΠΎΡΡ. ΠΡΠΈ ΡΡΠΎΠΌ ΠΎΠ½ ΠΎΡΠΎΡΠ»Π΅Ρ ΠΎΠΏΠΎΠ²Π΅ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½Π½ΡΠΌ ΠΊΠ»ΠΈΠ΅Π½ΡΠ°ΠΌ ΠΈ ΠΎΠ½ΠΈ ΠΎΠ±Π½ΠΎΠ²ΡΡ ΡΠ²ΠΎΡ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ Π½Π° Π»Π΅ΡΡ.
- ΠΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΊΠΎΠ½ΡΠ΅ΠΏΡ ΠΌΠ°ΡΡΡΡΡΠΈΠ·Π°ΡΠΈΠΈ
Cryptokey Routing . WireGuard ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ ΠΈ ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅Ρ ΠΏΠ°ΠΊΠ΅ΡΡ Π½Π° ΠΎΡΠ½ΠΎΠ²Π°Π½ΠΈΠΈ ΠΏΡΠ±Π»ΠΈΡΠ½ΠΎΠ³ΠΎ ΠΊΠ»ΡΡΠ° ΠΏΠΈΡΠ°. ΠΠΎΠ³Π΄Π° ΡΠ΅ΡΠ²Π΅Ρ ΡΠ°ΡΡΠΈΡΡΠΎΠ²ΡΠ²Π°Π΅Ρ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎ Π°ΡΡΠ΅Π½ΡΠΈΡΠΈΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΠΏΠ°ΠΊΠ΅Ρ, ΠΏΡΠΎΠ²Π΅ΡΡΠ΅ΡΡΡ Π΅Π³ΠΎ src ΠΏΠΎΠ»Π΅. ΠΡΠ»ΠΈ ΠΎΠ½ΠΎ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ Ρ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠ΅ΠΉallowed-ips
Π°ΡΡΠ΅Π½ΡΠΈΡΠΈΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΠΈΡΠ°, ΡΠΎ ΠΏΠ°ΠΊΠ΅Ρ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅ΡΡΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠΌ WireGuard. ΠΡΠΈ ΠΎΡΠΏΡΠ°Π²ΠΊΠ΅ ΠΈΡΡ ΠΎΠ΄ΡΡΠ΅Π³ΠΎ ΠΏΠ°ΠΊΠ΅ΡΠ° ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½Π°Ρ ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ°: Π±Π΅ΡΠ΅ΡΡΡ dst ΠΏΠΎΠ»Π΅ ΠΏΠ°ΠΊΠ΅ΡΠ° ΠΈ Π½Π° ΠΎΡΠ½ΠΎΠ²Π°Π½ΠΈΠΈ Π΅Π³ΠΎ Π²ΡΠ±ΠΈΡΠ°Π΅ΡΡΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΠ²ΡΡΡΠΈΠΉ ΠΏΠΈΡ, ΠΏΠ°ΠΊΠ΅Ρ ΠΏΠΎΠ΄ΠΏΠΈΡΡΠ²Π°Π΅ΡΡΡ ΡΠ²ΠΎΠΈΠΌ ΠΊΠ»ΡΡΠΎΠΌ, ΡΠΈΡΡΡΠ΅ΡΡΡ ΠΊΠ»ΡΡΠΎΠΌ ΠΏΠΈΡΠ° ΠΈ ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅ΡΡΡ Π½Π° remote endpoint.
ΠΡΡ ΠΎΡΠ½ΠΎΠ²Π½Π°Ρ Π»ΠΎΠ³ΠΈΠΊΠ° WireGuard Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ ΠΌΠ΅Π½Π΅Π΅ 4 ΡΡΡΡΡ ΡΡΡΠΎΠΊ ΠΊΠΎΠ΄Π°, ΡΠΎΠ³Π΄Π° ΠΊΠ°ΠΊ OpenVPN ΠΈ IPSec ΠΈΠΌΠ΅ΡΡ ΡΠΎΡΠ½ΠΈ ΡΡΡΡΡ ΡΡΡΠΎΠΊ. ΠΠ»Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ
ΠΊΡΠΈΠΏΡΠΎΠ°Π»Π³ΠΎΡΠΈΡΠΌΠΎΠ² ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅ΡΡΡ Π²ΠΊΠ»ΡΡΠΈΡΡ Π² ΡΠΎΡΡΠ°Π² ΡΠ΄ΡΠ° Linux Π½ΠΎΠ²ΡΠΉ ΠΊΡΠΈΠΏΡΠΎΠ³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ API
ΠΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ
ΠΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ΅ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²ΠΎ Π² ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ (ΠΏΠΎ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ Ρ OpenVPN ΠΈ IPSec) Π±ΡΠ΄Π΅Ρ Π·Π°ΠΌΠ΅ΡΠ½ΠΎ Π½Π° Linux ΡΠΈΡΡΠ΅ΠΌΠ°Ρ , ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΡΠ°ΠΌ WireGuard ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ Π² Π²ΠΈΠ΄Π΅ ΠΌΠΎΠ΄ΡΠ»Ρ ΡΠ΄ΡΠ°. ΠΡΠΎΠΌΠ΅ ΡΡΠΎΠ³ΠΎ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡΡΡ macOS, Android, iOS, FreeBSD ΠΈ OpenBSD, Π½ΠΎ Π² Π½ΠΈΡ WireGuard Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ Π² userspace ΡΠΎ Π²ΡΠ΅ΠΌΠΈ Π²ΡΡΠ΅ΠΊΠ°ΡΡΠΈΠΌΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΡΡΠ²ΠΈΡΠΌΠΈ Π΄Π»Ρ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ. ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΊΡ Windows ΠΎΠ±Π΅ΡΠ°ΡΡ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π² Π±Π»ΠΈΠΆΠ°ΠΉΡΠ΅ΠΌ Π±ΡΠ΄ΡΡΠ΅ΠΌ.
Π Π΅Π·ΡΠ»ΡΡΠ°ΡΡ Π±Π΅Π½ΡΠΌΠ°ΡΠΊΠΎΠ² Ρ
ΠΠΎΠΉ ΠΎΠΏΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ
Π― Π½Π΅ ΡΠΊΡΠΏΠ΅ΡΡ ΠΏΠΎ Π½Π°ΡΡΡΠΎΠΉΠΊΠ΅ VPN. ΠΠ΄Π½Π°ΠΆΠ΄Ρ Π½Π°ΡΡΡΠ°ΠΈΠ²Π°Π» OpenVPN ΡΡΡΠΊΠ°ΠΌΠΈ ΠΈ ΡΡΠΎ Π±ΡΠ»ΠΎ ΠΎΡΠ΅Π½Ρ ΠΌΡΡΠΎΡΠ½ΠΎ, Π° IPSec Π΄Π°ΠΆΠ΅ ΠΈ Π½Π΅ ΠΏΡΡΠ°Π»ΡΡ. Π‘Π»ΠΈΡΠΊΠΎΠΌ ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ΅ΡΠ΅Π½ΠΈΠΉ Π½ΡΠΆΠ½ΠΎ ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ, ΠΎΡΠ΅Π½Ρ Π»Π΅Π³ΠΊΠΎ Π²ΡΡΡΡΠ΅Π»ΠΈΡΡ ΡΠ΅Π±Π΅ Π² Π½ΠΎΠ³Ρ. ΠΠΎΡΡΠΎΠΌΡ Ρ Π²ΡΠ΅Π³Π΄Π° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΡΡ Π³ΠΎΡΠΎΠ²ΡΠΌΠΈ ΡΠΊΡΠΈΠΏΡΠ°ΠΌΠΈ Π΄Π»Ρ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΡΠ΅ΡΠ²Π΅ΡΠ°.
Π’Π°ΠΊ Π²ΠΎΡ, WireGuard, Ρ ΠΌΠΎΠ΅ΠΉ ΡΠΎΡΠΊΠΈ Π·ΡΠ΅Π½ΠΈΡ, Π²ΠΎΠΎΠ±ΡΠ΅ ΠΈΠ΄Π΅Π°Π»Π΅Π½ Π΄Π»Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ. ΠΡΠ΅ Π½ΠΈΠ·ΠΊΠΎΡΡΠΎΠ²Π½Π΅Π²ΡΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΡ ΠΏΡΠΈΠ½ΡΡΡ Π² ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ, ΠΏΠΎΡΡΠΎΠΌΡ ΠΏΡΠΎΡΠ΅ΡΡ ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΊΠΈ ΡΠΈΠΏΠΈΡΠ½ΠΎΠΉ VPN ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΡ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ Π²ΡΠ΅Π³ΠΎ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΌΠΈΠ½ΡΡ. ΠΠ°ΡΠ°ΠΊΠ°ΠΏΠΈΡΡ Π² ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ.
ΠΡΠΎΡΠ΅ΡΡ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ
ΠΠ΅Π½Π΅ΡΠΈΡΡΡΡΡΡ ΠΊΠ»ΡΡΠΈ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ ΡΡΠΈΠ»ΠΈΡΠΎΠΉ wg
:
SERVER_PRIVKEY=$( wg genkey )
SERVER_PUBKEY=$( echo $SERVER_PRIVKEY | wg pubkey )
CLIENT_PRIVKEY=$( wg genkey )
CLIENT_PUBKEY=$( echo $CLIENT_PRIVKEY | wg pubkey )
ΠΠ°Π»Π΅Π΅, Π½ΡΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°ΡΡ ΡΠ΅ΡΠ²Π΅ΡΠ½ΡΠΉ ΠΊΠΎΠ½ΡΠΈΠ³ /etc/wireguard/wg0.conf
ΡΠΎ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΡΠΎΠ΄Π΅ΡΠΆΠ°Π½ΠΈΠ΅ΠΌ:
[Interface]
Address = 10.9.0.1/24
PrivateKey = $SERVER_PRIVKEY
[Peer]
PublicKey = $CLIENT_PUBKEY
AllowedIPs = 10.9.0.2/32
ΠΈ ΠΏΠΎΠ΄Π½ΡΡΡ ΡΡΠ½Π½Π΅Π»Ρ ΡΠΊΡΠΈΠΏΡΠΎΠΌ wg-quick
:
sudo wg-quick up /etc/wireguard/wg0.conf
Π ΡΠΈΡΡΠ΅ΠΌΠ°Ρ
Ρ systemd Π²ΠΌΠ΅ΡΡΠΎ ΡΡΠΎΠ³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ sudo systemctl start [email protected]
.
ΠΠ° ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΠΎΠΉ ΠΌΠ°ΡΠΈΠ½Π΅, ΡΠΎΠ·Π΄Π°ΡΡ ΠΊΠΎΠ½ΡΠΈΠ³ /etc/wireguard/wg0.conf
:
[Interface]
PrivateKey = $CLIENT_PRIVKEY
Address = 10.9.0.2/24
[Peer]
PublicKey = $SERVER_PUBKEY
AllowedIPs = 0.0.0.0/0
Endpoint = 1.2.3.4:51820 # ΠΠ½Π΅ΡΠ½ΠΈΠΉ IP ΡΠ΅ΡΠ²Π΅ΡΠ°
PersistentKeepalive = 25
Π ΡΠΎΡΠ½ΠΎ ΡΠ°ΠΊ ΠΆΠ΅ ΠΏΠΎΠ΄Π½ΡΡΡ ΡΡΠ½Π½Π΅Π»Ρ:
sudo wg-quick up /etc/wireguard/wg0.conf
ΠΡΡΠ°Π»ΠΎΡΡ Π½Π°ΡΡΡΠΎΠΈΡΡ NAT Π½Π° ΡΠ΅ΡΠ²Π΅ΡΠ΅, ΡΡΠΎΠ±Ρ ΠΊΠ»ΠΈΠ΅Π½ΡΡ ΠΌΠΎΠ³Π»ΠΈ Π²ΡΡ ΠΎΠ΄ΠΈΡΡ Π² ΠΠ½ΡΠ΅ΡΠ½Π΅Ρ, ΠΈ Π²ΡΠ΅ Π³ΠΎΡΠΎΠ²ΠΎ!
Π’Π°ΠΊΡΡ ΠΏΡΠΎΡΡΠΎΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΈ ΠΊΠΎΠΌΠΏΠ°ΠΊΡΠ½ΠΎΡΡΡ ΠΊΠΎΠ΄ΠΎΠ²ΠΎΠΉ Π±Π°Π·Ρ ΡΠ΄Π°Π»ΠΎΡΡ Π΄ΠΎΡΡΠΈΡΡ Π·Π° ΡΡΠ΅Ρ ΠΎΡΠΊΠ°Π·Π° ΠΎΡ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π° Π΄ΠΈΡΡΡΠΈΠ±ΡΡΡΠΈΠΈ ΠΊΠ»ΡΡΠ΅ΠΉ. ΠΠ΄Π΅ΡΡ Π½Π΅Ρ ΡΠ»ΠΎΠΆΠ½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠΎΠ² ΠΈ Π²ΡΠ΅Π³ΠΎ ΡΡΠΎΠ³ΠΎ ΠΊΠΎΡΠΏΠΎΡΠ°ΡΠΈΠ²Π½ΠΎΠ³ΠΎ ΡΠΆΠ°ΡΠ°, ΠΊΠΎΡΠΎΡΠΊΠΈΠ΅ ΠΊΠ»ΡΡΠΈ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½ΡΡΡΡΡ ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΎ ΠΊΠ°ΠΊ SSH ΠΊΠ»ΡΡΠΈ. ΠΠΎ Π² ΡΠ²ΡΠ·ΠΈ Ρ ΡΡΠΈΠΌ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°: WireGuard Π±ΡΠ΄Π΅Ρ Π½Π΅ ΡΠ°ΠΊ ΠΏΡΠΎΡΡΠΎ Π²Π½Π΅Π΄ΡΡΡΡ Π² Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΡΠΆΠ΅ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΡ ΡΠ΅ΡΡΡ .
ΠΠ· Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΊΠΎΠ² ΡΡΠΎΠΈΡ ΠΎΡΠΌΠ΅ΡΠΈΡΡ, ΡΡΠΎ WireGuard Π½Π΅ Π·Π°ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΡΠ΅ΡΠ΅Π· HTTP proxy, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΡΡΠ°Π½ΡΠΏΠΎΡΡΠ° Π΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΎΡΠΎΠΊΠΎΠ» UDP. ΠΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ Π²ΠΎΠΏΡΠΎΡ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π»ΠΈ Π±ΡΠ΄Π΅Ρ ΠΎΠ±ΡΡΡΡΠΈΡΠΎΠ²Π°ΡΡ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»? ΠΠΎΠ½Π΅ΡΠ½ΠΎ, ΡΡΠΎ Π½Π΅ ΠΏΡΡΠΌΠ°Ρ Π·Π°Π΄Π°ΡΠ° VPN, Π½ΠΎ Π΄Π»Ρ OpenVPN, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΡΡΠ΅ΡΡΠ²ΡΡΡ ΡΠΏΠΎΡΠΎΠ±Ρ ΠΌΠ°ΡΠΊΠΈΡΠΎΠ²ΠΊΠΈ ΠΏΠΎΠ΄ HTTPS, ΡΡΠΎ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ ΠΆΠΈΡΠ΅Π»ΡΠΌ ΡΠΎΡΠ°Π»ΠΈΡΠ°ΡΠ½ΡΡ ΡΡΡΠ°Π½ ΠΏΠΎΠ»Π½ΠΎΡΠ΅Π½Π½ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΠΠ½ΡΠ΅ΡΠ½Π΅ΡΠΎΠΌ.
ΠΡΠ²ΠΎΠ΄Ρ
ΠΠΎΠ΄Π²ΠΎΠ΄Ρ ΠΈΡΠΎΠ³, ΡΡΠΎ ΠΎΡΠ΅Π½Ρ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΡΠΉ ΠΈ ΠΏΠ΅ΡΡΠΏΠ΅ΠΊΡΠΈΠ²Π½ΡΠΉ ΠΏΡΠΎΠ΅ΠΊΡ, ΠΌΠΎΠΆΠ½ΠΎ ΡΠΆΠ΅ ΡΠ΅ΠΉΡΠ°Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΅Π³ΠΎ Π½Π° Π»ΠΈΡΠ½ΡΡ ΡΠ΅ΡΠ²Π΅ΡΠ°Ρ . ΠΠ°ΠΊΠΎΠΉ ΠΏΡΠΎΡΠΈΡ? ΠΡΡΠΎΠΊΠ°Ρ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ Π½Π° Linux ΡΠΈΡΡΠ΅ΠΌΠ°Ρ , ΠΏΡΠΎΡΡΠΎΡΠ° Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΠΈ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ, ΠΊΠΎΠΌΠΏΠ°ΠΊΡΠ½Π°Ρ ΠΈ ΡΠΈΡΠ°Π±Π΅Π»ΡΠ½Π°Ρ ΠΊΠΎΠ΄ΠΎΠ²Π°Ρ Π±Π°Π·Π°. ΠΠ΄Π½Π°ΠΊΠΎ, Π±ΡΠΎΡΠ°ΡΡΡΡ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ΠΈΡΡ ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡΠ½ΡΡ ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΡ Π½Π° WireGuard Π΅ΡΠ΅ ΡΠ°Π½ΠΎ, ΡΡΠΎΠΈΡ ΠΏΠΎΠ΄ΠΎΠΆΠ΄Π°ΡΡ Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π² ΡΠΎΡΡΠ°Π² ΡΠ΄ΡΠ° Linux.
ΠΠ»Ρ ΡΠΊΠΎΠ½ΠΎΠΌΠΈΠΈ ΡΠ²ΠΎΠ΅Π³ΠΎ (ΠΈ Π²Π°ΡΠ΅Π³ΠΎ) Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π»
ΠΡΡΠΎΡΠ½ΠΈΠΊ: habr.com