The PLUTO_MARK_IN and PLUTO_ESP_ENC environment variables can be used in a user-specific updown script to set marks on inbound ESP or ESP_IN_UDP packets.
The openssl plugin now supports X.509 certificate and CRL functions. The use of the Online Certificate Status Protocol (OCSP) still requires the x509 plugin, though. X.509 attribute certificate handling rely on the x509 plugin as well.
OCSP/CRL checking in IKEv2 has been moved to the revocation plugin, enabled by default. Plase update manual load directives in strongswan.conf.
RFC3779 ipAddrBlock constraint checking has been moved to the addrblock plugin, disabled by default. Enable it and update manual load directives in strongswan.conf, if required.
Issue a warning if explicit load lists are used. Since the number of pluto and charon plugins are increasing steadily with each release and explicit load lists might become obsoleted, a warning is now issued by ipsec starter if explicit load lists are found in strongswan.conf since we don't recommend their use for inexperienced users. Experts read on here.
The pki utility supports CRL generation using the --signcrl command.
The ipsec pki --self, --issue and --req commands now support output in PEM format using the --outform pem option.
The major refactoring of the IKEv1 Mode Config functionality now allows the transport and handling of arbitrary Mode Config attributes.
The RADIUS proxy plugin eap-radius now supports multiple servers. Configured servers are chosen randomly, with the option to prefer a specific server. Non-responding servers are degraded by the selection process.
The ipsec pool tool manages arbitrary configuration attributes stored in an SQL database. ipsec pool --help gives the details.
The new eap-simaka-sql plugin acts as a backend for EAP-SIM and EAP-AKA, reading triplets/quintuplets from an SQL database.
The High Availability plugin now supports a HA enabled in-memory address pool and Node reintegration without IKE_SA rekeying. The latter allows clients without IKE_SA rekeying support to keep connected during reintegration. Additionally, many other issues have been fixed in the ha plugin.
Fixed a potential remote code execution vulnerability resulting from the misuse of snprintf(). The vulnerability was introduced with the strongswan-4.3.3 release and is exploitable by unauthenticated users. Patches for all releases starting with 4.3.3 are available.
The IKEv2 High Availability plugin has been integrated. It provides load sharing and failover capabilities in a cluster of currently two nodes, based on an extend ClusterIP kernel module (for details see HighAvailability). The development of the High Availability functionality was sponsored by secunet Security Networks AG.
Added IKEv1 and IKEv2 configuration support for the AES-GMAC authentication-only ESP cipher. Our aes_gmac kernel patch or a Linux 2.6.34 kernel is required to make AES-GMAC available via the XFRM kernel interface.
Added support for Diffie-Hellman groups 22, 23 and 24 to the gmp, gcrypt and openssl plugins, usable by both pluto and charon. The new proposal keywords are modp1024s160, modp2048s224 and modp2048s256. Thanks to Joy Latten from IBM for her contribution.
The IKEv1 pluto daemon supports RAM-based virtual IP pools using the rightsourceip directive with a subnet from which addresses are allocated.
The ipsec pki --gen and --pub commands now allow the output of private and public keys in PEM format using the --outform pem command line option.
The new DHCP plugin queries virtual IP addresses for clients from a DHCP server using broadcasts, or a defined server using the charon.plugins.dhcp.server strongswan.conf option. DNS/WINS server information is additionally served to clients if the DHCP server provides such information. The plugin is used in ipsec.conf configurations having rightsourceip set to %dhcp.
A new plugin called farp fakes ARP responses for virtual IP addresses handed out to clients from the IKEv2 daemon charon. The plugin lets a road-warrior act as a client on the local LAN if it uses a virtual IP from the responders subnet, e.g. acquired using the DHCP plugin.
The existing IKEv2 socket implementations have been migrated to the socket-default and the socket-raw plugins. The new socket-dynamic plugin binds sockets dynamically to ports configured via the left-/rightikeport ipsec.conf connection parameters.
The Android charon plugin stores received DNS server information as "net.dns" system properties, as used by the Android platform.