WireGuard๋Š” Linux ์ปค๋„์— "๋„์ฐฉ"ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด์œ ๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?

XNUMX์›” ๋ง์— WireGuard VPN ํ„ฐ๋„ ๊ฐœ๋ฐœ์ž๋Š” ์ œ์•ˆํ–ˆ์Šต๋‹ˆ๋‹ค. ํŒจ์น˜ ์„ธํŠธ, ์ด๋Š” VPN ํ„ฐ๋„๋ง ์†Œํ”„ํŠธ์›จ์–ด๋ฅผ Linux ์ปค๋„์˜ ์ผ๋ถ€๋กœ ๋งŒ๋“ญ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ "์•„์ด๋””์–ด"์˜ ์ •ํ™•ํ•œ ๊ตฌํ˜„ ๋‚ ์งœ๋Š” ์•„์ง ์•Œ๋ ค์ง€์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ์ปท ์•„๋ž˜์—์„œ ์ด ๋„๊ตฌ์— ๋Œ€ํ•ด ๋” ์ž์„ธํžˆ ์„ค๋ช…ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

WireGuard๋Š” Linux ์ปค๋„์— "๋„์ฐฉ"ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด์œ ๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?
/ ์‚ฌ์ง„ ์žฌ๊ทœ์–ด ํƒ๋ฐ”์ฝ” CC

ํ”„๋กœ์ ํŠธ์— ๋Œ€ํ•ด ๊ฐ„๋‹จํžˆ

WireGuard๋Š” Edge Security์˜ CEO์ธ Jason A. Donenfeld๊ฐ€ ๋งŒ๋“  ์ฐจ์„ธ๋Œ€ VPN ํ„ฐ๋„์ž…๋‹ˆ๋‹ค. ์ด ํ”„๋กœ์ ํŠธ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๊ฐœ๋ฐœ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์‰ฝ๊ฒŒ ํ•œ OpenVPN ๋ฐ IPsec์— ๋Œ€ํ•œ ๋น ๋ฅธ ๋Œ€์•ˆ์ž…๋‹ˆ๋‹ค. ์ œํ’ˆ์˜ ์ฒซ ๋ฒˆ์งธ ๋ฒ„์ „์—๋Š” 4์ค„์˜ ์ฝ”๋“œ๋งŒ ํฌํ•จ๋˜์–ด ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ๋น„๊ต๋ฅผ ์œ„ํ•ด OpenVPN์—๋Š” ์•ฝ 120๋งŒ ํšŒ์„ ์ด ์žˆ๊ณ  IPSec์—๋Š” 420๋งŒ ํšŒ์„ ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

์— ~์— ๋”ฐ๋ฅด๋ฉด ๊ฐœ๋ฐœ์ž๋Š” WireGuard๋ฅผ ์‰ฝ๊ฒŒ ๊ตฌ์„ฑํ•˜๊ณ  ํ”„๋กœํ† ์ฝœ ๋ณด์•ˆ์„ ๋‹ฌ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฒ€์ฆ๋œ ์•”ํ˜ธํ™” ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ํ†ตํ•ด. ๋„คํŠธ์›Œํฌ๋ฅผ ๋ณ€๊ฒฝํ•  ๋•Œ: Wi-Fi, LTE ๋˜๋Š” ์ด๋”๋„ท์€ ๋งค๋ฒˆ VPN ์„œ๋ฒ„์— ๋‹ค์‹œ ์—ฐ๊ฒฐํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. WireGuard ์„œ๋ฒ„๋Š” ์‚ฌ์šฉ์ž๊ฐ€ ์ƒˆ IP ์ฃผ์†Œ๋ฅผ ๋ฐ›์€ ๊ฒฝ์šฐ์—๋„ ์—ฐ๊ฒฐ์„ ์ข…๋ฃŒํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

