태그: , ,

WireGuard VPN 설정하기

1   서버 측 설정

# 서버의 키를 생성한다.
cd /etc/wireguard
wg genkey | tee <SERVER>.key | wg pubkey > <SERVER>.pub

# 서버의 설정파일을 생성한다.
cat<'EOT' > wg0.conf
[Interface]
PrivateKey = <SERVER_PRIVATE_KEY>
Address = 10.0.0.1/24
ListenPort = 51820

[Peer]
PublicKey = <CLIENT_PUBLIC_KEY>
AllowedIPs = 10.0.0.2/32,192.168.1.0/24
EOT

# WireGuard를 시작한다.
wg-quick up wg0
  • <SERVER_PRIVATE_KEY><SERVER>.key 파일에서, <CLIENT_PUBLIC_KEY>는 아래 <CLIENT>.pub 파일에서 복사한다.
  • Address = 10.0.0.1/24는 서버의 IP 주소를 10.0.0.1로 설정하고 10.0.0.x의 서브넷의 일부임을 선언한다.
  • AllowedIPs = 10.0.0.2/32,192.168.1.0/24는 클라이언트의 IP 주소가 정확히(/32) 10.0.0.2임을 설정하고 192.168.1.x 트래픽을 이 클라이언트로 라우팅함을 선언한다.

2   클라이언트 측 설정

# 클라이언트의 키를 생성한다.
cd /etc/wireguard
wg genkey | tee <CLIENT>.key | wg pubkey > <CLIENT>.pub

# 클라이언트의 설정파일을 생성한다.
cat<'EOT' > wg0.conf
[Interface]
Address = 10.0.0.2/24
PrivateKey = <CLIENT_PRIVATE_KEY>

[Peer]
PublicKey = <SERVER_PUBLIC_KEY>
Endpoint = <SERVER_PUBLIC_IP>:51820
AllowedIPs = 10.0.0.0/24
PersistentKeepalive = 25
EOT

# WireGuard를 시작한다.
wg-quick up wg0
  • <SERVER_PRIVATE_KEY><SERVER>.key 파일에서, <CLIENT_PUBLIC_KEY>는 아래 <CLIENT>.pub 파일에서 복사한다.
  • <CLIENT_PRIVATE_KEY><CLIENT>.key 파일에서, <SERVER_PUBLIC_KEY><SERVER>.pub 파일에서 복사한다.
  • Address = 10.0.0.2/24는 클라이언트의 IP 주소를 10.0.0.2로 설정하고 10.0.0.x의 서브넷의 일부임을 선언한다.
  • AllowedIPs = 10.0.0.0/2410.0.0.x 트래픽을 이 서버로 라우팅함을 선언한다. 단, 자신의 IP인 10.0.0.2의 트래픽은 WireGuard로 가지 않는다.
이 칸을 비워 두세요.