NetBSD ์ปค๋„์€ VPN WireGuard์— ๋Œ€ํ•œ ์ง€์›์„ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.

NetBSD ํ”„๋กœ์ ํŠธ ๊ฐœ๋ฐœ์ž ัะพะพะฑั‰ะธะปะธ ๊ธฐ๋ณธ NetBSD ์ปค๋„์— WireGuard ํ”„๋กœํ† ์ฝœ ๊ตฌํ˜„๊ณผ ํ•จ๊ป˜ wg ๋“œ๋ผ์ด๋ฒ„๋ฅผ ํฌํ•จ์‹œํ‚ค๋Š” ๊ฒƒ์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค. NetBSD๋Š” Linux์™€ OpenBSD์— ์ด์–ด WireGuard๋ฅผ ํ†ตํ•ฉ ์ง€์›ํ•˜๋Š” ์„ธ ๋ฒˆ์งธ OS๊ฐ€ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. VPN ๊ตฌ์„ฑ์„ ์œ„ํ•œ ๊ด€๋ จ ๋ช…๋ น(wg-keygen ๋ฐ wgconfig)๋„ ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ ์ปค๋„ ๊ตฌ์„ฑ(GENERIC)์—์„œ๋Š” ๋“œ๋ผ์ด๋ฒ„๊ฐ€ ์•„์ง ํ™œ์„ฑํ™”๋˜์ง€ ์•Š์•˜์œผ๋ฉฐ ์„ค์ •์—์„œ "pseudo-device wg"๋ฅผ ๋ช…์‹œ์ ์œผ๋กœ ํ‘œ์‹œํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์ถ”๊ฐ€์ ์œผ๋กœ ์ฃผ๋ชฉํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์€ ์ถœํŒ wg ๋ฐ wg-quick๊ณผ ๊ฐ™์€ ์‚ฌ์šฉ์ž ๊ณต๊ฐ„ ์œ ํ‹ธ๋ฆฌํ‹ฐ๋ฅผ ํฌํ•จํ•˜๋Š” wireguard-tools 1.0.20200820 ํŒจํ‚ค์ง€์— ๋Œ€ํ•œ ์ˆ˜์ • ์—…๋ฐ์ดํŠธ์ž…๋‹ˆ๋‹ค. ์ƒˆ ๋ฆด๋ฆฌ์Šค์—์„œ๋Š” FreeBSD ์šด์˜ ์ฒด์ œ์—์„œ ๊ณง ์ถœ์‹œ๋  WireGuard ์ง€์›์„ ์œ„ํ•ด IPC๋ฅผ ์ค€๋น„ํ•ฉ๋‹ˆ๋‹ค. ๋‹ค์–‘ํ•œ ํ”Œ๋žซํผ์— ํŠน์ •ํ•œ ์ฝ”๋“œ๋Š” ์—ฌ๋Ÿฌ ํŒŒ์ผ๋กœ ๋‚˜๋ˆ„์–ด์กŒ์Šต๋‹ˆ๋‹ค. "reload" ๋ช…๋ น์— ๋Œ€ํ•œ ์ง€์›์ด systemd์šฉ ์œ ๋‹› ํŒŒ์ผ์— ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด "systemctl reload wg-quick at wgnet0"๊ณผ ๊ฐ™์€ ๊ตฌ์„ฑ์„ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

VPN WireGuard๋Š” ์ตœ์‹  ์•”ํ˜ธํ™” ๋ฐฉ๋ฒ•์„ ๊ธฐ๋ฐ˜์œผ๋กœ ๊ตฌํ˜„๋˜๊ณ  ๋งค์šฐ ๋†’์€ ์„ฑ๋Šฅ์„ ์ œ๊ณตํ•˜๋ฉฐ ์‚ฌ์šฉํ•˜๊ธฐ ์‰ฝ๊ณ  ๋ณต์žกํ•˜์ง€ ์•Š์œผ๋ฉฐ ๋Œ€๋Ÿ‰์˜ ํŠธ๋ž˜ํ”ฝ์„ ์ฒ˜๋ฆฌํ•˜๋Š” ์—ฌ๋Ÿฌ ๋Œ€๊ทœ๋ชจ ๋ฐฐํฌ์—์„œ ์ž…์ฆ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ด ํ”„๋กœ์ ํŠธ๋Š” 2015๋…„๋ถ€ํ„ฐ ๊ฐœ๋ฐœ๋˜์–ด ๊ฐ์‚ฌ๋ฅผ ๋ฐ›์•˜์œผ๋ฉฐ, ์ •์‹ ๊ฒ€์ฆ ์‚ฌ์šฉ๋œ ์•”ํ˜ธํ™” ๋ฐฉ๋ฒ•. WireGuard ์ง€์›์€ ์ด๋ฏธ NetworkManager ๋ฐ systemd์— ํ†ตํ•ฉ๋˜์–ด ์žˆ์œผ๋ฉฐ ์ปค๋„ ํŒจ์น˜๋Š” ๊ธฐ๋ณธ ๋ฐฐํฌํŒ์— ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฐ๋น„์•ˆ ๋ถˆ์•ˆ์ •, ๋งˆ๊ฒŒ์ด์•„, ์•ŒํŒŒ์ธ, ์•„์น˜, ์  ํˆฌ, OpenWrt, NixOS, ํ•˜์œ„ ๊ทธ๋ž˜ํ”„ ะธ ALT.

