EAP (Extensible Authentication Protocol) plugins enable flexible client authentication beyond raw certificates and PSKs. Each plugin implements one EAP method. The method used is negotiated during IKEv2 authentication and controlled by theDocumentation Index
Fetch the complete documentation index at: https://mintlify.com/strongswan/strongswan/llms.txt
Use this file to discover all available pages before exploring further.
auth setting in swanctl.conf.
EAP method reference
| Plugin | auth= value | Use case |
|---|---|---|
eap-md5 | eap-md5 | Simple CHAP-style challenge/response; mostly legacy |
eap-mschapv2 | eap-mschapv2 | Password auth for Windows and Android clients |
eap-tls | eap-tls | Mutual certificate authentication within EAP |
eap-ttls | eap-ttls | TLS tunnel wrapping an inner EAP method |
eap-peap | eap-peap | Microsoft PEAP; inner MSCHAPv2 is most common |
eap-radius | eap-radius | Delegate authentication to an external RADIUS server |
eap-sim | eap-sim | SIM card (GSM) authentication |
eap-aka | eap-aka | UMTS/LTE AKA authentication |
eap-aka-3gpp | eap-aka-3gpp | 3GPP AKA variant |
eap-aka-3gpp2 | eap-aka-3gpp2 | 3GPP2 AKA variant |
eap-gtc | eap-gtc | Generic Token Card (one-time passwords) |
eap-tnc | eap-tnc | Trusted Network Connect posture assessment |
eap-dynamic | eap-dynamic | Method selection based on client proposal |
Configuring EAP in swanctl.conf
On the gateway (responder), set theauth value for the remote peer:
swanctl.conf
EAP-RADIUS
eap-radius proxies the EAP exchange to an external RADIUS server. The charon daemon acts as a NAS (Network Access Server). Any EAP method supported by the RADIUS server can be used transparently.
Basic configuration
strongswan.conf
Multiple RADIUS servers
Use theservers section to define multiple servers with per-server settings:
strongswan.conf
RADIUS accounting
strongswan.conf
Dynamic Authorization Extension (RFC 5176)
DAE allows the RADIUS server to disconnect or re-authenticate sessions:strongswan.conf
RADIUS
Class attributes can be used as group membership identifiers for authorization. Set class_group = yes to compare the Class attribute value against the groups setting in swanctl.conf.EAP-TLS
eap-tls performs mutual certificate authentication inside an EAP exchange. Both client and server present X.509 certificates.
swanctl.conf
strongswan.conf
EAP-TTLS
eap-ttls establishes a TLS tunnel using the server certificate, then runs an inner EAP method inside the tunnel. The client does not need a certificate.
strongswan.conf
EAP-PEAP
eap-peap is Microsoft’s implementation of a TLS-tunneled EAP method, most commonly used with inner MSCHAPv2. It is the standard method for Windows built-in VPN clients using IKEv2.
strongswan.conf
EAP-Dynamic
eap-dynamic selects the EAP method at runtime based on what the client proposes. This lets a single gateway connection support multiple EAP methods without configuring separate connections.
strongswan.conf
swanctl.conf
All EAP methods that
eap-dynamic should be able to select must also be loaded as plugins. For example, to support both eap-tls and eap-mschapv2, both plugins must be present in the load list.EAP-SIM and EAP-AKA
eap-sim and eap-aka authenticate subscribers using SIM card credentials (GSM) or USIM credentials (UMTS/LTE). These are used primarily in mobile operator deployments.
eap-sim: GSM triplet-based authenticationeap-aka: UMTS quintuplet-based authentication with sequence number protectioneap-aka-3gpp/eap-aka-3gpp2: 3GPP and 3GPP2 specific AKA variants
eap-sim-file (flat file), eap-sim-pcsc (PC/SC smart card reader), or eap-simaka-sql (SQL database).