How to choose, use and configure a VPN in pfSense (My opinion)

Recommended VPN Providers for pfSense

pfSense is a FreeBSD-based network appliance with configuration driven almost entirely through a web GUI. There’s no traditional desktop environment—administrators typically SSH in or use the GUI—and under the hood it uses the pkg package manager for software installations. Users tend to be network engineers, security professionals or power users running dedicated hardware, virtual machines or small appliances. pfSense’s strengths include a finely-tuned firewall, flexible routing, built-in OpenVPN support and a third-party WireGuard package.

When selecting a commercial VPN for pfSense, you want providers that:

  • Offer OpenVPN configuration bundles or native WireGuard support
  • Have clear instructions or config files that work without major tweaking on FreeBSD
  • Maintain a large global server network for geo-flexibility
  • Observe a strict no-logs policy and strong encryption

Based on those criteria, the most suitable VPNs for pfSense are:

  • Mullvad VPN – native WireGuard support and straightforward FreeBSD/OpenVPN configs
  • NordVPN – extensive OpenVPN server selection official WireGuard (NordLynx) bundles
  • Surfshark – modern WireGuard profiles and easy-to-import OpenVPN files

Comparison Table of Top VPNs for pfSense

Provider Protocols Global Servers No-Logs Policy pfSense Support Learn More
Mullvad VPN WireGuard, OpenVPN 750 in 36 countries Strict no-logs, anonymous account IDs Official WireGuard package amp OpenVPN profiles Mullvad VPN Site
NordVPN OpenVPN, WireGuard (NordLynx), IPsec 5,600 in 60 countries No logs, audited .ovpn bundles amp NordLynx config support NordVPN Site
Surfshark WireGuard, OpenVPN, IKEv2 3,200 in 100 countries No logs, RAM-only servers WireGuard amp OpenVPN bundles Surfshark Site

Installation and Configuration Guides

Mullvad VPN (WireGuard)

Mullvad’s WireGuard profiles work seamlessly on pfSense once you install the WireGuard package. Below are CLI steps followed by GUI instructions.

1. Install the WireGuard Package

pkg update
pkg install pfSense-pkg-wireguard

After installation, reload the GUI or go to System gt Package Manager gt Installed Packages to confirm. Then:

  1. Navigate to VPN gt WireGuard gt Local and click Add.
  2. Generate a new key pair, give the tunnel a name (e.g., mullvad-wg), then save.
  3. Go to VPN gt WireGuard gt Peers and click Add.
  4. On the Mullvad app or website, generate a WireGuard config for your account. Copy the peer public key, endpoint (e.g. 10.64.0.1:51820) and allowed IPs (0.0.0.0/0, ::/0), then save the peer.
  5. Assign the tunnel as an interface: go to Interfaces gt Assignments, add the new wg0 port and enable it (give it an IP from the Tunnel Address field).
  6. Under Firewall gt Rules gt [Your LAN] allow traffic to the WireGuard interface or create outbound NAT rules if you use manual NAT.

NordVPN (OpenVPN Client)

NordVPN provides OpenVPN configuration files in .ovpn format. You can upload these to pfSense and import via the GUI.

1. Download amp Upload Configuration

  1. From NordVPN’s config page, download the Linux OpenVPN config ZIP.
  2. Transfer one server file to pfSense (example below uses SCP):
scp ~/Downloads/us1234.nordvpn.com.udp1194.ovpn admin@192.168.1.1:/tmp

2. Import amp Configure Client

  1. In the GUI go to VPN gt OpenVPN gt Clients and click Add.
  2. Choose Import from file, browse to /tmp/us1234.nordvpn.com.udp1194.ovpn.
  3. Enter your NordVPN Username amp Password (found in your dashboard).
  4. Save and apply changes.
  5. Assign the OpenVPN client to an interface under Interfaces gt Assignments.
  6. Create a LAN firewall rule to route desired traffic through the new gateway (found under Status gt Gateways).

Surfshark (OpenVPN or WireGuard)

Surfshark provides both OpenVPN and WireGuard config files. The process mirrors that of NordVPN, or you can install amp configure WireGuard as shown above for Mullvad.

1. Using OpenVPN

  1. Download the Surfshark OpenVPN config from Surfshark’s Linux page.
  2. Upload the desired .ovpn file via SCP or the pfSense console.
  3. Import it under VPN gt OpenVPN gt Clients, fill in your Surfshark credentials and save.
  4. Assign that client to an interface, open the firewall, and set up NAT as needed.

2. Using WireGuard

Follow the same WireGuard steps under the Mullvad section—just replace the peer public key, endpoint and allowed IPs with the values from your Surfshark account panel.

With these setups, pfSense can route all your LAN or individual device traffic through a secure, audited VPN provider. Whether you choose WireGuard’s modern simplicity or OpenVPN’s maturity, these three services integrate smoothly into pfSense’s FreeBSD-centric architecture.

Download TXT



Leave a Reply

Your email address will not be published. Required fields are marked *