[VPN]WireGuard ์„ค์น˜

2023. 7. 7. 17:22ใ†System ์ž‘์—…์‹ค/Server ๊ด€๋ จ

728x90
๋ฐ˜์‘ํ˜•

 




 

 

 

๐Ÿš€ WireGuard ์„ค์น˜

    ๐Ÿ”ฝ ๊ฐœ์š”

        ๐Ÿ“ฆ ์†Œ๊ฐœ

์ง€๋‚œ ์‹œ๊ฐ„์— [Network] OPNsense ์„ค์น˜ ๋ฐ ๊ตฌ์„ฑ ์œผ๋กœ ํ”„๋กœ์ ํŠธ๋ฅผ ์œ„ํ•ด ์‚ฌ์šฉํ•  UTM์„ ๊ตฌ์„ฑํ•ด ๋ณด์•˜์–ด์š”.

OPNsense๋ฅผ ์ด์šฉํ•ด์„œ WireGuard๋ผ๋Š” VPN์„ ์„ค์น˜ํ•  ์ˆ˜ ์žˆ์–ด ์ด๋ฒˆ ์‹œ๊ฐ„์—๋Š” ํ•ด๋‹น ์ž‘์—…์„ ํ•ด๋ณด๋ ค๊ณ  ํ•ด์š”.

๊ธฐ์กด์— Synology NAS๋ฅผ ํ†ตํ•ด OpenVPN์„ ์‚ฌ์šฉํ•˜์—ฌ ๋‚ด๋ถ€ Server์— ์ ‘์†ํ•  ์ˆ˜ ์žˆ์—ˆ์–ด์š”.

ํ•˜์ง€๋งŒ, VPN์„ ์—ฐ๊ฒฐํ•˜๊ฒŒ ๋˜๋ฉด ์ธํ„ฐ๋„ท์ด ๋ถˆ์•ˆ์ •ํ•ด์ง€๊ณ , Server๋ฅผ ์žฌ๋ถ€ํŒ…ํ•˜๋ฉด VPN์˜ IP๊ฐ€ ๋ณ€๊ฒฝ๋˜๋Š” ๋“ฑ์— ๋ฌธ์ œ๋กœ ์ธํ•ด WireGuard๋ฅผ ํ•œ๋ฒˆ ์„ค์น˜ํ•˜๊ณ  ์ด์šฉํ•ด ๋ณด๋ ค๊ณ  ํ•ด์š”.

WireGuard๋Š” OpneVPN๋ณด๋‹ค ๋น ๋ฅด๊ณ , ๋ณด์•ˆ๋„ ํ›จ์”ฌ ๋” ๊ฐ•ํ™”๊ฐ€ ๋˜์—ˆ๋‹ค๊ณ  ํ•ด์š”.

์ง€์›ํ•˜๋Š” Client Plaform ์€ Windows, Linux, Android, IOS๋Š” ๋ฌผ๋ก  ๊ฐ ์ข… F/W OS๊นŒ์ง€ ๊ฑฐ์˜ ๋ชจ๋‘ ์ง€์›ํ•œ๋‹ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

WireGuard๋Š” Key ๊ตํ™˜์„ ์œ„ํ•ด Curve25519๋ฅผ ์‚ฌ์šฉํ•˜๊ณ , ์•”ํ˜ธํ™”๋ฅผ ์œ„ํ•œ ChaCha20, Data ์ธ์ฆ์„ ์œ„ํ•œ Poly1305, Hash Table Key์šฉ์œผ๋กœ SipHash, Hashing์šฉ BLAKE2 ๋ฐฉ์‹์˜ Checksum์„ ์‚ฌ์šฉํ•˜๋ฉฐ, UDP Protocol์„ ์‚ฌ์šฉํ•œ๋‹ค๊ณ  ํ•ด์š”.

WireGuard๋Š” ์–‘์ž ์•”ํ˜ธํ™”์˜ ํ–ฅํ›„ ๋ฐœ์ „์„ ์™„ํ™”ํ•˜๊ธฐ ์œ„ํ•ด ํฌํ•จ๋œ ์‚ฌ์ „ ๊ณต์œ  ๋Œ€์นญ ํ‚ค ๋ชจ๋“œ๋ฅผ ์ง€์›ํ•˜๋Š”๋ฐ, ๋‹จ๊ธฐ์ ์œผ๋กœ ๊ณต์œ ๋œ ๋Œ€์นญํ‚ค๊ฐ€ ์†์ƒ๋˜๋”๋ผ๋„ Curve25519 ๋ฐฉ์‹์˜ ํ‚ค๋Š” ์ถฉ๋ถ„ํ•œ ๋ณดํ˜ธ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•œ๋‹ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

