pfSense
This tutorial explains how to set up a policy-based or route-based IPsec VPN with a pfSense device.
 (Policy-based only) LAN interface configuration
- From the pfSense WebGUI, select Interfaces > LAN.
- Choose an interface from the Available network ports list.
- Select Add. The General Configuration dialog displays.
Refer to the image below for guidance on which values to use.

| Field | Value | 
|---|---|
| Enable | ✔️ Enable interface | 
| Description | LAN | 
| IPv4 Configuration Type | Static IPv4 | 
| IPv6 Configuration Type | Static IPv6 | 
| MSS | 1446 | 
 Phase 1
Policy-based configuration

| Field | Value | 
|---|---|
| Description | Name | 
| Key Exchange Version | IKE v2 | 
| Internet Protocol | IPv4 | 
| Interface | WAN | 
| Remote Gateway | <Anycast IP provided by Cloudflare> | 

| Field | Value | 
|---|---|
| Life Time | 28800 | 
| Rekey Time | 14400 | 
| Reauth Time | 0 | 
Route-based configuration

| Field | Value | 
|---|---|
| Description | Name | 
| Key Exchange Version | IKE v2 | 
| Internet Protocol | IPv4 | 
| Interface | WAN | 
| Remote Gateway | <Anycast IP provided by Cloudflare> | 

| Field | Value | 
|---|---|
| Life Time | 28800 | 
| Rekey Time | 14400 | 
| Reauth Time | 0 | 
 Phase 2
Policy-based configuration

| Field | Value | 
|---|---|
| Description | Name | 
| Mode | Tunnel IPv4 | 
| Local Network | <Local Network to be tunneled> | 
| NAT/BINAT translation | None | 
| Remote Network | Remote network available via the tunnel | 

| Field | Value | 
|---|---|
| Protocol | ESP | 
| Encryption Algorithm | ✔️ AES128-GCM, 128 bits | 
| PFS key group | 14 (2048 bit) | 

| Field | Value | 
|---|---|
| Life Time | 3600 | 
| Rekey Time | 3240 | 
| Rand Time | 360 | 
| Automatically ping host | Specify an IP address available via the tunnel. Refer to the Description field for more information. | 
Route-based configuration


| Field | Value | 
|---|---|
| Description | Name | 
| Mode | Routed (VTI) | 
| Local Network | <Local Tunnel Inside IP> | 
| Remote Network | <Remote Tunnel Inside IP> | 

| Field | Value | 
|---|---|
| Protocol | ESP | 
| Encryption Algorithm | ✔️ AES128-GCM, 128 bits | 
| PFS key group | 14 (2048 bit) | 

| Field | Value | 
|---|---|
| Life Time | 3600 | 
| Rekey Time | 3240 | 
| Rand Time | 360 | 
| Automatically ping host | Specify an IP address available via the tunnel. Refer to the Description field for more information. | 
 (Route-based only) Interface assignment
- From the pfSense WebGUI, select Interfaces > LAN.
- Choose an interface from the Available network ports list.
- Select Add. The General Configuration dialog displays.
Refer to the image below for guidance on which values to use.

| Field | Value | 
|---|---|
| Enable | ✔️ Enable interface | 
| Description | LAN | 
| IPv4 Configuration Type | Static IPv4 | 
| IPv6 Configuration Type | Static IPv6 | 
| MSS | 1446 | 
- From the pfSense WebGUI, select Interfaces > Assignments.

- From Available network ports, select + Add.

- Under Interface, select OPT1.

- Ensure Enable interface is selected.
- For Description, add a description to help you identify the interface.
- For MSS, enter 1446, which should be the same as the LAN interface.
- Select Save to save your changes when you are done.
 Routing configuration
- From the pfSense WebGUI, select System, Routing, Static Routes.
- On the Static Routes page, select Add.
- Create static routes for all network that will be routed via the tunnel with Gateway as the IPsec VTI interface.

 Firewall configuration
- From the pfSense WebGUI, select Firewall Rules.
- Select LAN.
- Ensure a rule exists that allows traffic from LAN to IPsec.
- Select Save when you are done.
If you need to allow traffic from IPsec to LAN, you will need to create rules that allow this.