OPNsense에서 WireGuard VPN을 구축하고 Windows 클라이언트에서 연결하는 절차

OPNsense에서 WireGuard VPN을 구축하고 Windows 클라이언트에서 연결하는 절차

6 min read

Network How-To

자택·거점·사내 OPNsense를 WireGuard 서버로 구성하고, Windows PC에서 안전하게 접속하기 위한 실전 절차입니다.
본 문서는 “사내 LAN 또는 자택 LAN으로 들어가는” 용도를 가정한 split tunnel 구성을 전제로 합니다. 절차의 골격은
OPNsense 공식 WireGuard Road Warrior Setup과 WireGuard 일반 해설, Windows용 공식 인스톨러 안내에 준거합니다.[1][2][4]

예상 소요 시간: 20~30분
업데이트: 2026-03-13

이 문서에서 구축하는 구성

Windows Client

WireGuard Tunnel

OPNsense
  • 프로토콜: WireGuard / UDP
  • 용도: 원격 액세스
  • 방침: split tunnel
  • 클라이언트: 공식 WireGuard for Windows

Overview

개요 및 전제 #

OPNsense에서 WireGuard는 Instance(서버 측 가상 인터페이스 설정)와
Peer(접속을 허용할 상대)를 조합하여 구성합니다. OPNsense 공식에서는 터널용 주소를
물리적으로 별도의 인터페이스가 존재하는 것처럼 독립된 네트워크로 설계하는 것을 권장합니다.[1][2]

이 문서의 목표 #

Windows PC에서 WireGuard로 OPNsense에 접속하여, LAN 내 NAS·RDP·SSH·업무 시스템에 안전하게 액세스할 수 있는 상태를 만듭니다.

전제로 하는 접속 방식 #

클라이언트의 인터넷 전체를 VPN으로 보내지 않고, LAN 방향 통신만 터널로 보내는 split tunnel을 채택합니다.

클라이언트 앱 #

Windows 측은 공식 WireGuard for Windows를 사용합니다. 인스톨러는 WireGuard 공식 사이트에서 제공됩니다.[4]

주의: OPNsense는 버전에 따라 화면 배치나 항목명이 달라질 수 있습니다.
다만, Instance / Peer / General / Firewall이라는 구성 개념은 공통입니다.
  • OPNsense 관리 UI에 로그인할 수 있을 것
  • WAN 측에서 UDP 51820을 사용할 수 있을 것
  • 상위 라우터 하위에 OPNsense가 있는 경우, UDP 51820을 OPNsense WAN으로 포워딩할 수 있을 것
  • 접속 대상 LAN 세그먼트와 중복되지 않는 WireGuard 전용 네트워크를 준비할 수 있을 것
  • Windows 클라이언트에 공식 WireGuard for Windows를 도입할 수 있을 것

Sample Design

샘플 구성 #

문서 내 설명은 다음 예시로 통일합니다. 수치는 어디까지나 샘플이므로, 실제 환경에서는 자사의 주소 체계로 변경하십시오.

항목의미
LAN192.168.10.0/24사내·자택 측 내부 네트워크
WireGuard 네트워크10.10.10.0/24VPN 터널 전용 세그먼트
OPNsense 터널 IP10.10.10.1/24Instance에 설정할 주소
Windows 클라이언트 IP10.10.10.2/32Peer에 할당할 고유 주소
공개 호스트명vpn.example.jpWAN의 글로벌 IP 또는 DDNS명
Listen Port51820/UDPWireGuard 대기 포트
Windows Client
10.10.10.2/32
WireGuard Tunnel
10.10.10.0/24
OPNsense
10.10.10.1/24
LAN
192.168.10.0/24
포인트: OPNsense 공식 문서에서는 Instance 측 터널 주소를
10.10.10.1/24와 같이 네트워크를 포함한 CIDR로 설정하고, 서버 측 Instance에
/32/128을 사용하지 않도록 안내하고 있습니다.[1]

Step 1

OPNsense 측에서 WireGuard Instance 생성하기 #

1

메뉴 #

VPN > WireGuard > Instances를 열고 +로 새로 추가합니다.[1]