๋˜ํ•œ WireGuard๋Š” ํ„ฐ๋„ ๋‚ด๋ถ€์™€ ์™ธ๋ถ€ ๋ชจ๋‘ IPv6๋ฅผ ์™„๋ฒฝํ•˜๊ฒŒ ์ง€์›ํ•˜๋ฉฐ, IPv4, IPv6 ๋ชจ๋‘์— ๋Œ€ํ•ด CLASS 3๋งŒ ์ง€์›ํ•˜๊ณ  ์žˆ๊ณ , v4-in-v6 ์บก์Šํ™” ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์œผ๋ฉฐ, ๋ฐ˜๋Œ€์˜ ๊ฒฝ์šฐ๋„ ๋งˆ์ฐฌ๊ฐ€์ง€๋ผ๊ณ  ํ•ด์š”.

๋˜ํ•œ ์—ฌ๋Ÿฌ topologie๋ฅผ ์ง€์›ํ•œ๋‹ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

WireGuard๋Š” Client๊ฐ€ Data ์ „์†ก์„ ์‹œ์ž‘ํ•˜๊ธฐ ์ „์— Client Endpoint๋ฅผ ์ •์˜ํ•  ํ•„์š”๊ฐ€ ์—†๊ณ , Endpoin๋Š” ์ •์ ์œผ๋กœ ๋ฏธ๋ฆฌ ์ •์˜ํ•  ์ˆ˜๋„ ์žˆ์–ด์š”. ๋˜ํ•œ, Mash ๊ธฐ๋Šฅ์œผ๋กœ ์ง€์  ๊ฐ„ ์—ฐ๊ฒฐ์ด ์ง€์›๋˜๊ธฐ ๋•Œ๋ฌธ์— ๋‹ค๋ฅธ topologie์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ์ง€๋งŒ, ๋™์ผํ•œ ํ„ฐ๋„์—์„œ๋Š” ๋งŒ๋“ค ์ˆ˜ ์—†๋‹ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

WireGuard๋Š” ๋‹ค๋ฅธ ํ”„๋กœ๊ทธ๋žจ ๋ฐ ์Šคํฌ๋ฆฝํŠธ์— ์˜ํ•ด ํ™•์žฅ์ด ๊ฐ€๋Šฅํ•˜๋„๋ก ๋งŒ๋“ค์–ด์กŒ์–ด์š”.
์ด๋Š” ๋ณด๋‹ค ์‚ฌ์šฉ์ž ์นœํ™”์  ๊ด€๋ฆฌ ์ธํ„ฐํŽ˜์ด์Šค (ํ‚ค ์„ค์ • ์šฉ์ด ํฌํ•จ), Loging, Dynamic F/W Update์™€ LDAP ํ†ตํ•ฉ์„ ํฌํ•จํ•œ ๋‹ค์–‘ํ•œ ๊ธฐ๋Šฅ์œผ๋กœ WireGuard๋ฅผ ๋ณด๊ฐ•ํ•˜๋Š”๋ฐ, ์‚ฌ์šฉ๋˜์—ˆ๊ณ , 4000์ค„ ๋ฐ–์— ์•ˆ๋˜๋Š” ์ ์€ ๋Ÿ‰์— Code๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๊ตฌ์ถ•ํ•  ๋•Œ ์ƒ๋‹นํžˆ ๊ฐ„๊ฒฐํ•˜๊ณ , ๋น ๋ฅด๊ฒŒ ์ž‘์—…ํ•  ์ˆ˜ ์žˆ๋Š” ์žฅ์ ์„ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

 

 

 

    ๐Ÿ”ฝ WireGuard

        ๐Ÿ“ฆ OPNsense๋ฅผ ํ†ตํ•ด Plugin ์„ค์น˜ํ•˜๊ธฐ

์ตœ์ดˆ OPNsense ๊ด€๋ฆฌ์ž Page์— ์ ‘์†ํ•˜์—ฌ ์„ค์ •์„ ํ•ด์ฃผ์–ด์•ผ ํ•ด์š”.

System -> Firmware -> Plugins -> Plugins

 


์ตœ์ดˆ OPNsense ์„ค์น˜ ์‹œ Plugin์„ ์‚ฌ์šฉํ•˜๋ ค๋ฉด Update๋ฅผ ํ•ด์ฃผ์–ด์•ผ ํ•ด์š”.


