FreeBSD ์ฝ”๋“œ๋ฒ ์ด์Šค์— ์ƒˆ๋กœ์šด VPN ๊ตฌํ˜„์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. WireGuard

FreeBSD ์†Œ์Šค ํŠธ๋ฆฌ์— ์ƒˆ๋กœ์šด VPN ๊ตฌํ˜„์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. WireGuardFreeBSD ์ฝ”์–ด ๊ฐœ๋ฐœํŒ€์ด ๊ณต๋™์œผ๋กœ ์ค€๋น„ํ•œ ์ปค๋„ ๋ชจ๋“ˆ ์ฝ”๋“œ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•ฉ๋‹ˆ๋‹ค. WireGuard VPN์˜ ์ €์ž์ธ ์ œ์ด์Šจ A. ๋„๋„จํŽ ๋“œ๊ฐ€ ์ถœ์—ฐํ•ฉ๋‹ˆ๋‹ค. WireGuard๊ทธ๋ฆฌ๊ณ  ์กด H. ๋ณผ๋“œ์œˆ์€ 2000๋…„๋Œ€ ์ดˆ FreeBSD ์ปค๋„์— SMP ๋ฐ NUMA ์ง€์›์„ ๊ตฌํ˜„ํ•œ ์ €๋ช…ํ•œ GDB ๋ฐ FreeBSD ๊ฐœ๋ฐœ์ž์ž…๋‹ˆ๋‹ค. ๋“œ๋ผ์ด๋ฒ„๊ฐ€ FreeBSD(sys/dev/wg)์— ์Šน์ธ๋˜๋ฉด ๊ฐœ๋ฐœ ๋ฐ ์œ ์ง€ ๊ด€๋ฆฌ๋Š” FreeBSD ์ €์žฅ์†Œ์—์„œ ์ด๋ฃจ์–ด์งˆ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

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

๋“œ๋ผ์ด๋ฒ„์— ํ•„์š”ํ•œ ์•”ํ˜ธํ™” ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด FreeBSD ์ปค๋„ ์•”ํ˜ธํ™” ํ•˜์œ„ ์‹œ์Šคํ…œ API๊ฐ€ ํ™•์žฅ๋˜์—ˆ์œผ๋ฉฐ, ์—ฌ๊ธฐ์— libsodium ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์˜ ํ•„์ˆ˜ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๊ตฌํ˜„์„ ํ†ตํ•ด FreeBSD์—์„œ ํ‘œ์ค€ ์•”ํ˜ธํ™” API๋ฅผ ํ†ตํ•ด ์ง€์›๋˜์ง€ ์•Š๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ๋ฐ”์ธ๋”ฉ์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋“œ๋ผ์ด๋ฒ„์— ๋‚ด์žฅ๋œ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ค‘ Blake2 ํ•ด์‹œ ๊ณ„์‚ฐ ์ฝ”๋“œ๋งŒ ๋‚จ์•˜์Šต๋‹ˆ๋‹ค. FreeBSD์—์„œ ์ œ๊ณตํ•˜๋Š” ์ด ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ๊ตฌํ˜„์€ ๊ณ ์ •๋œ ํ•ด์‹œ ํฌ๊ธฐ์— ์ข…์†๋˜์–ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

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

์ด์ „์˜ ํ†ตํ•ฉ ์‹œ๋„์™€๋Š” ๋‹ฌ๋ฆฌ WireGuard FreeBSD์—์„œ๋Š” ์ƒˆ๋กœ์šด ๊ตฌํ˜„ ๋ฐฉ์‹์ด ์ˆ˜์ •๋œ ifconfig ๋ฒ„์ „ ๋Œ€์‹  ํ‘œ์ค€ wg ์œ ํ‹ธ๋ฆฌํ‹ฐ๋ฅผ ์‚ฌ์šฉํ•˜๋ฏ€๋กœ ์„ค์ •์„ ํ†ตํ•ฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. Linux ๊ทธ๋ฆฌ๊ณ  FreeBSD์—์„œ๋„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. wg ์œ ํ‹ธ๋ฆฌํ‹ฐ๋Š” ๋“œ๋ผ์ด๋ฒ„์™€ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ FreeBSD ์†Œ์Šค ์ฝ”๋“œ์— ํฌํ•จ๋˜์–ด ์žˆ๋Š”๋ฐ, ์ด๋Š” wg ์ฝ”๋“œ ๋ผ์ด์„ ์Šค๋ฅผ ๋ณ€๊ฒฝํ•จ์œผ๋กœ์จ ๊ฐ€๋Šฅํ•ด์กŒ์Šต๋‹ˆ๋‹ค(ํ˜„์žฌ ์ฝ”๋“œ๋Š” MIT ๋ฐ GPL ๋ผ์ด์„ ์Šค ํ•˜์— ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค). ์ด์ „์—๋Š” ์†Œ์Šค ์ฝ”๋“œ์— wg ์œ ํ‹ธ๋ฆฌํ‹ฐ๋ฅผ ํฌํ•จ์‹œํ‚ค๋ ค๋Š” ์‹œ๋„๊ฐ€ ์žˆ์—ˆ์ง€๋งŒ ์‹คํŒจํ–ˆ์Šต๋‹ˆ๋‹ค. WireGuard 2020๋…„์— FreeBSD๋กœ์˜ ๋ณ‘ํ•ฉ ์‹œ๋„๊ฐ€ ์žˆ์—ˆ์ง€๋งŒ, ํ’ˆ์งˆ ์ €ํ•˜, ๋ฒ„ํผ ์ฒ˜๋ฆฌ ๋ฏธํก, ๊ฒ€์‚ฌ ๋Œ€์‹  ์Šคํ… ์‚ฌ์šฉ, ๋ถˆ์™„์ „ํ•œ ํ”„๋กœํ† ์ฝœ ๊ตฌํ˜„, GPL ๋ผ์ด์„ ์Šค ์œ„๋ฐ˜ ๋“ฑ์˜ ์ด์œ ๋กœ ์ด๋ฏธ ์ถ”๊ฐ€๋œ ์ฝ”๋“œ๊ฐ€ ์ œ๊ฑฐ๋˜๋ฉด์„œ ๋…ผ๋ž€์œผ๋กœ ๋๋‚ฌ์Šต๋‹ˆ๋‹ค.

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

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

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

์ถœ์ฒ˜ : opennet.ru

DDoS ๋ณดํ˜ธ, VPS VDS ์„œ๋ฒ„๊ฐ€ ์žˆ๋Š” ์‚ฌ์ดํŠธ๋ฅผ ์œ„ํ•œ ์•ˆ์ •์ ์ธ ํ˜ธ์ŠคํŒ… ๊ตฌ์ž… ๐Ÿ”ฅ DDoS ๊ณต๊ฒฉ ๋ฐฉ์ง€ ๊ธฐ๋Šฅ์ด ํƒ‘์žฌ๋œ ์•ˆ์ •์ ์ธ ์›น์‚ฌ์ดํŠธ ํ˜ธ์ŠคํŒ…, VPS ๋ฐ VDS ์„œ๋ฒ„๋ฅผ ๊ตฌ๋งคํ•˜์„ธ์š” | ProHoster