우분투 22.04 WireGuard 설치 및 설정
우분투 22.04에서 WireGuard를 설치하고 네트워크 구성, 키 생성, 방화벽 설정, wg-quick 우분투 설정까지 초보자도 따라할 수 있는 단계별 실무 설치 절차
목차
개요
이 문서는 우분투 22.04 환경에서 WireGuard를 설치하고 기본적인 VPN 서버와 클라이언트를 구성하는 방법을 다룬다. 초보자도 이해할 수 있도록 설치 명령, 키 생성, 서버 설정, 방화벽 규칙, 클라이언트 설정, 연결 확인까지 순서대로 설명한다. 검색어 우분투 WireGuard 설치와 Ubuntu 22.04 WireGuard 설정, wg-quick 우분투 설정을 자연스럽게 반영했다.
사전 준비
다음 사항을 확인한다.
- 우분투 22.04 서버 권한(root 또는 sudo 권한)
- 공인 IP 또는 포트 포워딩 가능한 라우터
- 기본 네트워크 이해
WireGuard 설치
WireGuard는 커널 모듈과 사용자 공간 도구로 구성된다. 우분투 공식 저장소에서 설치한다.
명령
sudo apt update
sudo apt install wireguard wireguard-tools -y
키 생성
각 노드는 비대칭 키 쌍을 필요로 한다. 서버와 클라이언트에서 각각 생성한다.
서버에서
umask 077
wg genkey | tee /etc/wireguard/server_private.key | wg pubkey > /etc/wireguard/server_public.key
클라이언트에서
umask 077
wg genkey | tee client_private.key | wg pubkey > client_public.key
서버 설정 (wg0)
/etc/wireguard/wg0.conf 파일을 생성한다. 예시는 UDP 포트 51820을 사용한다.
[Interface]
Address = 10.0.0.1/24
SaveConfig = true
ListenPort = 51820
PrivateKey = <서버 개인키 내용>
# 클라이언트 추가 예시
[Peer]
PublicKey = <클라이언트 공개키>
AllowedIPs = 10.0.0.2/32
위 파일에서 <서버 개인키 내용>은 /etc/wireguard/server_private.key 파일의 값을 붙여넣는다. AllowedIPs는 클라이언트에게 할당할 사설 IP를 의미한다.
IP 포워딩 및 NAT 설정
서버가 인터넷 트래픽을 전달하려면 IP 포워딩을 활성화하고 NAT 규칙을 설정한다.
영구적으로 IP 포워딩 활성화
sudo sysctl -w net.ipv4.ip_forward=1
echo 'net.ipv4.ip_forward=1' | sudo tee -a /etc/sysctl.conf
iptables로 NAT 설정
sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
sudo apt install iptables-persistent -y
sudo netfilter-persistent save
네트워크 인터페이스 이름(예: eth0)을 실제 환경에 맞게 변경한다.
방화벽(UFW) 설정
UFW를 사용하는 경우 WireGuard 포트를 허용한다.
sudo ufw allow 51820/udp
sudo ufw reload
wg-quick 우분투 설정 및 서비스 관리
wg-quick을 사용하면 간단하게 인터페이스를 올리고 내릴 수 있다. 서비스로 등록하여 부팅 시 자동으로 시작하게 할 수 있다.
sudo systemctl enable wg-quick@wg0
sudo systemctl start wg-quick@wg0
sudo systemctl status wg-quick@wg0
클라이언트 설정
클라이언트 구성 파일 예시는 아래와 같다. 클라이언트 파일은 모바일이나 다른 리눅스 머신에서 사용한다.
[Interface]
Address = 10.0.0.2/32
PrivateKey = <클라이언트 개인키>
DNS = 1.1.1.1
[Peer]
PublicKey = <서버 공개키>
Endpoint = your.server.ip:51820
AllowedIPs = 0.0.0.0/0, ::/0
PersistentKeepalive = 25
AllowedIPs를 0.0.0.0/0로 설정하면 모든 트래픽이 VPN을 통해 전달된다. 특정 서브넷만 라우팅하려면 해당 서브넷만 지정한다.
연결 확인 및 진단
- 인터페이스 상태 확인: sudo wg
- 네트워크 라우팅 확인: ip a, ip route
- 로그 확인: sudo journalctl -u wg-quick@wg0
sudo wg show
ip addr show wg0
문제 해결 팁
- 포트가 방화벽에서 차단되지 않았는지 확인한다.
- 서버와 클라이언트의 키가 올바르게 매칭되는지 확인한다.
- Endpoint의 IP와 포트가 정확한지 검토한다.
- NAT와 IP 포워딩 설정이 제대로 적용되어 있는지 점검한다.
보안 권장 사항
- 개인키 파일 권한을 엄격히 설정한다(예: chmod 600).
- 불필요한 포트는 차단하고, 가능하면 포트 포워딩을 최소화한다.
- 정기적으로 소프트웨어 업데이트를 적용한다.
마무리
이 문서에서는 우분투 WireGuard 설치와 기본적인 Ubuntu 22.04 WireGuard 설정 절차, wg-quick 우분투 설정 방법을 다뤘다. 제시한 순서대로 따라하면 서버와 클라이언트 간 안전한 터널을 빠르게 구성할 수 있다. 추가 고급 설정은 필요에 따라 라우팅, 멀티피어 구성, 인증 연동 등을 검토하면 된다.