WireGuard๊ฐ€ ์›๋ž˜ Linux ์ปค๋„์šฉ์œผ๋กœ ์„ค๊ณ„๋˜์—ˆ๋‹ค๋Š” ์‚ฌ์‹ค์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ  ๊ฐœ๋ฐœ์ž๋Š” ๋ณด์‚ดํ•Œ Android ๊ธฐ๊ธฐ์šฉ ๋„๊ตฌ์˜ ํœด๋Œ€์šฉ ๋ฒ„์ „์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค. ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์€ ์•„์ง ์™„์ „ํžˆ ๊ฐœ๋ฐœ๋˜์ง€ ์•Š์•˜์ง€๋งŒ ์ง€๊ธˆ ์‚ฌ์šฉํ•ด ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ ์œ„ํ•ด์„œ๋Š” ๋‹น์‹ ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค ํ…Œ์Šคํ„ฐ ์ค‘ ํ•œ ๋ช…์ด ๋˜๋‹ค.

์ผ๋ฐ˜์ ์œผ๋กœ WireGuard๋Š” ๊ฝค ์œ ๋ช…ํ•˜๋ฉฐ ์‹ฌ์ง€์–ด ๊ตฌํ˜„ Mullvad ๋ฐ AzireVPN๊ณผ ๊ฐ™์€ ์—ฌ๋Ÿฌ VPN ์ œ๊ณต์—…์ฒด. ์˜จ๋ผ์ธ์— ๊ฒŒ์‹œ๋จ ๋‹ค์ˆ˜ ์„ค์ • ๊ฐ€์ด๋“œ ์ด ๊ฒฐ์ •. ์˜ˆ๋ฅผ ๋“ค์–ด, ๊ฐ€์ด๋“œ๊ฐ€ ์žˆ์–ด์š”, ์‚ฌ์šฉ์ž๊ฐ€ ๋งŒ๋“  ๊ฐ€์ด๋“œ๊ฐ€ ์žˆ์œผ๋ฉฐ, ํ”„๋กœ์ ํŠธ ์ž‘์„ฑ์ž๊ฐ€ ์ค€๋น„ํ•œ.

๊ธฐ์ˆ ์˜

ะ’ ๊ณต์‹ ๋ฌธ์„œ (p. 18) WireGuard์˜ ์ฒ˜๋ฆฌ๋Ÿ‰์€ OpenVPN์˜ ์ฒ˜๋ฆฌ๋Ÿ‰๋ณด๋‹ค 1011๋ฐฐ ๋” ๋†’์Šต๋‹ˆ๋‹ค(๊ฐ๊ฐ 258Mbit/s ๋Œ€ 881Mbit/s). WireGuard๋Š” ๋˜ํ•œ Linux IPsec์šฉ ํ‘œ์ค€ ์†”๋ฃจ์…˜๋ณด๋‹ค ์•ž์„œ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” XNUMXMbit/s๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ ์„ค์ •์˜ ์šฉ์ด์„ฑ์—์„œ๋„ ์ด๋ฅผ ๋Šฅ๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.

ํ‚ค๊ฐ€ ๊ตํ™˜๋˜๊ณ (VPN ์—ฐ๊ฒฐ์€ SSH์™€ ๋งค์šฐ ์œ ์‚ฌํ•˜๊ฒŒ ์ดˆ๊ธฐํ™”๋จ) ์—ฐ๊ฒฐ์ด ์„ค์ •๋œ ํ›„ WireGuard๋Š” ๋‹ค๋ฅธ ๋ชจ๋“  ์ž‘์—…์„ ์ž์ฒด์ ์œผ๋กœ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค. ๋ผ์šฐํŒ…, ์ƒํƒœ ์ œ์–ด ๋“ฑ์— ๋Œ€ํ•ด ๊ฑฑ์ •ํ•  ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ์ถ”๊ฐ€ ๊ตฌ์„ฑ ๋…ธ๋ ฅ์€ ๋‹จ์ง€ ๋Œ€์นญ ์•”ํ˜ธํ™”๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๋Š” ๊ฒฝ์šฐ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

WireGuard๋Š” Linux ์ปค๋„์— "๋„์ฐฉ"ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด์œ ๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?
/ ์‚ฌ์ง„ ์•ค๋”์Šค ํ˜ธ์ด๋น„์—๋ฅด๊ทธ CC

์„ค์น˜ํ•˜๋ ค๋ฉด 4.1 ์ด์ „์˜ Linux ์ปค๋„์ด ํฌํ•จ๋œ ๋ฐฐํฌํŒ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ์ฃผ์š” Linux ๋ฐฐํฌํŒ์˜ ์ €์žฅ์†Œ์—์„œ ์ฐพ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

