swanctl

The swanctl command is a powerful tool in the strongSwan suite used for managing and configuring IPsec and IKEv2 connections. It allows you to load, list, initiate, terminate, and monitor VPN connections based on the configuration files in the /etc/swanctl/ directory.

Purpose

swanctl provides a command-line interface for managing the strongSwan IPsec daemon (Charon). It interacts with the configurations defined in swanctl.conf and other related files in /etc/swanctl/.

Common swanctl Commands

  1. Loading Configuration

    • Load all configurations: This command reads all configurations defined in /etc/swanctl/ and loads them into the strongSwan daemon.

      sudo swanctl --load-all
  2. Listing Configurations and Status

    • List all connection configurations: Displays the connection profiles defined in the configuration files.

      sudo swanctl --list-conns
    • List active security associations (SAs): Shows currently active IPsec tunnels and their status.

      sudo swanctl --list-sas
    • List loaded pools: Lists IP address pools loaded into strongSwan.

      sudo swanctl --list-pools
  3. Managing Connections

    • Initiate a connection: Manually start a VPN connection based on a specific child SA name.

      sudo swanctl --initiate --child <child-sa-name>
    • Terminate a connection: Manually stop a VPN connection based on a specific child SA name.

      sudo swanctl --terminate --child <child-sa-name>
  4. Managing Certificates and Keys

    • List certificates: Display all loaded certificates.

      sudo swanctl --list-certs
    • Load a certificate: Load a specific certificate file.

      sudo swanctl --load-creds
  5. Debugging and Logging

    • Show active log levels: Display the current logging levels and modules.

      sudo swanctl --loglevel

Example Usage of swanctl

Loading Configuration

To load all configurations, use:

Listing Connections

To list all configured connections:

Example output:

Initiating and Terminating Connections

To initiate a connection named net:

To terminate the same connection:

Configuration in /etc/swanctl/

swanctl.conf

Here is a detailed example of a swanctl.conf configuration file:

Conclusion

The swanctl command is a crucial tool for managing strongSwan's IPsec and IKEv2 VPN connections. By leveraging the configurations defined in /etc/swanctl/, administrators can easily load, initiate, and monitor secure VPN connections. Proper understanding and usage of swanctl commands ensure efficient and secure management of VPN infrastructure.

Last updated