본 가이드는 OPNsense 오픈소스 방화벽 WireGaurd 핵심 가이드 및 실전 아키텍처의 핵심 개념, 실전 구성 명령어 및 아키텍처 베스트 프랙티스를 다룹니다. 클라우드 네이티브 및 인프라 엔지니어링 실무에 즉시 활용 가능하도록 체계적으로 정리했습니다.
📑 Table of Contents
System Required:
- 외부망에서 VPN 인스턴스 엔드포인트를 안정적으로 요청하기 위해 필수
Server in OPNSense
인스턴스 생성 및 Enable
- WG Instance / Peers
- CIDR:
10.0.X.X/24 - Instance:
10.0.X.X/24(인스턴스 주소는10.0.X.X, 피어주소는 순차적으로 할당됨)
인스턴스 생성
- 터널 대역: ex)
10.0.X.X/24
Enable
피어 생성
peer는 클라이언트 갯수만큼 만드는 것이 좋습니다. (사용자:Peer = 1:1, Peer:Instance = 1:N)
수동으로 생성 (필요할 시에만)
- 비밀키 및 공개키 생성
mkdir wg-mgnt-peer1
cd wg-mgnt-peer1/
#wg genkey > privatekey
#cat privatekey
#cat privatekey | wg pubkey > publickey
#cat publickey
wg genkey | tee privatekey | wg pubkey > publickey
- 실질적으로 저장되는 정보
- 허용된 피어링 IP 범위
- 공개키
- 인스턴스 매핑
- keepalive
- 피어 구성에는 해당정보 저장 불필요
- 엔드포인트 주소
- 엔드포인트 포트
피어 생성기로 생성
모바일의 경우 해당화면내에서 QR로 등록
- 엔드포인트는 인스턴스의 Listen Port
- 이름 정의
- 허용된 IP 정의: 인스턴스와 동일한 대역이 포함되어야 함. ex)
10.0.X.X/24 - KeepAlive:
25 - 주의사항:
- 반드시 Client 등록과 같이 진행해야함.
-
개인키는 이 화면이후 조회불가
-
적용버튼 클릭
Client
Installation
Config
interface: 클라이언트 터널 설정(서버에 저장안됨. 클라이언트 Config 정의용)Address: 터널이 사용할 IP범위DNS: 클라이언트 측에서 사용할 사설 DNSpeer: peer와의 연결구성정보AllowedIPs: VPN 터널링 범위Endpoint: VPN 인스턴스 엔드포인트- Sample
[Interface]
PrivateKey = <secret>
Address = 10.0.X.X/32
DNS = 192.168.118.53
[Peer]
PublicKey = <secret>
#AllowedIPs = 0.0.0.0/0
AllowedIPs = 10.0.X.X/24, 118.37.2.0/24, 192.168.118.0/24
Endpoint = <ddns>:41821
PersistentKeepalive = 25
Mobile
- WireGuard App에서 QR을 활용
PC
AllowedIPs의 이해
-
클라이언트에서 요청하는 목적지 트래픽의 IP가 Allowed에 속해 있을때 터널을 사용한다.
-
All:
0.0.0.0/0– 모든 트래픽 터널링시에 DNS 쿼리하지 못할 수 있으므로
Interface에DNS = 8.8.8.8, 1.1.1.1선언해준다. -
VPN대역 (필수):
10.0.X.X/24 -
WAN대역 (내 설정 확인):
118.37.2.0/24
-
All:
-
peer 생성기쪽에 있는 config를 복사하여 Tunnel 구성
Issues
포트 포워딩 추가
- WAN Interface: WireGuard Instance
- 위와 같이 구성했다면
WAN 주소:41821포워딩 필요 -
참고
– 구성
– 인터페이스:WAN
– 프로토콜:UDP
– 목적지:WAN 주소
– 목적지 포트 범위:41821\~41821
– 대상 IP 리디렉션:단일호스트 또는 네트워크–127.0.0.1/32
– 대상 포트 리디렉션:41821
상태 확인
Feature: WAN 서비스 포트 보안 ( Dest WAN )
-
인터페이스 추가
- 참고:
- 터널 인터페이스이므로, IPv4 구성유형 등을 없음으로 활성만 하기.
-
Client Setup
- VPN 대역과 WAN 대역 허용
AllowedIP = 10.0.X.X/24, 118.37.2.0/24
- VPN Interface: Service Port
WireGuard Instance 외의 모든 포트는 WAN에 노출하지 않는다.
- AS-IS 포트포워딩 정책:
- 인터페이스:
WAN - 출발지:
any - 목적지:
WAN 주소 - 대상 IP 리디렉션:
단일호스트 또는 네트워크
- 인터페이스:
-
TO-BE 포트포워딩 정책 (Dest WAN):
- 인터페이스:
VPN1 - 출발지:
VPN1 net - 목적지:
WAN 주소 - 대상 IP 리디렉션:
단일호스트 또는 네트워크
예시)
- 인터페이스:
Feature: WAN 서비스 포트 보안 ( Dest New Subnet ) (DNS용)
새로운 NAT 대역을 임의로 정의한다.
- 기존
192.168.1.0/24를 사용하면 내부 wifi에서 접근시 dhcp 내부망을 우선적으로 잡아서 접근이 불가해진다. - 휴대폰의 경우 wifi 접속되어있어도 접속이 되던데 이문제로 시간을 꽤 허비했다. 아마 내부망 우선 접근이 불가해서 LTE를 사용한것으로 생각된다.
- 내 경우
192.168.118.0/24대역을 정의했다.
장점
- IP를 나눌수 있어서 하찮은 포트들을 없앨 수 있다.
- 사설 DNS 바인딩이 가능해진다.
- SSL 구성이 가능해진다.
단점
-
WAN에 비해 귀찮다.
-
Client Setup
- VPN 대역과 WAN 대역, 신규서브넷 허용
AllowedIP = 10.0.X.X/24, 118.37.2.0/24, 192.168.118.0/24
- VPN Interface: Service Port
-
포트포워딩 정책 (Dest new Subnet):
- 인터페이스:
VPN1 - 출발지:
VPN1 net - 목적지:
192.168.118.1 ~ 192.168.118.255범위 내에서 자유롭게 구성 (단일 호스트) - 대상 IP 리디렉션:
단일호스트 또는 네트워크
예시)
- 인터페이스:
-
DNS Setup
-
SSL Setup
CLI
Leave a Reply