This is an old revision of the document!
Table of Contents
NORD VPN on opnSense
Setting up NordVPN on an opnsense router is poorly documented (several years old) and assumes all LAN traffic will be pushed through Nord. We have a different need in that we have a Net-2-Net (Site-to-Site) VPN to our office that should not go through the Nord connection. That was interesting, or as my friend David said, “a foot and anvil situation”.
This document will take it step by step, and you can feel free to stop any time you are happy with the result. Also, note that one of our routers also uses a Multi-WAN setup (for failover), and that has not been tested at this time.
Overview
Note: This document has been specifically written for the new OpenVPN setup which can be used in 2025, and will be the only one available in 2026.
Note: This document assumes you have a second VPN client created that you wish to route to bypass the NordVPN connection. The same procedure can be used to bypass the VPN for other uses, but the example is for a second VPN that should handle some well defined subset of the network traffic. If that is not a need, you can simply stop when you get to that section.
Note: This document assumes you have a working opnSense firewall/router. There are other documents on how to do that. We also assume you have a valid NordVPN account.
- Set Up NordVPN
- Configure NordVPN as an OpenVPN instance
- Test
- Set up a NordVPN interface
- Create an Outbound NAT entry to correctly NAT LAN traffic through the NordVPN
- Create a firewall rule to force all LAN traffic to use NordVPN
- Test
- Set up new interface for secondary VPN (section is optional)
- Create an alias containing all IP subnets you want handled via the secondary VPN
- Create Outbound NAT entry to correctly NAT LAN traffic destined for alias through secondary VPN
- Create a firewall rule to force LAN traffic destined for subnets in alias through secondary VPN
Set up NordVPN
While the Nord site has some instructions, they are really difficult to follow and have a lot of questions. Instead, we'll download a copy of the OpenVPN configuration file Nord provides, and get the username and password. With this information, we can create an OpenVPN Client instance in opnSense.
Get NordVPN information
- Log into your NordVPN account at https://nordaccount.com/
- Go to Advanced Settings (you may need to scroll down) and select Set up NordVPN Manually
- Get credentials
- Select Credentials tab
- you may have to validate via e-mail
- copy your username and password to a secure file on your computer
- Get openVPN configuration file
- Go to the Server Recommendations tab
- If you do not want to use the recommended server, select one from the list below
- If you want one of the servers not in your location, Select the OpenVPN Config Files tab
- Click Get Setup Configuration button (big blue button, as this is being written)
- Select OpenVPN (default)
- Select UDP or TCP (I prefer UDP for speed, choose TCP for stability)
- Save that file someplace convenient
Set up OpenVPN connection
- Open both documents you got from Nord (credentials, and open vpn configuration file)
- Log into your opnSense router
- Copy Nord Certificate of Authority
- Go to System | Trust | Authorities
- Add new (orange plus sign)
- Method: Import an existing Certificate Authority
- Description: NordCA (or anything memorable)
- Locate
- Go to VPN | OpenVPN | Instances
- Click Static Keys tab
- Click plus sign to add a new key
- Give it a good Description (I used 'NordVPN - ' and the URL to the endpoint server)
- Set Mode to auth
- open the ovpn file
- Locate block beginning with <tls-auth> and ending with </tls-auth>
- Copy everything between those lines (do not include the <tls-auth> stuff, but do include everything else)
- Paste contents of the <tls-auth> block from th ovpn file into Static Key
- Click Save button