OpenVPNServer

class openvpn_server.OpenVPNServer(config, openvpn_binary='openvpn', runtime_base_dir=None, privesc_binary='sudo', startup_timeout=2)[source]

Class wrapping OpenVPN instance

Parameters
  • config (OpenVPNConfig) –

  • openvpn_binary (str) –

  • runtime_base_dir (Optional[Path]) –

  • privesc_binary (Optional[str]) –

  • startup_timeout (int) –

__init__(config, openvpn_binary='openvpn', runtime_base_dir=None, privesc_binary='sudo', startup_timeout=2)[source]

Spawn new OpenVPN instance, wait for it and allow for easy exiting

Parameters
  • config (OpenVPNConfig) – Object with OpenVPN configuration to be used.

  • openvpn_binary (str) – Callable name (or path) of OpenVPN binary to be used.

  • runtime_base_dir (Optional[Path]) – Optional Path object of dir to store various files related to our instance. Will be created if needed.

  • privesc_binary (Optional[str]) – Callable name (or path) of binary allowing to execute openvpn_binary with elevated priviledges to be used.

  • startup_timeout (int) – Wait up to startup_timeout seconds for OpenVPN instance to be ready after spawning it. Too small value can lead to orphaned OpenVPN instances.

Raises

OVPNStartupTimeoutException: OVPN was not ready in expected time.

get_config()[source]

Get OpenVPN config of this instance

Return type

OpenVPNConfig

property is_running

Check if OpenVPN is currently running

Return type

bool

property state

Get OpenVPN instance state

“NOT_RUNNING” means that the instance is not currently running. Other values have meaning as defined in https://openvpn.net/community-resources/management-interface/ under ‘COMMAND – state’

Return type

str

stop(timeout=5)[source]

Stop OpenVPN instance

Politely asks OVPN instance to exit.

Parameters

timeout (int) – After telling OVPN to stop wait up to timeout seconds for it to exit.

Raises

OVPNStopTimeoutException: OVPN did not exit in expected time.

Return type

None