OPNsense에서 WireGuard 단계별 설정법
OPNsense에서 WireGuard를 설치하고 키 생성, 인터페이스 구성, 방화벽 규칙 설정까지 포함한 단계별 구성 절차와 검증 방법
목차
소개
이 글은 OPNsense에서 WireGuard를 사용해 VPN을 구성하는 과정을 쉽게 풀어쓴 설명이다. 초보자도 따라할 수 있도록 요구사항, 설치, 키 생성, 서버·클라이언트 구성, 방화벽 설정, 테스트 및 문제해결을 순서대로 정리한다. 또한 기본적인 보안 권장사항도 포함한다.
사전 준비
필수 항목
- OPNsense 최신 버전 접근 권한(관리자 계정)
- 인터넷으로 연결되는 공인 IP 또는 포트 포워딩 설정 가능 환경
- WireGuard 클라이언트(Windows, macOS, Linux, 모바일) 설치 가능 장치
권장 항목
- 관리자용 SSH 접근(키 생성 시 편리)
- 간단한 네트워크 계획(서버/클라이언트 서브넷 등)
OPNsense WireGuard 설치
OPNsense에서 WireGuard는 플러그인 형태로 제공된다. GUI의 System > Firmware > Plugins에서 'os-wireguard'를 찾아 설치하거나, 콘솔에서 플러그인 설치를 실행한다. 설치 후 시스템을 재시작하면 VPN 메뉴에 WireGuard 항목이 추가된다. 이 과정을 통해 OPNsense WireGuard 설치가 완료된다.
키 생성
WireGuard는 공개키 기반으로 동작한다. 서버와 각 클라이언트마다 키 쌍을 생성해야 한다. 안전한 방법은 관리용 워크스테이션에서 키를 생성하는 것이다. 예시 명령은 다음과 같다.
umask 077
wg genkey | tee server_private.key | wg pubkey > server_public.key
wg genkey | tee client_private.key | wg pubkey > client_public.key
각 파일을 안전한 위치에 보관한다. 공개키는 서로 교환하고, 비밀키는 절대로 노출해서는 안 된다.
서버(OPNsense) 구성
WireGuard 인터페이스 생성
- VPN > WireGuard > Local에서 새로운 엔트리를 추가
- Private Key 칸에 서버 비밀키 입력
- Listen Port는 기본 51820(UDP)을 사용하거나 환경에 맞게 변경
- Address는 VPN 내부 주소를 지정(예: 10.0.0.1/24)
Peer 추가
클라이언트마다 Peer를 추가한다. Peer 설정에는 클라이언트의 Public Key와 허용 대역(AllowedIPs)을 입력한다. 예를 들어 클라이언트 내부 IP을 10.0.0.2로 고정하려면 AllowedIPs에 10.0.0.2/32를 넣는다.
클라이언트 구성
클라이언트에는 다음과 같은 간단한 설정이 필요하다. 실제 앱(UI)에서 입력할 항목과 동일한 값을 사용하면 된다.
[Interface]
PrivateKey = CLIENT_PRIVATE_KEY
Address = 10.0.0.2/32
DNS = 1.1.1.1
[Peer]
PublicKey = SERVER_PUBLIC_KEY
Endpoint = public.example.com:51820
AllowedIPs = 0.0.0.0/0, ::/0
PersistentKeepalive = 25
AllowedIPs를 0.0.0.0/0로 설정하면 모든 트래픽이 VPN을 통해 라우팅된다. 내부 리소스만 접근하려면 서버 네트워크 대역만 추가한다.
방화벽 및 NAT 설정
OPNsense에서 UDP 51820 포트를 허용하는 규칙이 필요하다. 일반적으로 WAN 인터페이스에 다음 규칙을 추가한다.
Interface: WAN
Protocol: UDP
Source: any
Destination: WAN address
Destination port range: 51820
Action: Pass
만약 클라이언트 트래픽을 인터넷으로 내보내려면 NAT(Outbound)를 적절히 설정해야 한다. 자동 또는 수동 모드에서 WireGuard 인터페이스를 소스로 하는 아웃바운드 NAT 규칙을 추가한다.
연결 확인 및 문제해결
- WireGuard 상태: VPN > WireGuard > Status에서 핸드셰이크 시간과 전송량 확인
- ping 테스트: 서버에서 클라이언트로, 클라이언트에서 서버로 내부 IP로 ping
- 로그 확인: System > Log Files에서 관련 로그를 확인
연결이 되지 않는다면 방화벽, 포트포워딩, 키 교환(공개키 입력 오류), AllowedIPs 설정을 차례로 점검한다.
보안 권장사항
- 비밀키는 오프라인에 보관하고 정기적으로 교체
- 관리 접속은 별도 관리자 네트워크 또는 MFA 적용
- AllowedIPs를 최소 권한으로 설정해 불필요한 트래픽 차단
- 로그와 연결 상태를 주기적으로 모니터링
마무리
지금까지 OPNsense WireGuard 설정 전반을 다뤘다. 단계별로 설치(플러그인 추가), 키 생성, 인터페이스와 피어 구성, 방화벽·NAT 설정, 연결 검증, 보안 권장사항을 순서대로 설명했다. OPNsense WireGuard 설정을 통해 가볍고 빠른 VPN을 안정적으로 운영할 수 있다.