WireGuard란
WireGuard는 최신 암호화 기술을 사용하는 경량 VPN 프로토콜로, OpenVPN이나 IPsec 대비 코드베이스가 극도로 작고(약 4,000줄), 설정이 간단하며 성능이 뛰어납니다. Linux 커널 5.6부터 기본 내장되어 있습니다.
서버 설치 및 키 생성
# Ubuntu/Debian 설치
sudo apt update && sudo apt install wireguard -y
# 키 쌍 생성
cd /etc/wireguard
umask 077
wg genkey | tee server_private.key | wg pubkey > server_public.key
# 클라이언트 키 생성
wg genkey | tee client1_private.key | wg pubkey > client1_public.key
# Pre-shared key (추가 보안 레이어)
wg genpsk > client1_psk.key
서버 설정 파일
# /etc/wireguard/wg0.conf
[Interface]
Address = 10.0.0.1/24
ListenPort = 51820
PrivateKey = SERVER_PRIVATE_KEY_HERE
# IP 포워딩 및 NAT
PostUp = iptables -A FORWARD -i wg0 -j ACCEPT; \
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; \
iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE
[Peer]
PublicKey = CLIENT1_PUBLIC_KEY_HERE
PresharedKey = CLIENT1_PSK_HERE
AllowedIPs = 10.0.0.2/32
시스템 설정
# IP 포워딩 활성화
echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf
echo "net.ipv6.conf.all.forwarding = 1" >> /etc/sysctl.conf
sysctl -p
# 방화벽 포트 개방
ufw allow 51820/udp
# WireGuard 인터페이스 시작
wg-quick up wg0
# 부팅 시 자동 시작
systemctl enable wg-quick@wg0
# 상태 확인
wg show
클라이언트 설정
# 클라이언트 설정 파일
[Interface]
PrivateKey = CLIENT1_PRIVATE_KEY_HERE
Address = 10.0.0.2/24
DNS = 1.1.1.1, 8.8.8.8
[Peer]
PublicKey = SERVER_PUBLIC_KEY_HERE
PresharedKey = CLIENT1_PSK_HERE
Endpoint = your-server-ip:51820
AllowedIPs = 0.0.0.0/0 # 모든 트래픽 VPN 경유
PersistentKeepalive = 25
QR 코드로 모바일 설정
# qrencode 설치
sudo apt install qrencode -y
# 클라이언트 설정을 QR 코드로 변환
qrencode -t ansiutf8 < client1.conf
# 또는 PNG 파일로 저장
qrencode -t png -o client1-qr.png < client1.conf
OpenVPN 대비 WireGuard 장점
| 항목 | WireGuard | OpenVPN |
|---|---|---|
| 코드 크기 | ~4,000줄 | ~100,000줄 |
| 암호화 | ChaCha20, Curve25519 | OpenSSL 기반 선택 |
| 성능 | 커널 공간 실행 | 유저 공간 실행 |
| 연결 속도 | 즉시 | 수 초 |
| 설정 복잡도 | 매우 낮음 | 높음 |
- WireGuard는 UDP만 사용하므로 TCP 기반 방화벽 뒤에서는 제한될 수 있습니다
- AllowedIPs로 Split Tunnel과 Full Tunnel을 쉽게 전환할 수 있습니다
- PersistentKeepalive는 NAT 뒤 클라이언트에서 연결 유지에 필요합니다
- wg-easy 같은 웹 UI를 사용하면 관리가 더 편리합니다
WireGuard는 VPN 구축의 복잡성을 획기적으로 낮추면서도 보안과 성능을 모두 잡은 솔루션입니다. 홈 서버나 소규모 팀에서 즉시 활용할 수 있습니다.
댓글 0