xauth-pam Plugin
Purpose
The xauth-pam plugin for libcharon is an IKEv1 XAuth server backend. It
requests username/password XAuth credentials and verifies them against Pluggable
Authentication Modules (PAM). It may be used for IKEv2 connections via
the eap-gtc plugin.
The plugin is disabled by default and can be enabled with the
./configure option
--enable-xauth-pam
Configuration
The xauth-pam plugin is configured using the following options in the
charon.plugins.xauth-pam
section of strongswan.conf:
| Key | Default | Description | 
|---|---|---|
pam_service  | 
[→]  | 
PAM service to use for authentication.
   | 
session  | 
  | 
Open/close a PAM session for each active IKE_SA  | 
trim_email  | 
  | 
If an email address is received as an XAuth username, trim it to just the username part  | 
By default the plugin uses the PAM service login which should be available
on most systems. But you may create your own service, e.g in /etc/pam.d/ipsec:
#%PAM-1.0 auth required /lib/security/pam_env.so auth sufficient /lib/security/pam_unix.so likeauth nullok auth required /lib/security/pam_deny.so
To use that service, set the pam_service option above to ipsec.
Connections
To authenticate clients with this backend, set:
connections {
  <conn>: {
    remote-rsa {
      auth = pubkey
    }
    remote-xauth {
      auth = xauth-pam
    }
    version = 1
    # ...
  }
}
for traditional XAuth plus RSA. For Hybrid authentication, use
connections {
  <conn>: {
    remote {
      auth = xauth-pam
    }
    version = 1
    # ...
  }
}