$ sudo add-apt-repository ppa:hda-me/wireguard
$ sudo apt update
$ sudo apt install wireguard-dkms wireguard-tools

xakep.ru ํŽธ์ง‘์ž๋Š” ์†Œ์Šค ํ…์ŠคํŠธ์—์„œ ์ž์ฒด ์กฐ๋ฆฝ๋„ ์‰ฝ๋‹ค๊ณ  ์ง€์ ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์—ด๊ณ  ๊ณต๊ฐœ ๋ฐ ๊ฐœ์ธ ํ‚ค๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๊ฒƒ์œผ๋กœ ์ถฉ๋ถ„ํ•ฉ๋‹ˆ๋‹ค.

$ sudo ip link add dev wg0 type wireguard
$ wg genkey | tee privatekey | wg pubkey > publickey

์™€์ด์–ด ๊ฐ€๋“œ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š”๋‹ค ์•”ํ˜ธํ™”ํ ๊ณต๊ธ‰์ž์™€ ์ž‘์—…ํ•˜๊ธฐ ์œ„ํ•œ ์ธํ„ฐํŽ˜์ด์Šค ์•”ํ˜ธ ํ™”ํ. ๋Œ€์‹  ์ŠคํŠธ๋ฆผ ์•”ํ˜ธ๊ฐ€ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ChaCha20, ์•”ํ˜ธํ™” ๋ชจ์กฐ ์‚ฝ์ž… Poly1305 ๋ฐ ๋…์  ์•”ํ˜ธํ™” ํ•ด์‹œ ๊ธฐ๋Šฅ.

๋น„๋ฐ€ ํ‚ค๋Š” ๋‹ค์Œ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค. Diffie-Hellman ํ”„๋กœํ† ์ฝœ ํƒ€์› ๊ณก์„ ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ์ปค๋ธŒ 25519. ํ•ด์‹ฑํ•  ๋•Œ ๋‹ค์Œ์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ํ•ด์‹œ ํ•จ์ˆ˜ ๋ธ”๋ ˆ์ดํฌ 2 ะธ ์‹ญํ•ด์‹œ. ํƒ€์ž„์Šคํƒฌํ”„ ํ˜•์‹์œผ๋กœ ์ธํ•ด TAI64N ํ”„๋กœํ† ์ฝœ์€ ํƒ€์ž„์Šคํƒฌํ”„ ๊ฐ’์ด ๋” ์ž‘์€ ํŒจํ‚ท์„ ํ๊ธฐํ•ฉ๋‹ˆ๋‹ค. DoS ๋ฐฉ์ง€- ะธ ์žฌ์ƒ ๊ณต๊ฒฉ.

์ด ๊ฒฝ์šฐ WireGuard๋Š” ioctl ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ I/O๋ฅผ ์ œ์–ดํ•ฉ๋‹ˆ๋‹ค(์ด์ „์— ์‚ฌ์šฉ๋จ). ๋„ท ๋งํฌ), ์ฝ”๋“œ๊ฐ€ ๋”์šฑ ๊น”๋”ํ•˜๊ณ  ๋‹จ์ˆœํ•ด์ง‘๋‹ˆ๋‹ค. ์ด๋ฅผ ์‚ดํŽด๋ณด๋ฉด ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ตฌ์„ฑ ์ฝ”๋“œ.

๊ฐœ๋ฐœ์ž ๊ณ„ํš

ํ˜„์žฌ WireGuard๋Š” ํŠธ๋ฆฌ ์™ธ๋ถ€ ์ปค๋„ ๋ชจ๋“ˆ์ž…๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ํ”„๋กœ์ ํŠธ์˜ ์ €์ž๋Š” Jason Donenfeld์ž…๋‹ˆ๋‹ค. ะณะพะฒะพั€ะธั‚, Linux ์ปค๋„์—์„œ ์™„์ „ํ•œ ๊ตฌํ˜„์„ ํ•  ๋•Œ๊ฐ€ ์™”์Šต๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ์†”๋ฃจ์…˜๋ณด๋‹ค ๋” ๊ฐ„๋‹จํ•˜๊ณ  ์•ˆ์ •์ ์ด๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ์ด์— ๋Œ€ํ•ด ์ œ์ด์Šจ ะฟะพะดะดะตั€ะถะธะฒะฐะตั‚ Linus Torvalds ์ž์‹ ๋„ WireGuard ์ฝ”๋“œ๋ฅผ "์˜ˆ์ˆ  ์ž‘ํ’ˆ"์ด๋ผ๊ณ  ๋ถˆ๋ €์Šต๋‹ˆ๋‹ค.

