TL; DR: VPS์ Wireguard๋ฅผ ์ค์นํ๊ณ OpenWRT์ ํ ๋ผ์ฐํฐ์์ ์ฐ๊ฒฐํ๊ณ ํด๋ํฐ์์ ํ ์๋ธ๋ท์ ์ก์ธ์คํฉ๋๋ค.
๊ฐ์ธ ์ธํ๋ผ๋ฅผ ํ ์๋ฒ์ ์ ์งํ๊ฑฐ๋ ์ง์ IP ์ ์ด ์ฅ์น๊ฐ ๋ง์ด ์๋ ๊ฒฝ์ฐ ์ง์ฅ, ๋ฒ์ค, ๊ธฐ์ฐจ, ์งํ์ฒ ์์ ํด๋น ์ธํ๋ผ์ ์ก์ธ์คํ๊ณ ์ถ์ ๊ฒ์ ๋๋ค. ๋๋ถ๋ถ ์ ์ฌํ ์์ ์ ์ํด ๊ณต๊ธ์๋ก๋ถํฐ IP๋ฅผ ๊ตฌ๋งคํ ํ ๊ฐ ์๋น์ค์ ํฌํธ๊ฐ ์ธ๋ถ๋ก ์ ๋ฌ๋ฉ๋๋ค.
๋์ , ์ง LAN์ ์ก์ธ์คํ ์ ์๋ VPN์ ์ค์ ํ์ต๋๋ค. ์ด ์๋ฃจ์ ์ ์ฅ์ :
- ํฌ๋ช ๋: ์ด๋ค ์ํฉ์์๋ ์ง์ฒ๋ผ ๋๊ปด์ง๋๋ค.
- ํธํจ: ์ค์ ํ๊ณ ์์ด๋ฒ๋ฆฌ์ธ์. ๊ฐ ํฌํธ๋ฅผ ํฌ์๋ฉํ๋ ๊ฒ์ ๋ํด ์๊ฐํ ํ์๊ฐ ์์ต๋๋ค.
- ๊ฐ๊ฒฉ: ์ด๋ฏธ VPS๋ฅผ ๋ณด์ ํ๊ณ ์๋๋ฐ, ์ด๋ฌํ ์์ ์ ์ํํ ๊ฒฝ์ฐ ์ต์ VPN์ ๋ฆฌ์์ค ์ธก๋ฉด์์ ๊ฑฐ์ ๋ฌด๋ฃ์ ๋๋ค.
- ะะตะทะพะฟะฐัะฝะพััั: ์๋ฌด๊ฒ๋ ๋์ ๋์ง ์์ต๋๋ค. ๋น๋ฐ๋ฒํธ ์์ด MongoDB๋ฅผ ๋ ๋ ์ ์์ผ๋ฉฐ ๋๊ตฌ๋ ๊ทํ์ ๋ฐ์ดํฐ๋ฅผ ํ์น ์ ์์ต๋๋ค.
์ธ์ ๋ ๊ทธ๋ ๋ฏ์ด ๋จ์ ๋ ์์ต๋๋ค. ๋จผ์ , ์๋ฒ ์ธก์ ํฌํจํ์ฌ ๊ฐ ํด๋ผ์ด์ธํธ๋ฅผ ๋ณ๋๋ก ๊ตฌ์ฑํด์ผ ํฉ๋๋ค. ์๋น์ค์ ์ก์ธ์คํ๋ ค๋ ์ฅ์น๊ฐ ๋ง์ผ๋ฉด ๋ถํธํ ์ ์์ต๋๋ค. ๋์งธ, ์ง์ฅ์ ๋์ผํ ๋ฒ์์ LAN์ด ์์ ์ ์์ต๋๋ค. ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํด์ผ ํฉ๋๋ค.
์ฐ๋ฆฌ๋ํด์ผํฉ๋๋ค :
- VPS(๋ด ๊ฒฝ์ฐ์๋ Debian 10).
- OpenWRT ๋ผ์ฐํฐ.
- ์ ํ ๋ฒํธ.
- ํ ์คํธ์ฉ ์น ์๋น์ค๊ฐ ํฌํจ๋ ํ ์๋ฒ์ ๋๋ค.
- ๊ณง์ ํ.
์ ๊ฐ ์ฌ์ฉํ VPN ๊ธฐ์ ์ Wireguard์
๋๋ค. ์ด ์๋ฃจ์
์๋ ์ฅ๋จ์ ์ด ์์ผ๋ฏ๋ก ์ด์ ๋ํด์๋ ์ค๋ช
ํ์ง ์๊ฒ ์ต๋๋ค. VPN์ ๊ฒฝ์ฐ ์๋ธ๋ท์ ์ฌ์ฉํฉ๋๋ค. 192.168.99.0/24
, ๊ทธ๋ฆฌ๊ณ ์ฐ๋ฆฌ ์ง์์ 192.168.0.0/24
.
VPS ๊ตฌ์ฑ
ํ ๋ฌ์ 30๋ฃจ๋ธ์ ๊ฐ์ฅ ๋น์ฐธํ VPS๋ผ๋ ์ด์ด ์ข์ผ๋ฉด ๋น์ฆ๋์ค์ ์ถฉ๋ถํฉ๋๋ค.
์ ๋ ๊นจ๋ํ ๋จธ์ ์์ ๋ฃจํธ๋ก ์๋ฒ์ ๋ชจ๋ ์์ ์ ์ํํฉ๋๋ค. ํ์ํ ๊ฒฝ์ฐ 'sudo'๋ฅผ ์ถ๊ฐํ๊ณ ์ง์นจ์ ์ ์ฉํฉ๋๋ค.
Wireguard๋ฅผ ๋ง๊ตฌ๊ฐ์ผ๋ก ๊ฐ์ ธ์ฌ ์๊ฐ์ด ์์๊ธฐ ๋๋ฌธ์ `apt edit-sources`๋ฅผ ์คํํ๊ณ ํ์ผ ๋์ ๋ ์ค์ ๋ฐฑํฌํธ๋ฅผ ์ถ๊ฐํฉ๋๋ค.
deb http://deb.debian.org/debian/ buster-backports main
# deb-src http://deb.debian.org/debian/ buster-backports main
ํจํค์ง๋ ์ผ๋ฐ์ ์ธ ๋ฐฉ๋ฒ์ผ๋ก ์ค์น๋ฉ๋๋ค. apt update && apt install wireguard
.
๋ค์์ผ๋ก ํค ์์ ์์ฑํฉ๋๋ค. wg genkey | tee /etc/wireguard/vps.private | wg pubkey | tee /etc/wireguard/vps.public
. ํ๋ก์ ์ฐธ์ฌํ๋ ๊ฐ ์ฅ์น์ ๋ํด ์ด ์์
์ ๋ ๋ฒ ๋ ๋ฐ๋ณตํฉ๋๋ค. ๋ค๋ฅธ ์ฅ์น์ ํค ํ์ผ ๊ฒฝ๋ก๋ฅผ ๋ณ๊ฒฝํ๊ณ ๊ฐ์ธ ํค์ ๋ณด์์ ์์ง ๋ง์ญ์์ค.
์ด์ ๊ตฌ์ฑ์ ์ค๋นํฉ๋๋ค. ํ์ผ๋ก /etc/wireguard/wg0.conf
๊ตฌ์ฑ์ด ๋ฐฐ์น๋์์ต๋๋ค:
[Interface]
Address = 192.168.99.1/24
ListenPort = 57953
PrivateKey = 0JxJPUHz879NenyujROVK0YTzfpmzNtbXmFwItRKdHs=
[Peer] # OpenWRT
PublicKey = 36MMksSoKVsPYv9eyWUKPGMkEs3HS+8yIUqMV8F+JGw=
AllowedIPs = 192.168.99.2/32,192.168.0.0/24
[Peer] # Smartphone
PublicKey = /vMiDxeUHqs40BbMfusB6fZhd+i5CIPHnfirr5m3TTI=
AllowedIPs = 192.168.99.3/32
์น์
์์ [Interface]
๊ธฐ๊ณ ์์ฒด์ ์ค์ ์ด ํ์๋๋ฉฐ [Peer]
โ ์ฐ๊ฒฐํ ์ฌ๋๋ค์ ์ํ ์ค์ ์
๋๋ค. ์์ AllowedIPs
์ผํ๋ก ๊ตฌ๋ถ๋์ด ํด๋น ํผ์ด๋ก ๋ผ์ฐํ
๋ ์๋ธ๋ท์ด ์ง์ ๋ฉ๋๋ค. ์ด๋ก ์ธํด VPN ์๋ธ๋ท์ ์๋ "ํด๋ผ์ด์ธํธ" ์ฅ์น์ ํผ์ด์๋ ๋ง์คํฌ๊ฐ ์์ด์ผ ํฉ๋๋ค. /32
, ๋ค๋ฅธ ๋ชจ๋ ๊ฒ์ ์๋ฒ์ ์ํด ๋ผ์ฐํ
๋ฉ๋๋ค. ํ ๋คํธ์ํฌ๋ OpenWRT๋ฅผ ํตํด ๋ผ์ฐํ
๋๋ฏ๋ก AllowedIPs
ํด๋น ํผ์ด์ ํ ์๋ธ๋ท์ ์ถ๊ฐํฉ๋๋ค. ์์ PrivateKey
ะธ PublicKey
VPS์ ๋ํด ์์ฑ๋ ๊ฐ์ธ ํค์ ์ด์ ๋ฐ๋ผ ํผ์ด์ ๊ณต๊ฐ ํค๋ฅผ ๋ถํดํฉ๋๋ค.
VPS์์ ๋จ์ ๊ฒ์ ์ธํฐํ์ด์ค๋ฅผ ๋ถ๋ฌ์ค๊ณ ์ด๋ฅผ ์๋ ์คํ์ ์ถ๊ฐํ๋ ๋ช
๋ น์ ์คํํ๋ ๊ฒ์
๋๋ค. systemctl enable --now wg-quick@wg0
. ํ์ฌ ์ฐ๊ฒฐ ์ํ๋ ๋ค์ ๋ช
๋ น์ผ๋ก ํ์ธํ ์ ์์ต๋๋ค. wg
.
OpenWRT ๊ตฌ์ฑ
์ด ๋จ๊ณ์ ํ์ํ ๋ชจ๋ ๊ฒ์ luci ๋ชจ๋(OpenWRT ์น ์ธํฐํ์ด์ค)์ ์์ต๋๋ค. ๋ก๊ทธ์ธํ๊ณ ์์คํ
๋ฉ๋ด์์ ์ํํธ์จ์ด ํญ์ ์ฝ๋๋ค. OpenWRT๋ ์์คํ
์ ์บ์๋ฅผ ์ ์ฅํ์ง ์์ผ๋ฏ๋ก ๋
น์ ๋ชฉ๋ก ์
๋ฐ์ดํธ ๋ฒํผ์ ํด๋ฆญํ์ฌ ์ฌ์ฉ ๊ฐ๋ฅํ ํจํค์ง ๋ชฉ๋ก์ ์
๋ฐ์ดํธํด์ผ ํฉ๋๋ค. ์๋ฃ ํ ํํฐ๋ก ์ด์ luci-app-wireguard
๊ทธ๋ฆฌ๊ณ ์๋ฆ๋ค์ด ์ข
์์ฑ ํธ๋ฆฌ๊ฐ ์๋ ์ฐฝ์ ๋ณด๋ฉด์ ์ด ํจํค์ง๋ฅผ ์ค์นํ์ธ์.
๋คํธ์ํฌ ๋ฉ๋ด์์ ์ธํฐํ์ด์ค๋ฅผ ์ ํํ๊ณ ๊ธฐ์กด ์ธํฐํ์ด์ค ๋ชฉ๋ก ์๋์ ์๋ ๋
น์ ์ ์ธํฐํ์ด์ค ์ถ๊ฐ ๋ฒํผ์ ํด๋ฆญํฉ๋๋ค. ์ด๋ฆ์ ์
๋ ฅํ ํ(๋ํ wg0
์ ๊ฒฝ์ฐ์๋) WireGuard VPN ํ๋กํ ์ฝ์ ์ ํํ๋ฉด XNUMX๊ฐ์ ํญ์ด ์๋ ์ค์ ์์์ด ์ด๋ฆฝ๋๋ค.
์ผ๋ฐ ์ค์ ํญ์์ ์๋ธ๋ท๊ณผ ํจ๊ป OpenWRT์ฉ์ผ๋ก ์ค๋นํ ๊ฐ์ธ ํค์ IP ์ฃผ์๋ฅผ ์ ๋ ฅํด์ผ ํฉ๋๋ค.
๋ฐฉํ๋ฒฝ ์ค์ ํญ์์ ์ธํฐํ์ด์ค๋ฅผ ๋ก์ปฌ ๋คํธ์ํฌ์ ์ฐ๊ฒฐํฉ๋๋ค. ์ด๋ ๊ฒ ํ๋ฉด VPN์ ์ฐ๊ฒฐ์ด ๋ก์ปฌ ์์ญ์ผ๋ก ์์ ๋กญ๊ฒ ๋ค์ด๊ฐ๋๋ค.
ํผ์ด ํญ์์ ์ ์ผํ ๋ฒํผ์ ํด๋ฆญํ ํ ์ ๋ฐ์ดํธ๋ ํ์์ธ ๊ณต๊ฐ ํค, ํ์ฉ๋ IP(์ ์ฒด VPN ์๋ธ๋ท์ ์๋ฒ๋ก ๋ผ์ฐํ ํด์ผ ํจ)๋ก VPS ์๋ฒ ๋ฐ์ดํฐ๋ฅผ ์ ๋ ฅํฉ๋๋ค. ์๋ํฌ์ธํธ ํธ์คํธ ๋ฐ ์๋ํฌ์ธํธ ํฌํธ์ ์ด์ ์ ListenPort ์ง์๋ฌธ์ ์ง์ ๋ ํฌํธ๋ฅผ ์ฌ์ฉํ์ฌ ๊ฐ๊ฐ VPS์ IP ์ฃผ์๋ฅผ ์ ๋ ฅํฉ๋๋ค. ์์ฑํ ๊ฒฝ๋ก์ ๋ํด Route Allowed IP๋ฅผ ํ์ธํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ์๊ตฌ ์ฐ๊ฒฐ ์ ์ง๋ฅผ ๋ฐ๋์ ์ ๋ ฅํ์ญ์์ค. ๊ทธ๋ ์ง ์์ผ๋ฉด VPS์์ ๋ผ์ฐํฐ๋ก์ ํฐ๋์ด NAT ๋ค์ ์๋ ๊ฒฝ์ฐ ์์๋ฉ๋๋ค.
๊ทธ๋ฐ ๋ค์ ์ค์ ์ ์ ์ฅํ ๋ค์ ์ธํฐํ์ด์ค ๋ชฉ๋ก์ด ์๋ ํ์ด์ง์์ ์ ์ฅ ๋ฐ ์ ์ฉ์ ํด๋ฆญํฉ๋๋ค. ํ์ํ ๊ฒฝ์ฐ ๋ค์ ์์ ๋ฒํผ์ ์ฌ์ฉํ์ฌ ์ธํฐํ์ด์ค๋ฅผ ๋ช ์์ ์ผ๋ก ์์ํฉ๋๋ค.
์ค๋งํธํฐ ์ค์
Wireguard ํด๋ผ์ด์ธํธ๊ฐ ํ์ํ๋ฉฐ ๋ค์์์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
ํด๋ํฐ์ ๊ตต์ ์คํฌ๋ฆฐ์ท
๋ชจ์๋ฆฌ์ ์๋ ํ๋กํผ ๋์คํฌ๋ฅผ ํด๋ฆญํ๊ณ ์ ์์ ์ผ๋ฉด...
๋
์ด์ ํ ๋ชจ๋ํฐ๋ง์ ์ก์ธ์คํ๊ณ , ๋ผ์ฐํฐ ์ค์ ์ ๋ณ๊ฒฝํ๊ฑฐ๋ IP ์์ค์์ ๋ชจ๋ ์์ ์ ์ํํ ์ ์์ต๋๋ค.
ํ์ง ์คํฌ๋ฆฐ์ท
์ถ์ฒ : habr.com