Status Tab์œผ๋กœ ์ด๋™ํ•˜์—ฌ Check for updates๋ฅผ ๋ˆŒ๋Ÿฌ ์ค๋‹ˆ๋‹ค.



์œ„์™€ ๊ฐ™์ด Update๊ฐ€ ์ง„ํ–‰๋  ๊ฑฐ์—์š”.


์œ„์™€ ๊ฐ™์ด ๋‚˜์˜จ๋‹ค๋ฉด WAN์„ ํ†ตํ•ด ์™ธ๋ถ€๋กœ ํ†ต์‹ ํ•˜๋Š” ๊ฒƒ์— ๋ฌธ์ œ๊ฐ€ ์žˆ์„ ์ˆ˜ ์žˆ์–ด์š”.

WAN ์„ค์ •์„ ๋‹ค์‹œ ํ•œ๋ฒˆ ํ™•์ธํ•ด ๋ณด์•„์•ผ ํ•ด์š”.



์ž๋™์œผ๋กœ Updates๋กœ ์ด๋™ํ•˜๊ฒŒ ๋˜๋ฉด ์œ„์™€ ๊ฐ™์ด ๋‚˜์˜ฌํ…๋ฐ, Update๋ฅผ ๋ˆŒ๋Ÿฌ Update๋ฅผ ์ง„ํ–‰ํ•ด ์ค„๊ฒŒ์š”.



Update๋ฅผ ํ•˜๋ฉด ์žฌ๋ถ€ํŒ…์ด ๋œ๋‹ค๊ณ  ํ•ด์š”.

OK๋ฅผ ๋ˆŒ๋Ÿฌ ์ง„ํ–‰ํ•ด ์ค„๊ฒŒ์š”.



Update๊ฐ€ ์™„๋ฃŒ๋˜๋ฉด ์œ„์™€ ๊ฐ™์ด ***DONE***์ด๋ผ๊ณ  ๋‚˜์˜ฌ๊ฑฐ์—์š”.

์ด์ œ Plugins Tab์œผ๋กœ ์ด๋™ํ• ๊ฒŒ์š”.


Update๊ฐ€ ์™„๋ฃŒ๋˜๋ฉด ์—ฌ๋Ÿฌ Plugin๋“ค์ด ๋ณด์ผํ…๋ฐ, ์œ„์™€ ๊ฐ™์ด os-wireguard๋ฅผ ๊ฒ€์ƒ‰ํ•ด์„œ ์„ค์น˜ํ•ด ์ค„๊ฑฐ์—์š”.
์ฃผ๋‹ˆ์“ฐ๋Š” ์ด๋ฏธ ์„ค์น˜๋ฅผ ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ์œ„์™€ ๊ฐ™์ด ๋‚˜์˜ค์ง€๋งŒ, ์šฐ์ธก์— + ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅด๋ฉด ์„ค์น˜ํ•  ์ˆ˜ ์žˆ์–ด์š”.

 

 

 

๋ธŒ๋ผ์šฐ์ €๋ฅผ ํ•œ๋ฒˆ ์ƒˆ๋กœ๊ณ ์นจํ•˜๋ฉด ์œ„์™€ ๊ฐ™์ด VPN Tab์— WireGaurd Tab์ด ์ƒ๊ธธ๊ฑฐ์—์š”.
์ตœ์ดˆ General Tab์—์„œ ์œ„์™€ ๊ฐ™์ด ์„ค์ •์„ ํ•ด ์ค„๊ฒŒ์š”.


๋‹ค์Œ์œผ๋กœ Local Tab์œผ๋กœ ์ด๋™ํ•ด์„œ + ๋ฒ„ํŠผ์„ ๋ˆŒ๋Ÿฌ์ค„๊ฒŒ์š”.

 

728x90


๊ทธ๋Ÿฐ ๋’ค ์œ„์™€ ๊ฐ™์ด VPN ์ด๋ฆ„์„ ์ ์–ด์ฃผ๊ณ ,
Listen Port๋Š” ์ผ๋‹จ ์ด ๊ณณ์—์„œ๋Š” 51820 (WireGuard ๊ธฐ๋ณธ Port)๋กœ ํ•ด ์ฃผ์—ˆ๋Š”๋ฐ, ๋ณด์•ˆ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์œผ๋‹ˆ
์ž„์˜์˜ ๊ฐ’์œผ๋กœ ๋ฐ”๊ฟ”์ฃผ๋Š” ๊ฒƒ์„ ์ถ”์ฒœํ•ด์š”.

