WireGuard VPN 설치

1. debian 13에서 wireguard 설치 및 확인
apt update
apt install wireguard qrencode -y
modprobe wireguard
lsmod | grep wireguard

2. 서버 및 클라이언트 키 생성
umask 077

wg genkey | tee /etc/wireguard/server_private.key | wg pubkey > /etc/wireguard/server_public.key
cat /etc/wireguard/server_private.key
cat /etc/wireguard/server_public.key

wg genkey | tee /etc/wireguard/client_private.key | wg pubkey > /etc/wireguard/client_public.key
cat /etc/wireguard/client_private.key
cat /etc/wireguard/client_public.key

3. 서버 설정파일 작성
vi /etc/wireguard/wg0.conf
-----
[Interface]
Address = 10.20.0.1/24
ListenPort = 51820
PrivateKey = <서버_PRIVATE_KEY>

PostUp = sysctl -w net.ipv4.ip_forward=1; iptables -t nat -A POSTROUTING -s 10.20.0.0/24 -o enp1s0 -j MASQUERADE
PostDown = iptables -t nat -D POSTROUTING -s 10.20.0.0/24 -o enp1s0 -j MASQUERADE

# 클라이언트 #1
[Peer]
PublicKey = <클라이언트#1_PUBLIC_KEY>
AllowedIPs = 10.20.0.2/32

# 클라이언트 #2
[Peer]
PublicKey = <클라이언트#2_PUBLIC_KEY>
AllowedIPs = 10.20.0.3/32
-----

4. 서버 시작 및 확인
systemctl enable wg-quick@wg0
systemctl restart wg-quick@wg0
systemctl status wg-quick@wg0
wg show : 상태 확인

5. 클라이언트 설정파일 작성
※클라이언트 설정 파일의 파일명은 인터페이스 명으로 사용되어 특수문자를 허용하지 않으므로 최대한 단순하게 작성한다.
vi /etc/wireguard/hasu0707wg.conf
-----
[Interface]
PrivateKey = <클라이언트#1_PRIVATE_KEY>
Address = 10.20.0.2/24
DNS = 8.8.8.8

[Peer]
PublicKey = <서버_PUBLIC_KEY>
Endpoint = wireguard.mydomain.com:51820
AllowedIPs = 192.168.1.0/24
PersistentKeepalive = 25
-----
위로 스크롤