๊ทธ๋Ÿฌ๋‚˜ WireGuard๊ฐ€ ์ปค๋„์— ๋„์ž…๋œ ์ •ํ™•ํ•œ ๋‚ ์งœ์— ๋Œ€ํ•ด ๋งํ•˜๋Š” ์‚ฌ๋žŒ์€ ์•„๋ฌด๋„ ์—†์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๊ฑฐ์˜ ~ ์•„๋‹ˆ๋‹ค ์ด๋Š” 4.18์›” Linux ์ปค๋„ 4.19 ๋ฆด๋ฆฌ์Šค์—์„œ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๊ฐ€๊นŒ์šด ๋ฏธ๋ž˜์— ๋ฒ„์ „ 5.0 ๋˜๋Š” XNUMX์—์„œ ์ด๋Ÿฌํ•œ ์ผ์ด ๋ฐœ์ƒํ•  ๊ฐ€๋Šฅ์„ฑ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

WireGuard๊ฐ€ ์ปค๋„์— ์ถ”๊ฐ€๋˜๋ฉด ๊ฐœ๋ฐœ์ž๋Š” ~ ์‹ถ๋‹ค. Android ์žฅ์น˜์šฉ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋งˆ๋ฌด๋ฆฌํ•˜๊ณ  iOS์šฉ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ž‘์„ฑ์„ ์‹œ์ž‘ํ•˜์„ธ์š”. ๋˜ํ•œ Go ๋ฐ Rust์—์„œ ๊ตฌํ˜„์„ ์™„๋ฃŒํ•˜๊ณ  ์ด๋ฅผ macOS, Windows ๋ฐ BSD๋กœ ํฌํŒ…ํ•  ๊ณ„ํš๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ ๋ณด๋‹ค "์ด๊ตญ์ ์ธ ์‹œ์Šคํ…œ"์„ ์œ„ํ•ด WireGuard๋ฅผ ๊ตฌํ˜„ํ•  ๊ณ„ํš์ž…๋‹ˆ๋‹ค. DPDK, FPGA, ๊ทธ๋ฆฌ๊ณ  ๋‹ค๋ฅธ ๋งŽ์€ ํฅ๋ฏธ๋กœ์šด ๊ฒƒ๋“ค. ๋ชจ๋‘ ๋ชฉ๋ก์— ๋‚˜์™€ ์žˆ์Šต๋‹ˆ๋‹ค. ํ•  ์ผ ๋ชฉ๋ก ํ”„๋กœ์ ํŠธ์˜ ์ €์ž.

์ถ”์‹ : ๋‹น์‚ฌ ๋ธ”๋กœ๊ทธ์˜ ๋ช‡ ๊ฐ€์ง€ ์ถ”๊ฐ€ ๊ธฐ์‚ฌ:

์šฐ๋ฆฌ ํ™œ๋™์˜ ์ฃผ์š” ๋ฐฉํ–ฅ์€ ํด๋ผ์šฐ๋“œ ์„œ๋น„์Šค ์ œ๊ณต์ž…๋‹ˆ๋‹ค.

๊ฐ€์ƒ ์ธํ”„๋ผ(IaaS) | PCI DSS ํ˜ธ์ŠคํŒ… | ํด๋ผ์šฐ๋“œ FZ-152 | SAP ํ˜ธ์ŠคํŒ… | ๊ฐ€์ƒ ์Šคํ† ๋ฆฌ์ง€ | ํด๋ผ์šฐ๋“œ์˜ ๋ฐ์ดํ„ฐ ์•”ํ˜ธํ™” | ํด๋ผ์šฐ๋“œ ์Šคํ† ๋ฆฌ์ง€

์ถœ์ฒ˜ : habr.com

์ฝ”๋ฉ˜ํŠธ๋ฅผ ์ถ”๊ฐ€