항목설정 예시보충 설명
EnabledChecked활성화
NameHomeWireGuard임의의 식별명
Public Key / Private Key자동 생성톱니바퀴 아이콘으로 새로 생성
Listen Port51820다른 서비스와 중복되지 않는 UDP 포트
MTU1420PPPoE의 경우 1412 검토[1]
Tunnel Address10.10.10.1/24WireGuard 전용 세그먼트
Peers공란먼저 Peer를 생성하므로 이 시점에서는 미지정
DNS Server공란Advanced mode에서도 기본적으로 공란. 설정하면 OPNsense 자체의 DNS 설정을 덮어쓰게 됩니다.[1]

저장 후 다시 Instance를 열어 Public Key를 메모해 둡니다.
이 공개 키는 나중에 Windows 클라이언트 설정에 입력할 서버 측 공개 키입니다.[1]

Step 2

클라이언트용 Peer 생성하기 #

OPNsense의 현행 문서에서는 여러 클라이언트를 배포하는 용도로
Peer generator 사용을 안내하고 있습니다. 인스턴스 선택, Endpoint 저장,
주소 자동 할당, Config 텍스트 생성이 가능하며, 공개 키만 OPNsense 측에 저장됩니다. 개인 키는
OPNsense에 보관되지 않으므로 생성한 설정을 안전하게 보관하시기 바랍니다.[2][3]

권장 절차: Peer generator 사용하기 #

  1. VPN > WireGuard > Peer generator를 엽니다.
  2. 대상 Instance를 선택하고 클라이언트명, 접속 대상 FQDN/포트, 필요한 네트워크, DNS를 입력합니다.
  3. Address는 10.10.10.2/32와 같은 클라이언트 전용 주소를 할당합니다. 현재 구현에서는 주소 자동 할당도 사용할 수 있습니다.[3]
  4. Keepalive interval은 25초 권장(NAT나 FW 통과 시 접속성 관점에서)
  5. DNS는 일반적으로 공란으로 두지만, VPN 대상의 DNS 서버에서 호스트명을 조회하려면 여기서 지정해야 합니다.
  6. Enable WireGuard를 체크
  7. Store and generate next로 공개 정보를 저장하고, 생성된 Config를 복사해
    client-windows.conf로 안전하게 저장합니다. 이어서 Peers 화면에서 Apply를 실행합니다.[2]

주의: Peer generator로 생성한 개인 키는 OPNsense에 저장되지 않습니다.
다시 생성한 경우 Windows 측에서도 설정 파일을 재등록해야 합니다.[2]

수동으로 Peer를 생성하는 경우 #

Peer generator를 사용하지 않는 경우 VPN > WireGuard > Peers에서 새 Peer를 생성하고,
클라이언트 공개 키와 클라이언트용 /32 주소를 설정합니다.[1]

항목설정 예시보충 설명
Enabled WireGuardChecked활성화
NameWindows-Laptop-01단말을 식별할 수 있는 명칭
Public Key클라이언트 공개 키Windows 측에서 생성한 키
Allowed IPs10.10.10.2/32이 클라이언트에 할당할 고유 주소
Pre-shared Key임의추가 보안 조치로 사용 가능[2]

수동으로 Peer를 생성한 후, 원래 Instance로 돌아가서 생성된 Peer를 연결하고 저장한 다음 Apply합니다.[1]

수동 생성 시 client-windows.conf 템플릿
[Interface]
PrivateKey = <Windows클라이언트의 비밀 키>
Address = 10.10.10.2/32
DNS = 10.10.10.1

[Peer]
PublicKey = <OPNsense Instance의 공개 키>
Endpoint = vpn.example.jp:51820
AllowedIPs = 192.168.10.0/24, 10.10.10.0/24

DNS를 터널을 통해 사용하는 경우, 해당 DNS 대상이 AllowedIPs에 포함되어 있는지 확인하세요.[1]

Step 3

인터페이스 할당 및 활성화 #

1

인터페이스 할당 #

Interfaces > Assignments에서 생성된 wgX 장치를 추가하고 알아보기 쉬운 설명명을 지정합니다.[1]

2

인터페이스 활성화 #

Interfaces > OPTX에서 “인터페이스 활성화”에 체크 표시하고 저장→”변경 사항 적용”을 클릭합니다

