Ubiquiti EdgeRouter·Unifi에 WireGuard 적용하기
EdgeRouter와 Unifi 장비에서 WireGuard를 적용하는 실무형 절차와 구성 예시를 모아둔 설정
목차
개요
이 글은 Ubiquiti 장비 환경에서 WireGuard를 도입하는 방법을 단계별로 정리한다. EdgeRouter 계열과 Unifi(UDM, UDM‑Pro 등) 계열의 대표적 접근법을 소개하며, 키 생성·인터페이스 구성·방화벽·NAT·연결 확인까지 설명한다. 처음 접하는 사용자도 따라할 수 있도록 화면 예시와 명령어 예제를 포함한다.
준비물
- 관리자 권한으로 접근 가능한 EdgeRouter 또는 Unifi 장비
- WireGuard 실행이 가능한 Linux 호스트(장비 네이티브 지원이 없을 때 대안)
- SSH 클라이언트, 텍스트 편집기
기본 개념 정리
WireGuard는 경량의 VPN 프로토콜이다. 키 쌍(프라이빗/퍼블릭)으로 피어를 인증하고, 각 피어에 IP 주소를 할당하여 라우팅한다. 핵심은 키 생성, 인터페이스 설정, 피어 등록, 방화벽 규칙이다.
키 생성
모든 환경에서 공통으로 사용하는 키 생성 방법(로컬 Linux 또는 관리 PC에서 수행).
wg genkey | tee privatekey | wg pubkey > publickey
# privatekey 파일 내용과 publickey 파일 내용을 복사해서 사용
EdgeRouter에 WireGuard 적용
1) 네이티브 지원 여부 확인
일부 EdgeOS 버전은 WireGuard를 네이티브로 지원한다. 지원 여부는 장비의 릴리스 노트를 확인하거나 SSH로 접속해 관련 명령어(set interfaces wireguard)가 있는지 확인한다.
2) 네이티브 구성 예시
네이티브 지원이 있을 때의 구성 예시(실제 키와 IP는 환경에 맞게 수정).
configure
set interfaces wireguard wg0 address 10.200.0.1/24
set interfaces wireguard wg0 private-key <YOUR_PRIVATE_KEY>
set interfaces wireguard wg0 listen-port 51820
set interfaces wireguard wg0 peer peer1 public-key <PEER_PUBLIC_KEY>
set interfaces wireguard wg0 peer peer1 allowed-ips 10.200.0.2/32
commit; save
위 예제에서 <YOUR_PRIVATE_KEY>와 <PEER_PUBLIC_KEY>는 실제 키로 교체한다.
3) 방화벽 및 NAT
WireGuard 트래픽을 허용하고 내부 네트워크와 라우팅하도록 방화벽 규칙 및 NAT를 설정한다.
configure
set firewall name WG_IN default-action drop
set firewall name WG_IN rule 10 action accept
set firewall name WG_IN rule 10 description 'Allow WireGuard'
set firewall name WG_IN rule 10 protocol udp
set firewall name WG_IN rule 10 destination port 51820
commit; save
# NAT 예시 (인터넷 공유용)
set nat source rule 5000 outbound-interface eth0
set nat source rule 5000 translation address masquerade
commit; save
EdgeRouter에서 네이티브 미지원 시 대안
구형 EdgeRouter나 펌웨어에서 WireGuard를 지원하지 않으면 내부에 작은 Linux VM이나 라즈베리파이 같은 호스트를 두고 WireGuard를 실행한 뒤 라우터에서 정적 라우트와 포트포워딩을 설정하는 방법이 안전하다.
Unifi(UDM/UDM‑Pro 등)에서 WireGuard 적용
1) 공식 패키지 부재와 접근법
Unifi OS(UDM 계열)는 공식적으로 WireGuard 패키지를 기본 제공하지 않을 수 있다. 따라서 두 가지 실무적 선택지가 있다.
- 장비 내부에서 커뮤니티 패키지나 서드파티 스크립트를 이용해 설치
- LAN 내부의 별도 Linux 호스트에서 WireGuard를 운영하고 Unifi 장비에서 라우팅/포워딩 처리
2) Linux 호스트에서 wg-quick 예시
[Interface]
Address = 10.200.0.1/24
PrivateKey = <SERVER_PRIVATE_KEY>
ListenPort = 51820
[Peer]
PublicKey = <CLIENT_PUBLIC_KEY>
AllowedIPs = 10.200.0.2/32
Endpoint = client.example.com:51820
wg-quick up wg0로 인터페이스를 올린 다음, Unifi에서 해당 서브넷으로 가는 라우트를 추가한다.
라우팅과 DNS
WireGuard 서브넷을 내부 네트워크와 통합하려면 Unifi/EdgeRouter 양쪽에서 정적 라우트 추가가 필요하다. 예: 10.200.0.0/24 via 192.168.1.10 (WireGuard 호스트 IP).
테스트 및 문제 해결
- peer 간 연결 확인: wg show
- 패킷 흐름 확인: tcpdump -i wg0
- 포트 열림 확인: nc -u -zv 공용IP 51820
# 현재 상태 확인
wg show
# 패킷 캡처 예시
tcpdump -n -i wg0
보안 권고
- 프라이빗 키는 장비 내 안전한 위치에 보관
- 필요하지 않은 경우 공용 포트는 제한된 IP로 접근 제어
- 정기적으로 구성과 로그를 검토
마무리
EdgeRouter WireGuard 설치와 Unifi WireGuard 설정은 장비 상태와 펌웨어에 따라 접근법이 달라진다. 네이티브 지원이 있으면 라우터에서 직접 구성하고, 없으면 내부 Linux 호스트를 활용해 안정적으로 운영하는 것을 권장한다. 위 예제를 바탕으로 환경에 맞게 키와 IP, 방화벽 규칙을 조정하면 안정적인 VPN 구성이 가능하다.