๊ทธ๋Ÿฐ ๋’ค Tunnel Address์—๋Š” Wireguard VPN์ด ์—ฐ๊ฒฐ๋˜์—ˆ์„๋•Œ
Client๊ฐ€ ํ• ๋‹น๋ฐ›๋Š” IP ๋Œ€์—ญ์˜ Network ์ฃผ์†Œ ๋Œ€์—ญ์„ ๋„ฃ์–ด์ฃผ๋ฉด ๋ฉ๋‹ˆ๋‹ค.


๋‹ค๋ฅธ IP๋ž‘ ์ถฉ๋Œ๋‚˜์ง€ ์•Š๋„๋ก ๋‹ค๋ฅด๊ฒŒ ์„ค์ •๋งŒํ•ด์ฃผ์‹œ๋ฉด ๋œ๋‹ต๋‹ˆ๋‹ค.

์ด๋ ‡๊ฒŒ ์„ค์ •ํ•˜๊ณ , Save๋ฅผ ๋ˆŒ๋Ÿฌ ์ €์žฅ์„ ํ•ด ์ค„๊ฒŒ์š”.



๊ทธ๋ฆฌ๊ณ , ๋‹ค์‹œ ์—ฐํ•„ ๋ชจ์–‘์„ ๋ˆŒ๋Ÿฌ ํ•ด๋‹น Page๋ฅผ ์—ด์–ด์ฃผ๋ฉด Public Key์™€ Private Key๊ฐ€ ๋งŒ๋“ค์–ด์ง„ ๊ฑธ ๋ณผ ์ˆ˜ ์žˆ์–ด์š”.

Public Key๋Š” ์ถ”ํ›„ Client ์„ค์ • ์‹œ ํ•„์š”ํ•˜๋‹ˆ ๋”ฐ๋กœ ์ ์–ด์ฃผ๋Š” ๊ฒƒ์ด ์ข‹๊ฒ ์–ด์š”.

 

 

 

 

        ๐Ÿ“ฆ WireGuard Interface ์ถ”๊ฐ€

Interfaces -> Assignments

 


์œ„์˜ Page์— ๋“ค์–ด๊ฐ€๋ฉด WireGuard ์šฉ Interface wg1์ด ์ƒ๊ฒจ ์žˆ์„ ๊ฑฐ์—์š”.
Description์— ํ•ด๋‹น ์ธํ„ฐํŽ˜์ด์Šค์— ๊ฐ„๋žตํ•œ ์ •๋ณด๋ฅผ ์ ์–ด์ฃผ๊ณ , + ๋ฒ„ํŠผ์„ ๋ˆŒ๋Ÿฌ Import ํ•ด์ค€ ๋’ค Save๋ฅผ ๋ˆ„๋ฅด๊ณ , Apply ๋ˆŒ๋Ÿฌ ์ €์žฅํ•ด ์ค„๊ฒŒ์š”.

 

 

๊ทธ๋Ÿฐ ๋’ค ๋งŒ๋“ค์–ด์ง„ wg1 Inerface ์ด๋ฆ„์„ ํด๋ฆญํ•ด ์ค„๊ฒŒ์š”.

 

 

์œ„์™€ ๊ฐ™์ด Enable, Lock Check Box๋ฅผ ํ™œ์„ฑํ™” ํ•ด์ฃผ๊ณ , ์ €์žฅํ•ด ์ค๋‹ˆ๋‹ค.

 

 

 

 

        ๐Ÿ“ฆ ๋ฐฉํ™”๋ฒฝ ์ •์ฑ… ์ถ”๊ฐ€

์ด์ œ ๋ฐฉํ™”๋ฒฝ ์ •์ฑ…์„ ์ถ”๊ฐ€ํ•ด์„œ ์™ธ๋ถ€์—์„œ ๋“ค์–ด์˜ค๋Š” VPN ํ†ต์‹ ์„ ํ—ˆ์šฉํ•ด ์ค„๊ฒŒ์š”.

Firewall -> Rules -> WAN

 

์œ„์™€ ๊ฐ™์ด WAN Page์—์„œ + ๋ฒ„ํŠผ์„ ๋ˆŒ๋Ÿฌ์ค๋‹ˆ๋‹ค.



TCP/IP Version์€ IPv4๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ๋•Œ๋ฌธ์— IPv4๋ฅผ ์„ ํƒํ•ด ์ฃผ๊ณ ,
WireGuard๋Š” UDP Protocol์„ ์‚ฌ์šฉํ•˜๊ธฐ ๋•Œ๋ฌธ์— UDP๋ฅผ ์„ ํƒํ•ด ์ฃผ์–ด์•ผ ํ•ด์š”.

