DigitalOcean Droplet에 WireGuard 빠르게 설치
DigitalOcean Droplet에 WireGuard를 빠르게 배포하고, 초기 설정·키 관리·방화벽·클라이언트 연결·운영 적용·성능·보안 최적화까지 단계별로 정리한 설치방법
목차
개요
이 글은 DigitalOcean Droplet에 WireGuard를 빠르게 배포하는 과정을 실무 관점에서 정리한 설명이다. 처음 접하는 사용자도 이해할 수 있도록 기본 개념부터 Droplet WireGuard 설정, 클라이언트 연결 확인까지 한 흐름으로 구성되어 있다. 또한 DigitalOcean WireGuard 설치 관련 핵심 설정과 보안 고려사항을 포함한다.
사전 준비
필수 항목
- DigitalOcean 계정과 Droplet 생성 권한
- Ubuntu 22.04 또는 20.04 권장
- 루트 권한 또는 sudo 권한이 있는 사용자
- 기본 네트워크 포트(예: UDP 51820) 인바운드 허용
빠른 설치 흐름
다음 단계는 실제 설치와 기본 설정을 빠르게 적용하는 순서다. 각 단계마다 필요한 명령과 설명을 덧붙였다.
1. 시스템 업데이트 및 WireGuard 설치
sudo apt update
sudo apt upgrade -y
sudo apt install -y wireguard qrencode iptables-persistent
2. 키 페어 생성
서버와 클라이언트 각각에 비밀키와 공개키가 필요하다. 서버에서 먼저 키를 생성한다.
wg genkey | tee server_private.key | wg pubkey > server_public.key
wg genkey | tee client_private.key | wg pubkey > client_public.key
3. 서버 설정 파일 작성
기본 인터페이스 이름을 wg0로 하고 내부 서브넷을 10.0.0.1/24로 사용한다. 포트는 UDP 51820로 예시를 제시한다.
[Interface]
Address = 10.0.0.1/24
ListenPort = 51820
PrivateKey = <서버 비밀키 내용>
[Peer]
# 클라이언트1
PublicKey = <클라이언트 공개키 내용>
AllowedIPs = 10.0.0.2/32
4. IP 포워딩 및 방화벽 설정
서버가 패킷을 전달하도록 커널 포워딩을 활성화한다. ufw를 사용 중이면 정책을 조정한다.
sudo sysctl -w net.ipv4.ip_forward=1
# 영구 적용: /etc/sysctl.conf에 net.ipv4.ip_forward=1 추가
# NAT 설정 예시
sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
sudo sh -c 'iptables-save > /etc/iptables/rules.v4'
5. 서비스 등록 및 시작
wg-quick을 이용해 인터페이스를 활성화하고 부팅 시 자동 시작하도록 등록한다.
sudo wg-quick up wg0
sudo systemctl enable wg-quick@wg0
6. 클라이언트 설정 파일 생성
클라이언트에는 서버의 공개키와 엔드포인트 정보를 넣는다. 모바일이나 데스크톱에서 바로 불러올 수 있도록 QR 코드도 생성한다.
[Interface]
PrivateKey = <클라이언트 비밀키>
Address = 10.0.0.2/32
DNS = 1.1.1.1
[Peer]
PublicKey = <서버 공개키>
Endpoint = your-droplet-ip:51820
AllowedIPs = 0.0.0.0/0, ::/0
PersistentKeepalive = 25
# QR 코드 생성
qrencode -t ansiutf8 < client.conf
검증 및 문제 해결
연결 확인
- 서버에서 현재 피어 상태 확인:
sudo wg - 클라이언트에서 내부 IP로 핑 테스트:
ping 10.0.0.1
자주 발생하는 문제
- 포트 미개방: DO 방화벽 또는 Droplet 방화벽에서 UDP 포트가 허용되지 않은 경우가 많음
- NAT 누락: 외부 트래픽이 로컬 네트워크로 전달되지 않으면 MASQUERADE 규칙 확인 필요
- 잘못된 키 입력: 공개키/비밀키 쌍이 맞지 않으면 암호화 연결이 성립되지 않음
운영 환경 고려사항
보안 강화
- 서버 비밀키 파일 권한을 600으로 제한
- 불필요한 포트를 차단하고 SSH 키 기반 접속 사용
- 로그와 접속 이력을 주기적으로 점검
백업 및 자동화
wg 설정 파일과 키는 안전한 장소에 백업한다. 여러 Droplet에 동일한 구성을 적용할 때는 cloud-init 스크립트 또는 DO의 API를 활용한 자동화가 유용하다. 이 글에는 수동 배포 과정을 집중했지만, 운영 규모가 커지면 자동 배포를 도입하는 것이 효율적이다.
요약
DigitalOcean WireGuard 설치 과정은 비교적 단순하며, 핵심은 키 관리와 네트워크 포워딩, 방화벽 규칙이다. Droplet WireGuard 설정을 정확히 적용하면 안전하고 고성능의 VPN 연결을 확보할 수 있다. DO WireGuard 가이드로서 이 문서는 초기 설정부터 운영 적용까지 실무에 바로 활용 가능한 절차를 제공한다.
참고 명령 모음
# 상태 확인
sudo wg
# 인터페이스 중지
sudo wg-quick down wg0
# 방화벽 규칙 저장
sudo iptables-save > /etc/iptables/rules.v4