Warning
WireGuard has been removed from the base system in releases after pfSense Plus 21.02-p1 and pfSense CE 2.5.0, when it was removed from FreeBSD.
If upgrading from a version that has WireGuard active, the upgrade will abort until all WireGuard tunnels are removed. For more details, see the Release Notes
WireGuard is available as an experimental add-on package on pfSense Plus 21.05, pfSense CE 2.5.2, and later versions. The settings for the WireGuard add-on package are not compatible with the older base system configuration.
Note
The WireGuard package is still under active development. Follow the development progress on the developer’s YouTube channel
WireGuard and Rules / NAT¶
There are multiple concerns with firewall rules for WireGuard.
External Traffic¶
Firewall rules must pass traffic on WAN to the WireGuard Listen Port for a
tunnel if remote WireGuard peers will initiate connections to this firewall. The
protocol is always UDP, and the default port is 51820
.
Tunneled Traffic¶
Firewall rules must pass traffic on WireGuard interfaces to allow traffic inside the VPN, assuming remote connections should be allowed to local internal hosts. Use rules on the WireGuard group tab or rule tabs for assigned interfaces.
Rules on the WireGuard group tab are considered first and can match traffic on any WireGuard interfaces whether or not they are assigned.
Assigned WireGuard interfaces get their own individual rule tabs and will only
match traffic on that specific tunnel interface. Rules on assigned WireGuard
interface tabs also get reply-to
which ensures that traffic entering a
specific assigned WireGuard interface exits back out the same interface. Without
that, return traffic will follow the default gateway.
Warning
Rules on the WireGuard group tab are matched first, so ensure rules on the
group tab are removed, disabled, or do not match traffic which requires
reply-to
.
NAT functions on WireGuard interfaces once assigned. Outbound NAT, 1:1 NAT, and port forwards all work as expected.
Note
The firewall will automatically perform Outbound NAT on traffic exiting assigned WireGuard interfaces when using the default Automatic Outbound NAT mode (See Outbound NAT).