We are pleased to welcome Matthew Grooms as our newest pfSense committer. As the developer of the Shrew Soft VPN client and an ipsec-tools developer, he brings a vast knowledge of IPsec to our development team.
Matthew recently committed some great IPsec improvements to 1.3. He provided the following, outlining these changes.
- Split IPsec configuration into phase1 and phase2
- Allow for multiple phase2 configurations for a single phase1 – this means you no longer have to create parallel tunnels for routing multiple subnets between two sites.
- Enable a broader range of ID types to be specified
- Improve options for variable length key cyphers ( Blowfish & AES )
- Proper handling of address vs subnet negotiations in phase2
- Introduce Hybrid, Xauth and modecfg support for remote access
- Update Mobile access to allow for more secure policy generation
- Update Mobile access configuration to define modecfg-attributes
- Introduce initial support for user authentication
- NAT-Traversal (NAT-T)
Remaining To Complete
- Improve user management interface for mobile clients
- Introduce RADIUS and LDAP support for extended auth
- Improve IPsec SPD/SAD management to not purge active SAs on reload
- Improve certificate management for IPsec configurations
- Look into support for dyndns -> dyndns IPsec peers
For those not exceptionally familiar with IPsec, the above lists may not tell you much of anything. More information on usage and what all this means will come in the future.
New tunnels page
New mobile clients screen
New mobile clients phase 1 edit screen
New mobile clients phase 2 edit screen
Trying it out
This work is currently available in 1.3 snapshots. We encourage you to provide feedback on the mailing list or 1.3 board on the forum if you try it.
Many thanks to Matthew for all his work on this! When completed, this will bring the most capable IPsec implementation of any open source firewall distribution to pfSense – by far. It will also provide a standards-compliant IPsec solution better than most commercial firewalls (what exists in 1.2 is already better than a number of them).