๋ฐ‘์— ๋‚ด๋ฆฌ๋ฉด Destination port range๊ฐ€ ์žˆ๋Š”๋ฐ, ์ถœ๋ฐœ์ง€(from) ์ฆ‰, Client๋Š” ์–ด๋–ค Port๋ฅผ ๋ฌผ๊ณ  ์˜ฌ์ง€ ๋ชจ๋ฅด๊ธฐ ๋•Œ๋ฌธ์— any๋ฅผ ์„ ํƒํ•˜๊ณ , ๋„์ฐฉ์ง€(to)๋Š” WireGuard ์šฉ์œผ๋กœ ์„ค์ •ํ•œ Port ๋ฒˆํ˜ธ๋ฅผ ์ž‘์„ฑํ•ด ์ค๋‹ˆ๋‹ค.

๊ทธ๋Ÿฐ ๋’ค Save๋ฅผ ๋ˆ„๋ฅด๊ณ  ๋‚˜๊ฐˆ๊ฒŒ์š”.

 

 

 

 

        ๐Ÿ“ฆ NAT ์ •์ฑ… ์ถ”๊ฐ€

Firewall -> Outbound

 


์œ„ Page์—์„œ ์œ„์™€ ๊ฐ™์ด Hybrid outbound Nat rule generation์„ ํ™œ์„ฑํ™” ํ•˜๊ณ , ์ €์žฅ ํ•ด ์ค„๊ฒŒ์š”.

๊ทธ๋Ÿผ ์ค‘๊ฐ„์— Manual rules๊ฐ€ ์ƒ๊ธฐ๋Š”๋ฐ, ์œ„์™€ ๊ฐ™์ด + ๋ฒ„ํŠผ์„ ๋ˆŒ๋Ÿฌ์ค„๊ฒŒ์š”.


๋ฐ˜์‘ํ˜•


๋‹ค๋ฅธ ๋ถ€๋ถ„์€ ๊ธฐ๋ณธ์œผ๋กœ ๋‘๊ณ , Source address ๋ถ€๋ถ„์— VPN ๋Œ€์—ญ์œผ๋กœ ๋ฌถ์ธ ์ด๋ฆ„์„ ์„ ํƒํ•ด ์ค๋‹ˆ๋‹ค.
๊ทธ๋ฆฌ๊ณ , ์ €์žฅ ํ•ด ์ค„๊ฒŒ์š”.


๋งŒ์•ฝ ์ถ”๊ฐ€ ์„ค์ •์ด ํ•„์š”ํ•˜๋‹ค๋ฉด Destination ๋ถ€๋ถ„๋งŒ ๊ฑด๋“œ๋ ค ์ฃผ๋ฉด ๋  ๊ฑฐ ๊ฐ™์•„์š”.

 



์—ฌ๊ธฐ๊นŒ์ง€ ํ•˜์˜€๋‹ค๋ฉด ์ผ๋‹จ์€ OPNsense์—์„œ WireGuard ์„ค์น˜ ๋ฐ ๊ตฌ์„ฑ์€ ์™„๋ฃŒ ํ•œ ๊ฒƒ์ด์—์š”.

๋‹ค์Œ์—๋Š” ์ด ๊ณณ์—์„œ Client ์—ฐ๊ฒฐ ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ์ •๋ฆฌํ•ด ๋ณด๋„๋ก ํ• ๊ฒŒ์š”.

 

[WireGuard] Client ์„ค์ •

๐Ÿš€ [WireGuard] Client ์„ค์ • ๐Ÿ”ฝ ๊ฐœ์š” ๐Ÿ“ฆ ์†Œ๊ฐœ ์˜ค๋Š˜์€ ์ง€๋‚œ๋ฒˆ์— ์„ค์น˜ํ•œ WireGuard๋ฅผ ํ†ตํ•ด Client๋“ค์ด ์—ฐ๊ฒฐ๋  ์ˆ˜ ์žˆ๋Š” ์„ค์ • ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๋ ค๊ณ  ํ•ด์š”. Mac OS์™€ Windows ๊ธฐ์ค€์œผ๋กœ ์ด์•ผ๊ธฐ ํ•ด ๋ณผ๊ฒŒ์š”. ๐Ÿ”ฝ WireG

junyharang.tistory.com

 

 

 

 

 

 

728x90
๋ฐ˜์‘ํ˜•