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

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

YS
김영삼
조회 526

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로 등록