항목설정 예보충
Enable(활성화)Checked인터페이스 활성화
DescriptionHomeWireGuard규칙 생성 시 구별하기 쉽게 함
IPv4 Configuration TypeNone수동으로 IP를 설정하지 않음
IPv6 Configuration TypeNone필요 시에만 설정

OPNsense 공식에서는 할당된 인터페이스에 IP를 직접 설정할 필요가 없으며,
Instance에 입력한 터널 주소가 WireGuard 재시작 후 자동으로 반영된다고 안내하고 있습니다.[1]

보충: 본 문서는 split tunnel 구성이므로, 클라이언트의 전체 인터넷을 VPN으로 보내기 위한
Gateway / Outbound NAT는 필수가 아닙니다. 외부 인터넷까지 터널로 보내는 full tunnel로 구성하려는 경우에만
추가 NAT / Gateway 설정을 진행합니다.[1]

Step 4

방화벽 규칙 생성 #

공식 절차에서는 WAN 측에서 터널 수립용 UDP를 허용하고, 이어서
WireGuard 인터페이스 측에서 허용할 대상을 허용하는 2단계 구성입니다.[1][2]

WAN 측 규칙 #

항목설정 예시보충 설명
ActionPass수신 허용
InterfaceWANWAN 수신측
ProtocolUDPWireGuard는 UDP
DestinationWAN address자체 WAN
Destination Port51820Instance의 Listen Port와 일치
DescriptionAllow WireGuard임의
운용 팁: 고정 IP의 거점이나 베스천 호스트에서만 접속하는 운용이라면,
WAN 규칙의 Source를 해당 IP 또는 세그먼트로 제한하면 공개 범위를 더욱 줄일 수 있습니다.

WireGuard 인터페이스측 규칙 #

항목설정 예시보충 설명
ActionPass터널 내 통신 허용
InterfaceHomeWireGuard할당한 WireGuard 인터페이스
Protocolany처음에는 통신 확인이 쉬운 설정으로 가능
SourceHomeWireGuard net터널 네트워크
Destination192.168.10.0/24우선 LAN만 허용

OPNsense 공식에서는 WireGuard측 규칙의 대상을 any로도 설정할 수 있지만,
실제 운용에서는 필요한 서브넷·필요한 서버만 허용하는 것을 권장합니다.[1]

PPPoE 환경이나 일부 TCP 통신에서 문제가 생기는 경우 MTU / MSS 조정

공식 절차에서는 PPPoE 환경에서 Instance MTU를 1412로 낮추는 예시가 제시되며,
필요에 따라 Firewall > Settings > Normalization에서 MSS clamping을 추가하는 방법이 안내되어 있습니다.
TCP만 불안정하거나, 웹만 열리지 않는 증상이 있는 경우 유효합니다.[1]

