본문 바로가기
Infra2025년 9월 5일5분 읽기

WireGuard VPN 서버 구축 — 5분 만에 완료

YS
김영삼
조회 551
WireGuard VPN 서버 구축 — 5분 만에 완료

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 장점

항목WireGuardOpenVPN
코드 크기~4,000줄~100,000줄
암호화ChaCha20, Curve25519OpenSSL 기반 선택
성능커널 공간 실행유저 공간 실행
연결 속도즉시수 초
설정 복잡도매우 낮음높음
  • WireGuard는 UDP만 사용하므로 TCP 기반 방화벽 뒤에서는 제한될 수 있습니다
  • AllowedIPs로 Split Tunnel과 Full Tunnel을 쉽게 전환할 수 있습니다
  • PersistentKeepalive는 NAT 뒤 클라이언트에서 연결 유지에 필요합니다
  • wg-easy 같은 웹 UI를 사용하면 관리가 더 편리합니다

WireGuard는 VPN 구축의 복잡성을 획기적으로 낮추면서도 보안과 성능을 모두 잡은 솔루션입니다. 홈 서버나 소규모 팀에서 즉시 활용할 수 있습니다.

댓글 0

아직 댓글이 없습니다.
Ctrl+Enter로 등록