ext-auth Plugin

Purpose

The ext-auth plugin for libcharon invokes an external script to implement custom authorization rules.

The plugin is disabled by default and can be enabled with the ./configure option

--enable-ext-auth

Implementation

If the plugin is configured, it invokes the command under a shell and evaluates the return value. If the command exits cleanly with an exit code of 0 authorization is granted. Otherwise IKE SA authorization is rejected usually resulting in an AUTH_FAILED notification.

The configured command is invoked under a shell (sh -c) with the following environment variables set:

Variable Description

IKE_UNIQUE_ID

The IKE_SA numerical unique identifier

IKE_NAME

The peer configuration connection name

IKE_LOCAL_HOST

Local IKE IP address

IKE_REMOTE_HOST

Remote IKE IP address

IKE_LOCAL_ID

Local IKE identity

IKE_REMOTE_ID

Remote IKE identity

IKE_REMOTE_EAP_ID

Remote EAP or XAuth identity, if used

Configuration

The ext-auth plugin is configured using the following options in the charon.plugins.ext-auth section of strongswan.conf:

Key Default Description

charon.plugins.ext-auth.script

Script or command to execute