항목설정 예시
InterfaceWireGuard (Group)
DescriptionWireGuard MSS Clamping IPv4
Max MSS1380(PPPoE라면 1372

Step 5

Windows 클라이언트에 설정 적용하기 #

Windows측은 공식 WireGuard for Windows를 사용하는 것이 가장 간단합니다. 설치 프로그램은
WireGuard 공식 사이트에서 받을 수 있습니다.[4]

  1. WireGuard for Windows를 설치합니다.
  2. OPNsense의 Peer generator에서 저장한 client-windows.conf를 준비합니다. 수동으로 작성하는 경우 앞서 설명한 템플릿을 사용합니다.
  3. WireGuard for Windows에 설정 파일을 가져옵니다.
  4. 대상 터널을 활성화하고 연결을 시작합니다.
보충: NAT 환경이나 모바일 회선 등에서 세션 유지가 불안정한 경우 Keepalive interval 사용을 검토합니다.
OPNsense 공식에서도 NAT / firewall traversal을 유지하고 싶은 경우 Keepalive interval이 효과적이라고 설명하고 있습니다.[2]
split tunnel의 클라이언트 설정 예시
client-windows.conf
[Interface]
PrivateKey = <클라이언트 비밀키>
Address = 10.10.10.2/32
DNS = 10.10.10.1

[Peer]
PublicKey = <OPNsense 공개키>
Endpoint = vpn.example.jp:51820
AllowedIPs = 192.168.10.0/24, 10.10.10.0/24

AllowedIPs192.168.10.0/24와 같은 LAN 세그먼트를 입력하면,
해당 목적지만 터널로 전송됩니다. 클라이언트의 모든 통신을 VPN으로 보내려면,
공식 절차대로 0.0.0.0/0이나 ::/0을 사용하지만, 이 경우 OPNsense 측의 NAT / 라우팅 설계도 추가로 필요합니다.[1]

Step 6

연결 확인 #

  • Windows 클라이언트에서 터널을 활성화한다
  • 10.10.10.1(OPNsense 측 터널 IP)로 통신 확인을 한다
  • LAN 측의 대표 호스트(예: 192.168.10.10)로 ping, RDP, SSH 등을 시도한다
  • 필요에 따라 이름 확인을 시도하고, DNS가 통하는지 확인한다
  • VPN > WireGuard > Status에서 handshake와 송수신량을 확인한다[2]

Operations

공개 전에 적용할 강화 조치 #

Peer마다 /32를 할당 #

각 클라이언트에 고유한 /32를 할당하면, 단말 단위로 규칙과 로그를 추적하기 쉬워집니다.[1]

필요한 목적지만 허용 #

WireGuard 인터페이스 측 규칙은 LAN net이나 특정 서버 그룹으로 제한하고, any로 두지 않는 것이 더 안전합니다.

고정 거점에서만 접속하면 Source 제한 #

WAN 규칙의 송신원을 고정 IP로 제한할 수 있다면, 접근 가능한 상대를 더욱 제한할 수 있습니다.

필요에 따라 PSK 추가 #

OPNsense의 Peer에는 pre-shared key를 추가할 수 있으며, 공식에서도 추가 안전 조치로 안내하고 있습니다.[2]

상태 확인은 Status / Log File #

Handshakes, 데이터량, 설정 오류 확인은 StatusLog File이 기본입니다.[2]

DNS도 최소 권한으로 #

터널 내 DNS를 사용한다면, 도달 대상·AllowedIPs·Unbound 측 인터페이스 등록을 함께 확인하십시오.[1]

Troubleshooting

연결되지 않을 때 확인 항목 #

Handshake가 나타나지 않음

먼저 WAN 측 UDP 51820 허용, 상위 라우터의 포트 포워딩, Endpoint의 FQDN/포트, 클라이언트 시간의 큰 차이를 확인합니다.

Handshake는 나타나지만 LAN에 도달하지 않음

Peer의 Allowed IPs, 클라이언트 측의 AllowedIPs, WireGuard 인터페이스 측 규칙의 목적지를 다시 확인하십시오. OPNsense 공식에서도 Allowed IPs가 잘못되면 패킷이 조용히 폐기된다고 안내하고 있습니다.[2]

ICMP는 통하지만, 일부 Web이나 TCP 통신만 불안정

MTU / MSS의 영향을 의심합니다. PPPoE라면 Instance MTU 1412와 Normalization의 MSS clamping을 시도하십시오.[1]

DNS만 실패

클라이언트에서 지정한 DNS 목적지가 AllowedIPs에 포함되어 있는지 확인합니다. Unbound DNS를 모든 인터페이스 등록으로 운영하는 경우, 새로운 WireGuard 인터페이스 추가 후 Unbound의 reload가 필요합니다.[1]

WireGuard 메뉴를 찾을 수 없음 / 화면이 다름

버전 차이를 확인하십시오. Peer generator 주변은 24.1 계열에서 단계적으로 개선되었으며, UI의 모양이나 항목 배치는 버전에 따라 조금씩 다릅니다.[3]

Sources

참고 정보 #

  1. OPNsense Documentation, WireGuard Road Warrior Setup
    https://docs.opnsense.org/manual/how-tos/wireguard-client.html
  2. OPNsense Documentation, Virtual Private Networking > WireGuard
    https://docs.opnsense.org/manual/vpnet.html
  3. OPNsense Documentation, 24.1 “Savvy Shark” Series(Peer generator 관련 업데이트 포함)
    https://docs.opnsense.org/releases/CE_24.1.html
  4. WireGuard Official, Installation
    https://www.wireguard.com/install/
Updated on 2026年6月9日

What are your feelings

  • Happy
  • Normal
  • Sad