OPNsense 에서 WireGuard 를 Road Warrior 방식으로 재구성하고, 원격 클라이언트가 <LAN1_SUBNET> · <LAN2_SUBNET> 에 접근하도록 만드는 실무형 가이드다. OpenVPN 설정 가이드 와 같은 수준으로 구성 단계, 보안 강화, 검증, 트러블슈팅 포인트를 정리했다. VPN 기술 자체의 개념과 비교는 VPN 문서를 본다.
| 항목 | 값 |
|---|---|
| OPNsense | 26.1.6-amd64 (2026년 테스트 됨). 현행 릴리스는 26.7 계열[1] |
| WAN | igc3 |
| LAN1 | igc0 |
| LAN2 | igc1 |
과거 wg0 존재 이력이 있었으며, 레거시 VPN 정리 후 깨끗한 상태에서 재구성했다.
WireGuard 는 모든 패킷을 UDP 로 전송하며, Noise_IK 핸드셰이크와 현대 암호군을 사용한다. 핵심 primitive 는 ChaCha20 · Poly1305 · Curve25519 · BLAKE2s · HKDF 다. Source
공식 OPNsense 문서 기준으로 WireGuard Road Warrior 는 다음 순서로 이해하면 된다. Source
과거 WireGuard 흔적과 wg0 존재 여부, legacy 설정 잔재를 확인한다.
sh audit_vpn_legacy_all.sh
레거시 wireguard 섹션과 관련 인터페이스 · 파일 제거 여부를 검토하고 적용한다.
PURGE_WIREGUARD=YES sh cleanup_unused_vpn_artifacts.sh
APPLY=YES PURGE_WIREGUARD=YES sh cleanup_unused_vpn_artifacts.sh
VPN → WireGuard → Instances 에서 만든다.
| 항목 | 값 |
|---|---|
| Name | <WG_INSTANCE_NAME> |
| Listen Port | <WIREGUARD_PORT> |
| MTU | 1420 기본, 환경에 따라 조정 |
| Tunnel Address | <WIREGUARD_TUNNEL_NET> 의 서버 주소 |
| Private/Public Key | 생성 후 사용 |
VPN → WireGuard → Peers 에서 만든다.
| 항목 | 값 |
|---|---|
| Peer Public Key | <WG_CLIENT_PUBLIC_KEY> |
| Allowed IPs | 클라이언트 고유 터널 IP 예: <WG_CLIENT_TUNNEL_IP>/32 |
| Endpoint | Road Warrior 면 클라이언트 측은 보통 비움 |
| Persistent Keepalive | NAT 뒤 클라이언트면 필요 시 25초 고려 |
서버의 peer Allowed IPs 는 그 peer 에게 귀속된 주소 범위를 뜻한다. 여기에는 일반적으로 해당 peer 의 터널 IP 만 넣는다. Source
방화벽 규칙을 명확하게 관리하고, 내부망 허용 정책을 인터페이스 단위로 설계하기 위함이다. Source
UDP <WIREGUARD_PORT> 허용 규칙을 만든다. 외부 클라이언트가 서버 endpoint 에 도달할 수 있어야 한다.
초기 검증용 규칙은 다음과 같다. 터널이 성공해도 방화벽이 차단하면 내부망 접근은 실패한다. Source
<LAN1_SUBNET>, <LAN2_SUBNET>| 항목 | 예시 |
|---|---|
| Address | <WG_CLIENT_TUNNEL_IP>/32 |
| PrivateKey | <WG_CLIENT_PRIVATE_KEY> |
| PublicKey(Server) | <WG_SERVER_PUBLIC_KEY> |
| Endpoint | <WAN_PUBLIC_IP>:<WIREGUARD_PORT> |
| AllowedIPs | <LAN1_SUBNET>, <LAN2_SUBNET>, 필요 시 서버 tunnel IP |
| PersistentKeepalive | NAT 환경이면 25 고려 |
클라이언트의 AllowedIPs 에 <LAN1_SUBNET>, <LAN2_SUBNET> 이 없으면, 핸드셰이크가 되어도 내부망 트래픽이 터널로 가지 않는다. Source Source
필요 시 peer 별 방화벽 규칙으로 접근 대상을 세분화한다.
공식 Quick Start 는 NAT · firewall 뒤에서 장시간 유휴 후 수신이 필요할 때만 사용을 권장한다. 보편 값으로 25초를 예시한다. Source
<LAN1_SUBNET> 게이트웨이 ping 가능한가<LAN2_SUBNET> 게이트웨이 ping 가능한가/32 혹은 광범위한 경로로 의도치 않은 우회 발생PersistentKeepalive = 25 검토 SourceWireGuard 는 OPNsense 에서 빠르고 단순한 VPN 을 만들기 매우 적합하다. 다만 단순한 만큼 AllowedIPs, peer 별 주소 계획, MTU, 방화벽, 리턴 경로 설계를 정확히 해야 한다. 내부 두 개 대역 <LAN1_SUBNET>, <LAN2_SUBNET> 접근 목표를 달성하려면, 서버와 클라이언트 양쪽에서 경로 개념을 정확히 맞추는 것이 핵심이다.
최신 버전 26.7.3 — 2026-09-20 확인. https://docs.opnsense.org/releases/CE_26.7.html ↩︎