IPsec/IKEv2 Remote-Access VPN server guide
Brief documentation how to setup a IPsec/IKEv2 Remote-Access VPN server with DANOS.
General IKE/control-plane settings
For production IPsec RA VPN server deployment it is essential to tune the IKE control-plane. For details on this, see the IPsec/IKE manual
Usage of multiple server profiles
The RAVPN Server supports the ability to configure multiple server profiles. This might be useful for providing multi-tenant VPN access or providing VPN access with different authentication methods. To assign the connecting clients to the appropriate server profile there are two options available:
based on server (local) interface address
matching the client's identify/credential
EAP-TLS authentication method for Windows, macOS, ...
To support a large variety of native desktop/mobile OS IPsec RA VPN clients, the suggestion is to use EAP-TLS as authentication method, rather the IKE X.509 authentication method:
# EAP-TLS authentication configuration
set security vpn ipsec remote-access-server profile TENANT1 authentication mode eap-tls
# End-entity/Host certificate of the server, used for EAP-TLS
set security vpn ipsec remote-access-server profile TENANT1 authentication x509 cert-file /config/auth/server1.pem
# Private key of the server certificate, used for EAP-TLS
set security vpn ipsec remote-access-server profile TENANT1 authentication x509 key file /config/auth/server1.key
The IPsec RA VPN server then will provide following TLS cipher-suites as part of the EAP-TLS negotiation:
TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256
TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384
TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256
TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256
TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384
TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384
... those are known to work with Windows 10, macOS 10.3+ and Linux Network Manager/Strongswan.
Server configuration sample
This example topology provides access to the "Cooperated Network" 10.56.48.0/20 by providing two IPsec RA VPN server instances.
Each IPsec RA VPN server instance has a dedicated Virtual-IP address pool, which is not overlapping, due to missing synchronization between those two pools. Virtual IP addresses get assigned to each individual client during the initial VPN tunnel negotiation. The Virtual IPs get released once the client disconnects. As part of the VPN tunnel negotiation the IPsec RA VPN server can also push down DNS server addresses which should be used by the client inside the VPN. The request and assignment of Virtual IP address is the major difference between IPsec site-to-site and IPsec RA VPN setups from IKE perspective. Everything else, including ESP, is identical.
Every time a client connects, the server will first perform a basic integrity check of the provided client certificate: is the certificate expired? is the certificate issued by a trusted CA? Finally it will perform a certificate revocation check either via OCSP or CRL, to check the central CA database of revoked certificates. When using X.509 authentication, certificate revocation is the only way to revoke VPN access for an individual client. The server can configure a reauthentication time, which forces the client to perform a IKE re-authentication within a certain time window, to enforce expiration or revocation of VPN client access.
On the IPsec RA VPN server, there is only need for following certificate files: Host/End-entity certificate for the sever itself, the corresponding private key and the Root certificate. It is highly recommend to not store any further private keys on a server instance, other then the server's own private key!