본문 바로가기
방랑자의 공부/정리하지 않은 공간

ESXi - OPNsense VPN(WireGuard)

by 푸른방랑자 2022. 2. 10.
반응형

안녕하세요 ESXi에 OPNsense VPN 설치 내용입니다.

개요

Opnsense에는 openvpn을 기본적으로 사용 할 수 있지만 openvpn은 이것 저것 설정해 주는 게 귀찮다.
이곳 저곳을 살펴보니 Wireguard라는게 있는데 키를 사용자가 등록 해 두고 그 키를 가진 컴퓨터는 바로 접속이 되는거 같아 바로 진행을 했다.
자료는 openvpn이 훨씬 많긴 한듯

설정 방법

[System] - [Firmware] - [Plugins]에서 os-Wireguard를 찾아 우측에 "+"버튼으로 설치하자

 

[VPN] - [WireGuard]에서 사용을 누른 다음 적용

 

로컬 탭에 들어 온 다음 Name(마음대로), 포트(51820는 기본 포트임으로, 사용하고 싶은 포트가 있다면 다른 서비스를 고려하여 지정), VPN사용 IP 설정(나는 10.10.100.1~10.10.100.255를 사용하기 위해 10.10.100.1/24)

반응형

저장하고 편집으로 다시 들어오게 되면, Public Key, Private Key가 생긴다. 둘다 중요하니 유출을 조심하고, 실제 클라이언트에서 설정 할 때는 Public Key만 복사하면 된다. 이글에서는이 키를 서버 공개키라고 말하겠다.

 

본인은 맥북을 사용하고 있어 앱스토어의 WireGuard를 설치한다.
윈도우, 아이패드에도 있는 것을 확인했고, 이쯤이면 안드로이드도 있을거다.

 

[Interface]
PrivateKey = "놔두기"
Address = 10.10.100.x/32
DNS = 1.1.1.1

[Peer]
PublicKey = "Opnsense Wireguard의 publickey"
AllowedIPs = 0.0.0.0/0
Endpoint = "Opnsense의 IP":51820
https://docs.opnsense.org/manual/how-tos/wireguard-client.html

추가 버튼을 누르면, 위의 사진과 동일한 화면이 나오고, 공개키, 비밀키만 적힌 화면이 나올텐데 사진 아래의 내용을 복사한 다음 각 정보를 수정하자
이 글에서 맥북(클라이언트)에서 설정하기 위해 나오는 공개키는 클라이언트 공개키 라고 말한다.

[Interface]부분
Address는 서버에서 설정한 IP대역 중에 해당 클라이언트(현재 맥북)에서 사용 할 IP를 골라 기입한다.
서버에서 10.10.100.1/24로 했기 때문에 10.10.100.2~254사이의 숫자를 입력하면 되고 서브넷은 32로 해당 IP를 고정한다.
본인은 10.10.100.2/32로 결정
DNS는 본인이 하고 싶은 DNS서버를 기입(본인은 구글DNS)

[Peer]부분
PublicKey는 서버 공개키를 붙여넣는다.
Endpoint는 서버의 IP를 기입하고 뒤에 포트는 본인이 설정한 포트를 기입한다.(현재 설정에서는 51820)을 그대로 사용한다.

저장을 누르자

 

서버로 돌아와서 [VPN] - [WireGuard] - [EndPoint] 부분에서 추가를 선택하여 클라이언트 공개키를 기입하고, 위에서 설정한 IP를 Allowd IPs에 기입한다음 저장

 

다시 [VPN] - [WireGuard] - [Local]로 넘어와서 기존에 설정 해 둔 것을 수정하러 들어간 뒤, Peer부분을 위(EndPoint)에서 등록 한 컴퓨터를 선택하고 저장한다.

 

[interfaces] - [Assignments]로 접속 한 다음 Wireguard 인터페이스를 추가한다. 본인은 인터페이스 명칭을 WG로 만들었다.
바로 [interfaces] - [WG]로 들어가서 인터페이스 활성화를 시켜주자 다른 설정을 건드릴 부분은 없다.

[Firewall] - [Rules] - [WAN]에 접속 하여 외부에서 51820으로 들어올 수 있게 열어놓아야 정상적인 방화벽 접속이 가능하다.

 

마지막 단계이다. VPN접속하여 인터넷 사용을 위해서 아웃바운드 정책을 만들어 줘야한다.
[Firewall] - [NAT] - [Outbound]에서 WAN인터페이스의 WG net(WireGuard network)가 다른 어디든 갈 때 interface address(wan 주소)로 보낸다? 라는 느낌으로 설정 해주고 저장한다.

이제 클라이언트(PC)에서 접속 테스트를 해 본다.

List Configuration 에서 Transfer와 Received가 정상적으로 트래픽이 올라간다면 정상적이다.
처음에 received가 안올라가서 뭘까 했는데 NAT설정이 문제거나, 방화벽 룰에 허용이 되어 있지 않은 것이 대부분의 원인 이였다.
transfer는 Wan의 UDP 51820을 열어둬서 패킷이 계속 올라갈 것이다.

반응형

댓글