Overview
Today we will be going over how to create a Site to Site VPN between a Fortigate Appliance and a PFSense Firewall. Below is a overview of the Topology we are got to be using

Fortigate
VPN Tunnel
- Login to your Fortigate Appliance
- Under VPN > IPSec Wizard
Name the Tunnel your prefered name and select Custom 
Configure the VPN Tunnel settings
a) Set the Remove Gateway to the WAN IP of your PFSense Firewall
b) Set the Interface to your WAN interface
c) Enable NAT Traversal

Configure Authentication
a) Set the Authentication Method to Pre-shared Key
b) Enter a Pre-shared Key
c) Select IKE version 2

Configure Phase 1 Proposal
a) Encryption: AES128
b) Authentication: SHA256
c) Diffie-Hellman Group: 14
d) Key Lifetime: 28800

Configure Phase2 Configuration
a) Configure the Phase2 Name
b) Configure the Local Address
c) Configure the Remove Address

Configure the Phase2 Proposal
a) Encryption: AEC128
b) Authentication: SHA2556
c) Enable Replay Detection
d) Enable Pefect Forward Secrecy (PFS)
e) Diffie-Hellman Group: 14
f) Enable Auto-negotiate
g) Seconds: 3600

Security Policy
Configure a Policy to allow traffic from LAN to our IPSec Tunnel
a) Incoming Interface: LAN Network Interface
b) Outgoing Interface: Our IPSec Tunnel
C) Source: All
d) Destination: All
e) Services: All
f) Action: ACCEPT
g) Disable NAT

Configure a policyt to allow traffic coming from our IPSec tunnel to our LAN
NOTE: This must be a seporate policy and cannot be combined with our first Policy
a) Incoming Interface: our IPSec Tunnel
b) Outgoing Interface: Our LAN Network Interface
C) Source: All
d) Destination: All
e) Services: All
f) Action: ACCEPT
g) Disable NAT


Static Route
- Navigate to Network > Routing > Static Routes > Create New

PFSense
VPN Tunnel
- Log into PFSense and naviagte to VPN > IPSec
- Select Add P1
Configure the Phase 1 Configuration
a) Set Interface to WAN
b) Set Remote Gateway to the WAN IP of your Fortigate Appliance

Configure Phase 1 Authentication
a) Authentication Method: Mutual PSK
b) Enter the Pre-Shared key you created in Fortigate
c) Confgigure the Encryption Algorithm as follows
- Key Length: 128 bit
- Hash: SHA256
- DH Group: 14 (2048 bit)

- Configure the Life Time

- Add a P2

Configure the P2 Network Configuration
a) Mode: Tunnel IPv4
b) Local Network: Configured to your LAN Network for this firewall
C) Remote Network: Configure the LAN Network for your Fortigate Firewall

Configure the Phase 2 Proposal
a) Encryption Algorithms: AES 128 bits b) Hash Algorithms: SHA256 c) PFS Key Group: 14 (2048bit)

- Configure Life Time

Security Policy
If you would like to be able to access everything behind the PFSense Firewall. you will need to create a Default allow any any rule

Static Route
There is No Static Routes Required on the PFSense Firewall