WireGuard๋Š” ๊ฐ ๋„คํŠธ์›Œํฌ ์ธํ„ฐํŽ˜์ด์Šค์— ๊ฐœ์ธ ํ‚ค๋ฅผ ์—ฐ๊ฒฐํ•˜๊ณ  ์ด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ณต๊ฐœ ํ‚ค๋ฅผ ๋ฐ”์ธ๋”ฉํ•˜๋Š” ์•”ํ˜ธํ™” ํ‚ค ๋ผ์šฐํŒ… ๊ฐœ๋…์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. SSH์™€ ์œ ์‚ฌํ•œ ๋ฐฉ์‹์œผ๋กœ ๊ณต๊ฐœ ํ‚ค๋ฅผ ๊ตํ™˜ํ•˜์—ฌ ์—ฐ๊ฒฐ์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž ๊ณต๊ฐ„์—์„œ ๋ณ„๋„์˜ ๋ฐ๋ชฌ์„ ์‹คํ–‰ํ•˜์ง€ ์•Š๊ณ  ํ‚ค๋ฅผ ํ˜‘์ƒํ•˜๊ณ  ์—ฐ๊ฒฐํ•˜๋ ค๋ฉด ๋‹ค์Œ์˜ Noise_IK ๋ฉ”์ปค๋‹ˆ์ฆ˜์„ ์‚ฌ์šฉํ•˜์„ธ์š”. ๋…ธ์ด์ฆˆ ํ”„๋กœํ† ์ฝœ ํ”„๋ ˆ์ž„์›ŒํฌSSH์—์„œ Authorized_keys๋ฅผ ์œ ์ง€ํ•˜๋Š” ๊ฒƒ๊ณผ ์œ ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ ์ „์†ก์€ UDP ํŒจํ‚ท์˜ ์บก์Šํ™”๋ฅผ ํ†ตํ•ด ์ˆ˜ํ–‰๋ฉ๋‹ˆ๋‹ค. ์ž๋™ ํด๋ผ์ด์–ธํŠธ ์žฌ๊ตฌ์„ฑ์œผ๋กœ ์—ฐ๊ฒฐ์„ ๋Š์ง€ ์•Š๊ณ  VPN ์„œ๋ฒ„์˜ IP ์ฃผ์†Œ ๋ณ€๊ฒฝ(๋กœ๋ฐ)์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.

์•”ํ˜ธํ™”๋ฅผ ์œ„ํ•ด ์‚ฌ์šฉ ๋œ ์ŠคํŠธ๋ฆผ ์•”ํ˜ธ ChaCha20 ๋ฐ ๋ฉ”์‹œ์ง€ ์ธ์ฆ ์•Œ๊ณ ๋ฆฌ์ฆ˜(MAC) Poly1305, ๋‹ค๋‹ˆ์—˜ ๋ฒˆ์Šคํƒ€์ธ(Daniel Bernstein)์ด ๋””์ž์ธํ•œ๋‹ค๋‹ˆ์—˜ J. ๋ฒˆ์Šคํƒ€์ธ), ํƒ€๋ƒ ๋žญ
(Tanja Lange) ๋ฐ Peter Schwabe. ChaCha20 ๋ฐ Poly1305๋Š” AES-256-CTR ๋ฐ HMAC์˜ ๋” ๋น ๋ฅด๊ณ  ์•ˆ์ „ํ•œ ์•„๋‚ ๋กœ๊ทธ๋กœ ์ž๋ฆฌ ์žก์•˜์œผ๋ฉฐ, ์†Œํ”„ํŠธ์›จ์–ด ๊ตฌํ˜„์„ ํ†ตํ•ด ํŠน๋ณ„ํ•œ ํ•˜๋“œ์›จ์–ด ์ง€์›์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ ๋„ ๊ณ ์ •๋œ ์‹คํ–‰ ์‹œ๊ฐ„์„ ๋‹ฌ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ณต์œ  ๋น„๋ฐ€ ํ‚ค๋ฅผ ์ƒ์„ฑํ•˜๊ธฐ ์œ„ํ•ด ํƒ€์› ๊ณก์„  Diffie-Hellman ํ”„๋กœํ† ์ฝœ์ด ๊ตฌํ˜„์— ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ์ปค๋ธŒ 25519, Daniel Bernstein๋„ ์ œ์•ˆํ–ˆ์Šต๋‹ˆ๋‹ค. ํ•ด์‹ฑ์— ์‚ฌ์šฉ๋˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. BLAKE2(RFC7693).

์ถœ์ฒ˜ : opennet.ru

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