Omdat ik zoveel buzz heb gehoord over WireGuard en sterk mijn twijfels erover heb, had ik besloten om het zelf eens te testen. pfSense werd gebruikt als VPN server waar een lokaal netwerk achter hangt met een target server met iperf3 geïnstalleerd. Het zijn 2 verschillende firewalls want voor een of andere reden wou de WG plugin nooit werken op de andere firewall.
Er werd gekozen voor een split-tunnel methode waarbij we x aantal subnets routen (192.168.25.0/24 & 192.168.30.0/24) over de VPN tunnel. De VM's hebben ieder 4 vCPUs/4GB toegewezen. Voor de OpenVPN server heb ik gekozen voor AES256GCM/SHA256 als de cipher suites.
/f/image/rFOKcIj5RGXRNUZlSxsII7gY.png?f=fotoalbum_large)
OpenVPN 2.5.2 als client (322Mbps):
/f/image/dAZQxIRezaFCGbmgOS1Tjdio.png?f=fotoalbum_large)
OpenVPN Connect 3.3.2 als client (637Mbps):
/f/image/TDUV5RQZ4Z9rnRrJD0ypGZLn.png?f=fotoalbum_large)
WireGuard als client (762Mbps):
/f/image/XKyxX3y6IOxwapQ1H2Lm2tMg.png?f=fotoalbum_large)
Verder heb ik het ook getest met verschillende OpenVPN implementaties, bv de OpenVPN Access Server en de prestaties zijn aanzienlijk lager. Dus je gaat het erg ver moeten zoeken als je het maximale eruit wil halen. Dit nadeel heb je niet met WireGuard omdat de implementaties vrijwel hetzelfde zullen zijn van vendor tot vendor. Persoonlijk vind ik de prestaties van OpenVPN goed genoeg en het gemis aan MFA met WireGuard (bv. push notificaties werken met PKI/TLS) maakt het voor mij de mindere veilige optie.
Het opzetten van de VPN server en client is wel gemakkelijker met OpenVPN - als we het strict hebben over pfSense's implementatie. Je volgt een wizard waar je wat namen verzint voor een CA certificaat, een tunnel netwerk instelt, split-tunnel access routes en dat is het enige dat je echt moet doen. Er is ook een client export tool beschikbaar die .ovpn files inbakt in een .exe installatiebestand - wat het erg gemakkelijk maakt voor een client.
WireGuard opzetten vond ik iets moeilijker omdat ik het nooit eerder heb gedaan in pfSense. Aan de server kant heb je dan 'AllowedIPs' waar je het host adres toevoegt met een /32 mask en vreemd genoeg is het een adres uit het tunnel netwerk (172.16.56.0/24). Maar aan de client kant stelt 'AllowedIPs' totaal iets anders voor, namelijk de split-tunnel access routes of als je een default-route (0.0.0.0/0) ingeeft forceer je alles door de tunnel. Het lijkt me wel logischer dat dit ingesteld wordt op de server en niet vanuit de client. De client configuratie is wel simpel als je het zou vergelijken met een .ovpn file.
Er werd gekozen voor een split-tunnel methode waarbij we x aantal subnets routen (192.168.25.0/24 & 192.168.30.0/24) over de VPN tunnel. De VM's hebben ieder 4 vCPUs/4GB toegewezen. Voor de OpenVPN server heb ik gekozen voor AES256GCM/SHA256 als de cipher suites.
/f/image/rFOKcIj5RGXRNUZlSxsII7gY.png?f=fotoalbum_large)
OpenVPN 2.5.2 als client (322Mbps):
/f/image/dAZQxIRezaFCGbmgOS1Tjdio.png?f=fotoalbum_large)
OpenVPN Connect 3.3.2 als client (637Mbps):
/f/image/TDUV5RQZ4Z9rnRrJD0ypGZLn.png?f=fotoalbum_large)
WireGuard als client (762Mbps):
/f/image/XKyxX3y6IOxwapQ1H2Lm2tMg.png?f=fotoalbum_large)
Verder heb ik het ook getest met verschillende OpenVPN implementaties, bv de OpenVPN Access Server en de prestaties zijn aanzienlijk lager. Dus je gaat het erg ver moeten zoeken als je het maximale eruit wil halen. Dit nadeel heb je niet met WireGuard omdat de implementaties vrijwel hetzelfde zullen zijn van vendor tot vendor. Persoonlijk vind ik de prestaties van OpenVPN goed genoeg en het gemis aan MFA met WireGuard (bv. push notificaties werken met PKI/TLS) maakt het voor mij de mindere veilige optie.
Het opzetten van de VPN server en client is wel gemakkelijker met OpenVPN - als we het strict hebben over pfSense's implementatie. Je volgt een wizard waar je wat namen verzint voor een CA certificaat, een tunnel netwerk instelt, split-tunnel access routes en dat is het enige dat je echt moet doen. Er is ook een client export tool beschikbaar die .ovpn files inbakt in een .exe installatiebestand - wat het erg gemakkelijk maakt voor een client.
WireGuard opzetten vond ik iets moeilijker omdat ik het nooit eerder heb gedaan in pfSense. Aan de server kant heb je dan 'AllowedIPs' waar je het host adres toevoegt met een /32 mask en vreemd genoeg is het een adres uit het tunnel netwerk (172.16.56.0/24). Maar aan de client kant stelt 'AllowedIPs' totaal iets anders voor, namelijk de split-tunnel access routes of als je een default-route (0.0.0.0/0) ingeeft forceer je alles door de tunnel. Het lijkt me wel logischer dat dit ingesteld wordt op de server en niet vanuit de client. De client configuratie is wel simpel als je het zou vergelijken met een .ovpn file.