Scripting
Scripting is likely one of the best tools available to an OpenVPN administrator. With the ability to designate both client-side and server-side scripts, OpenVPN can initiate other system responses by opening firewalls, running applications, or even sending a message to an administrator.
One important caveat when writing scripts is the time it takes for a script to complete. OpenVPN is a single-threaded process, which means that while a script is running the entire VPN is blocked to all connected or connecting clients. A slow authentication script can cripple a well-functioning VPN. Plugins are less affected by this, as they do run in a separate thread.
As of Version 2.3.6, OpenVPN supports 13 server-side scripting options and 10 client-side options. The commands with asterisks are setup options, and allow the options that follow to do specific things. The server-side scripts are as follows (in the order of execution):
--setenv*
--setenv-safe*
--script-security*
--up-restart*
...