๊ฐ„๋‹จํ•œ VPN ์„ค์ •ํ•˜๊ธฐ WireGuard ๊ทธ๋ฆฌ๊ณ  ๋ผ์ฆˆ๋ฒ ๋ฆฌ ํŒŒ์ด๋ฅผ ์„œ๋ฒ„๋กœ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

์ดํ›„ WireGuard ์ผ๋ถ€๊ฐ€ ๋  ๊ฒƒ์ด๋‹ค ๋ฏธ๋ž˜ ํ•ต์‹ฌ Linux 5.6 ๋ฒ„์ „์—์„œ ์ €๋Š” ์ด VPN์„ ์ œ ์‹œ์Šคํ…œ๊ณผ ๊ฐ€์žฅ ์ž˜ ํ†ตํ•ฉํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์•Œ์•„๋ณด๊ธฐ๋กœ ํ–ˆ์Šต๋‹ˆ๋‹ค. Raspberry Pi์˜ LTE ๋ผ์šฐํ„ฐ/์•ก์„ธ์Šค ํฌ์ธํŠธ.

ะžะฑะพั€ัƒะดะพะฒะฐะฝะธะต

  • LTE ๋ชจ๋“ˆ๊ณผ ๊ณต์šฉ IP ์ฃผ์†Œ๋ฅผ ๊ฐ–์ถ˜ Raspberry Pi 3. ์—ฌ๊ธฐ์— VPN ์„œ๋ฒ„๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค(์ดํ•˜ ํ…์ŠคํŠธ์—์„œ๋Š” ์ด๋ฅผ ํ˜ธ์ถœํ•จ). ์—ฃ์ง€์›Œ์ปค)
  • ์ „ํ™” Android๋ชจ๋“  ํ†ต์‹ ์— VPN์„ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  • ๋…ธํŠธ๋ถ Linux๋„คํŠธ์›Œํฌ ๋‚ด์—์„œ๋งŒ VPN์„ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

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

์œ ์„  ๋ฐ ๋ฌด์„  ์—ฐ๊ฒฐ์˜ ๋ณด์•ˆ์ด ์‹œ๊ฐ„์ด ์ง€๋‚จ์— ๋”ฐ๋ผ ์ ์  ๋” ์ทจ์•ฝํ•ด์ง€๊ณ  ์žˆ๋‹ค๋Š” ์ ์„ ๊ณ ๋ คํ•˜๋ฉด(ํ‘œ์  ๊ณต๊ฒฉ, KRACK WPA2 ํฌ๋ž˜ํ‚น ๊ณต๊ฒฉ ะธ WPA3์— ๋Œ€ํ•œ Dragonblood ๊ณต๊ฒฉ), ์ €๋Š” ์ง„์ง€ํ•˜๊ฒŒ ์‚ฌ์šฉ์„ ๊ณ ๋ คํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. 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 ์ €๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์„ค์น˜ํ–ˆ์Šต๋‹ˆ๋‹ค. WireGuard VPN ๊ณต์‹ 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.conf

QR ์ฝ”๋“œ๋Š” ASCII ํ˜•์‹์œผ๋กœ ์ฝ˜์†”์— ์ถœ๋ ฅ๋ฉ๋‹ˆ๋‹ค. ์•ฑ์—์„œ ์Šค์บ”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Android VPN์„ ์‚ฌ์šฉํ•˜๊ณ  VPN ํ„ฐ๋„์„ ์ž๋™์œผ๋กœ ๊ตฌ์„ฑํ•ฉ๋‹ˆ๋‹ค.

์ถœ๋ ฅ

์กฐ์ • WireGuard ๋น„๊ตํ•  ์ˆ˜ ์—†์„ ์ •๋„๋กœ ๋งˆ๋ฒ• ๊ฐ™๋‹ค OpenVPN.

์ถœ์ฒ˜ : habr.com

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