์ดํ WireGuard ๋ฏธ๋ ํต์ฌ Linux 5.6 ๋ฒ์ ์์ ์ ๋ ์ด VPN์ ์ ์์คํ ๊ณผ ๊ฐ์ฅ ์ ํตํฉํ๋ ๋ฐฉ๋ฒ์ ์์๋ณด๊ธฐ๋ก ํ์ต๋๋ค. .
ะะฑะพััะดะพะฒะฐะฝะธะต
- LTE ๋ชจ๋๊ณผ ๊ณต์ฉ IP ์ฃผ์๋ฅผ ๊ฐ์ถ Raspberry Pi 3. ์ฌ๊ธฐ์ VPN ์๋ฒ๊ฐ ์์ต๋๋ค(์ดํ ํ ์คํธ์์๋ ์ด๋ฅผ ํธ์ถํจ). ์ฃ์ง์์ปค)
- ์ ํ Android๋ชจ๋ ํต์ ์ VPN์ ์ฌ์ฉํด์ผ ํฉ๋๋ค.
- ๋ ธํธ๋ถ Linux๋คํธ์ํฌ ๋ด์์๋ง VPN์ ์ฌ์ฉํด์ผ ํฉ๋๋ค.
VPN์ ์ฐ๊ฒฐ๋๋ ๋ชจ๋ ์ฅ์น๋ ๋ค๋ฅธ ๋ชจ๋ ์ฅ์น์ ์ฐ๊ฒฐํ ์ ์์ด์ผ ํฉ๋๋ค. ์๋ฅผ ๋ค์ด, ๋ ์ฅ์น๊ฐ ๋ชจ๋ VPN ๋คํธ์ํฌ์ ์ผ๋ถ์ธ ๊ฒฝ์ฐ ์ ํ๊ธฐ๋ ๋
ธํธ๋ถ์ ์น ์๋ฒ์ ์ฐ๊ฒฐํ ์ ์์ด์ผ ํฉ๋๋ค. ์ค์ ์ด ๋งค์ฐ ๊ฐ๋จํ๋ค๋ฉด (์ด๋๋ท์ ํตํด) ๋ฐ์คํฌํฑ์ VPN์ ์ฐ๊ฒฐํ๋ ๊ฒ์ ๊ณ ๋ คํด ๋ณผ ์ ์์ต๋๋ค.
์ ์ ๋ฐ ๋ฌด์ ์ฐ๊ฒฐ์ ๋ณด์์ด ์๊ฐ์ด ์ง๋จ์ ๋ฐ๋ผ ์ ์ ๋ ์ทจ์ฝํด์ง๊ณ ์๋ค๋ ์ ์ ๊ณ ๋ คํ๋ฉด(, ะธ ), ์ ๋ ์ง์งํ๊ฒ ์ฌ์ฉ์ ๊ณ ๋ คํ๊ณ ์์ต๋๋ค. WireGuard ๋ด ๋ชจ๋ ๊ธฐ๊ธฐ์์, ์ด๋ค ํ๊ฒฝ์์ ์คํ๋๋ ์๊ด์์ด.
์ํํธ์จ์ด ์ค์น
WireGuard ์ ๊ณต ๋๋ถ๋ถ์ ๋ฐฐํฌํ์ ๊ฒฝ์ฐ Linux, Windows ะธ macOS์ง์์ Android iOS ์ฑ์ ์ฑ ์คํ ์ด๋ฅผ ํตํด ๋ฐฐํฌ๋ฉ๋๋ค.
์ ๋ ์ต์ Fedora๋ฅผ ์ฌ์ฉํ๊ณ ์์ต๋๋ค. Linux 31๋ฒ์ด๊ณ , ์ค์นํ๊ธฐ ์ ์ ์ค๋ช
์๋ฅผ ์ฝ๊ธฐ ๊ท์ฐฎ์์ ๊ทธ๋ฅ ํจํค์ง๋ค์ ์ฐพ์์ด์. wireguard-tools, ์ค์นํ์ง๋ง ์ ์๋ฌด๊ฒ๋ ์๋ํ์ง ์๋์ง ์ ์ ์์์ต๋๋ค. ์ถ๊ฐ ์กฐ์ฌ ๊ฒฐ๊ณผ ํจํค์ง๊ฐ ์ค์น๋์ด ์์ง ์์ ๊ฒ์ผ๋ก ๋ํ๋ฌ์ต๋๋ค. wireguard-dkms (๋คํธ์ํฌ ๋๋ผ์ด๋ฒ ์ฌ์ฉ) ํ์ง๋ง ๋ด ๋ฐฐํฌ ์ ์ฅ์์๋ ์์์ต๋๋ค.
์ง์นจ์ ์ฝ์๋ค๋ฉด ์ฌ๋ฐ๋ฅธ ์กฐ์น๋ฅผ ์ทจํ์ ๊ฒ์ ๋๋ค.
$ sudo dnf copr enable jdoss/wireguard
$ sudo dnf install wireguard-dkms wireguard-tools ๋ด Raspberry Pi์ Raspbian Buster ๋ฐฐํฌํ์ด ์ค์น๋์ด ์๋๋ฐ ์ด๋ฏธ ํจํค์ง๊ฐ ์์ต๋๋ค. wireguard, ์ค์น:
$ sudo apt install wireguard์ ํ๋ก Android ์ ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ค์นํ์ต๋๋ค. ๊ณต์ Google App Store ์นดํ๋ก๊ทธ์์.
ํค ์ค์น
๋ ธ๋๋ฅผ ์ธ์ฆํ๊ธฐ ์ํด Wireguard VPN ๋ ธ๋ ์ธ์ฆ์๋ ๊ฐ๋จํ ๊ฐ์ธ/๊ณต๊ฐ ํค ์ฒด๊ณ๋ฅผ ์ฌ์ฉํฉ๋๋ค. ๋ค์ ๋ช ๋ น์ด๋ฅผ ์ฌ์ฉํ์ฌ VPN ํค๋ฅผ ์ฝ๊ฒ ์์ฑํ ์ ์์ต๋๋ค.
$ wg genkey | tee wg-laptop-private.key | wg pubkey > wg-laptop-public.key
$ wg genkey | tee wg-server-private.key | wg pubkey > wg-server-public.key
$ wg genkey | tee wg-mobile-private.key | wg pubkey > wg-mobile-public.key๊ทธ๋ฌ๋ฉด ์ธ ๊ฐ์ ํค ์(64๊ฐ ํ์ผ)์ด ์ ๊ณต๋ฉ๋๋ค. ๊ตฌ์ฑ์ ํ์ผ์ ์ฐธ์กฐํ์ง ์๊ณ ์ฌ๊ธฐ์ ๋ด์ฉ์ ๋ณต์ฌํฉ๋๋ค. ๊ฐ ํค๋ baseXNUMX์์ ํ ์ค์ ๋๋ค.
VPN ์๋ฒ์ฉ ๊ตฌ์ฑ ํ์ผ ์์ฑ(Raspberry Pi)
๊ตฌ์ฑ์ ๋งค์ฐ ๊ฐ๋จํฉ๋๋ค. ๋ค์ ํ์ผ์ ๋ง๋ค์์ต๋๋ค. /etc/wireguard/wg0.conf:
[Interface]
Address = 10.200.200.1/24
ListenPort = 51820
PrivateKey = <copy private key from wg-server-private.key>
PostUp = iptables -A FORWARD -i %i -j ACCEPT; iptables -t nat -A POSTROUTING -o wwan0 -j MASQUERADE
PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -t nat -D POSTROUTING -o wwan0 -j MASQUERADE
[Peer]
# laptop
PublicKey = <copy public key from wg-laptop-public.key>
AllowedIPs = 10.200.200.2/32
[Peer]
# mobile phone
PublicKey = <copy public key from wg-mobile-public.key>
AllowedIPs = 10.200.200.3/32๋ช ๊ฐ์ง ์ฐธ๊ณ ์ฌํญ:
- ์ ์ ํ ์์น์ ํค๊ฐ ์๋ ํ์ผ์ ์ค์ ์ฝ์ ํด์ผ ํฉ๋๋ค.
- ๋ด VPN์ด ๋ด๋ถ ๋ฐด๋๋ฅผ ์ฌ์ฉํ๊ณ ์์ต๋๋ค.
10.200.200.0/24 - ํ์ฉ
PostUp/PostDown์ธ๋ถ ๋คํธ์ํฌ ์ธํฐํ์ด์ค wwan0์ด ์๋๋ฐ ๋ค๋ฅธ ์ธํฐํ์ด์ค(์: eth0)๊ฐ ์์ ์๋ ์์ต๋๋ค.
VPN ๋คํธ์ํฌ๋ ๋ค์ ๋ช ๋ น์ ์ฌ์ฉํ์ฌ ์ฝ๊ฒ ์์ฑ๋ฉ๋๋ค.
$ sudo wg-quick up wg0 ํ ๊ฐ์ง ์์ ์ธ๋ถ ์ฌํญ: ๋ด๊ฐ ์ฌ์ฉํ DNS ์๋ฒ๋ก dnsmasq ๋คํธ์ํฌ ์ธํฐํ์ด์ค์ ์ฐ๊ฒฐ๋จ br0, ์ฅ์น๋ ์ถ๊ฐํ์ต๋๋ค wg0 ํ์ฉ๋ ์ฅ์น ๋ชฉ๋ก์ผ๋ก ์ด๋ํฉ๋๋ค. dnsmasq์์๋ ๊ตฌ์ฑ ํ์ผ์ ์ ๋คํธ์ํฌ ์ธํฐํ์ด์ค ์ค์ ์ถ๊ฐํ์ฌ ์ด๋ฅผ ์ํํฉ๋๋ค. /etc/dnsmasq.conf์ :
interface=br0
interface=wg0๋ํ UDP ์์ ํฌํธ(51280)์ ๋ํ ํธ๋ํฝ์ ํ์ฉํ๋ iptable ๊ท์น์ ์ถ๊ฐํ์ต๋๋ค.
$ sudo iptables -I INPUT -p udp --dport 51820 -j ACCEPT์ด์ ๋ชจ๋ ๊ฒ์ด ์๋ํ๋ฏ๋ก VPN ํฐ๋์ ์๋ ์์์ ์ค์ ํ ์ ์์ต๋๋ค.
$ sudo systemctl enable wg-quick@wg0.service๋ ธํธ๋ถ์ ํด๋ผ์ด์ธํธ ๊ตฌ์ฑ
๋
ธํธ๋ถ์์ ๊ตฌ์ฑ ํ์ผ ๋ง๋ค๊ธฐ /etc/wireguard/wg0.conf ๋์ผํ ์ค์ ์ผ๋ก:
[Interface]
Address = 10.200.200.2/24
PrivateKey = <copy private key from wg-laptop-private.key>
[Peer]
PublicKey = <copy public key from wg-server-public.key>
AllowedIPs = 10.200.200.0/24
Endpoint = edgewalker:51820์ฐธ๊ณ ์ฌํญ :
- Edgewalker ๋์ ๊ณต์ฉ IP ๋๋ VPN ์๋ฒ ํธ์คํธ๋ฅผ ์ง์ ํด์ผ ํฉ๋๋ค.
- ์ค์ ํ์ฌ
AllowedIPs์10.200.200.0/24, ์ฐ๋ฆฌ๋ VPN์ ์ฌ์ฉํ์ฌ ๋ด๋ถ ๋คํธ์ํฌ์ ์ก์ธ์คํฉ๋๋ค. ๋ค๋ฅธ ๋ชจ๋ IP ์ฃผ์/์๋ฒ์ ๋ํ ํธ๋ํฝ์ ๊ณ์ํด์ "์ผ๋ฐ" ๊ณต๊ฐ ์ฑ๋์ ํต๊ณผํฉ๋๋ค. ๋ํ ๋ ธํธ๋ถ์ ๋ฏธ๋ฆฌ ๊ตฌ์ฑ๋ DNS ์๋ฒ๋ฅผ ์ฌ์ฉํฉ๋๋ค.
ํ
์คํธ ๋ฐ ์๋ ์คํ์ ์ํด ๋์ผํ ๋ช
๋ น์ ์ฌ์ฉํฉ๋๋ค. wg-quick ะธ systemd:
$ sudo wg-quick up wg0
$ sudo systemctl enable wg-quick@wg0.serviceํด๋ผ์ด์ธํธ ์ค์ Android-ํธ๋ํฐ
์ ํ Android ์ฐ๋ฆฌ๋ ์ด์ ๋งค์ฐ ์ ์ฌํ ์ค์ ํ์ผ(๊ฐ์นญ)์ ์์ฑํฉ๋๋ค. mobile.conf):
[Interface]
Address = 10.200.200.3/24
PrivateKey = <copy private key from wg-mobile-private.key>
DNS = 10.200.200.1
[Peer]
PublicKey = <copy public key from wg-server-public.key>
AllowedIPs = 0.0.0.0/0
Endpoint = edgewalker:51820 ๋
ธํธ๋ถ์ ๊ตฌ์ฑ๊ณผ ๋ฌ๋ฆฌ ์ ํ๊ธฐ๋ VPN ์๋ฒ๋ฅผ DNS ์๋ฒ๋ก ์ฌ์ฉํด์ผ ํฉ๋๋ค(๋ผ์ธ DNS), VPN ํฐ๋(AllowedIPs = 0.0.0.0/0).
ํ์ผ์ ๋ชจ๋ฐ์ผ ์ฅ์น์ ๋ณต์ฌํ๋ ๋์ QR ์ฝ๋๋ก ๋ณํํ ์ ์์ต๋๋ค.
$ sudo apt install qrencode
$ qrencode -t ansiutf8 < mobile.confQR ์ฝ๋๋ ASCII ํ์์ผ๋ก ์ฝ์์ ์ถ๋ ฅ๋ฉ๋๋ค. ์ฑ์์ ์ค์บํ ์ ์์ต๋๋ค. Android VPN์ ์ฌ์ฉํ๊ณ VPN ํฐ๋์ ์๋์ผ๋ก ๊ตฌ์ฑํฉ๋๋ค.
์ถ๋ ฅ
์กฐ์ WireGuard ๋น๊ตํ ์ ์์ ์ ๋๋ก ๋ง๋ฒ ๊ฐ๋ค OpenVPN.
์ถ์ฒ : habr.com
