4 min read

opnsense로 NordVPN 연결

NordVPN은 WireGuard 프로토콜을 이용하여 NordLynx 만들었다. 이말은 WireGuard을 사용할수 있다는 말이다.

그치만 좀 더 편하게 사용하기 위해서는 집에 있는 라우터인 OPNsense 를 사용하여 특정 영역 아이피로 갈경우 특정 나라의 VPN을 자동으로 사용할수 있다는 점이다.

OPNsense에 WireGuard 설치해야하지만 다행히 WireGuard를 플러그인을 지원한다.

그럼으로 준비해야하는건 NordVPN의 private KEY와 OPNsense 라우터 세팅만 하면된다.

  1. privateKey 얻기

아래 사이트에 들어가 access-token을 얻습니다. 저같은 경우는 30일 만료가 만료안함을 선택하였습니다.

https://my.nordaccount.com/dashboard/nordvpn/access-tokens/

엑세스 토큰을 얻었다면 아래의 쉘 명령어에서 accessToken을 변경하여 private key를 얻습니다.

#!/bin/bash

# Access token 설정
accessToken="<copy-your-token>"

echo "Getting the Private key..."

# NordVPN API 요청 (curl 사용)
response=$(curl -s -u "token:${accessToken}" "https://api.nordvpn.com/v1/users/services/credentials")

# private key 추출 (jq 사용)
privateKey=$(echo "$response" | jq -r '.nordlynx_private_key')

# 결과 출력
echo "Private Key:"
echo "$privateKey"

이 토큰값을 잘 보관합니다.

그 후 https://nord-configs.selfhoster.nl/ 에 들어가 원하는 프로필을 다운받으면 됩니다.

제가 받은것 일본 429서버이며 아래와 같습니다.

[Interface]
PrivateKey=
Address=10.5.0.2/16
DNS=103.86.96.100

[Peer]
PublicKey=SAio0Z0suFlRfmydzPdcn6MamqS7Mq4pSOm2YmJkLSs=
AllowedIPs=0.0.0.0/0,::/0
Endpoint=jp429.nordvpn.com:51820
PersistentKeepalive=25

이 값들의 opnsense에 입력을 해줄겁니다.

아래의 처럼

Tnneal address에 10.5.0.2/16을 넣고 private key에는 아까 API로 얻은 키 값을 넣습니다.

다음은 Peer값입니다. Peer 값은 위에 메모에 있는걸 그대로 입력해주면됩니다.

opnsense -> VPN -> WireGuard -> Peer에 추가 해둡니다.

이로써 기본적인 WireGuard의 기본적인건 끝났습니다.

이제 구글이나 특정 사이트에 접속하면 VPN 접속하게 만들어야합니다.

Firewall -> Aliases -> Add 에 눌러 Content를 눌러 아래를 눌러 저는 다음처럼 세팅하였습니다.

Content : https://www.gstatic.com/ipranges/goog.json
Path expression : .prefixes[] | .ipv4Prefix // .ipv6Prefix

인터페이스 추가

Interfaces: Assignments 이동

WireGuard 인스턴스 를 선택하고 + 버튼을 클릭하여 새 인터페이스로 추가합니다.

 

게이트 웨이

System: Gateways: Configuration에 가서 추가

방화벽

Firewall: Rules: LAN 추가