OpenVPNドキュメント

実行中のOpenVPNプロセスの制御

Linux/BSD/Unixで実行している場合

OpenVPNは以下のシグナルを受け入れます。

  • SIGUSR1…条件付き再起動(root権限なしで再起動)
  • SIGHUP…強制再起動
  • SIGUSR2…ログファイルもしくはsyslogへの接続状況の出力
  • SIGTERM, SIGINT…終了

writepidディレクティブを使用するとOpenVPNデーモンのPIDをファイルに書き出す事が出来るので、シグナルの送信先を判別できるようになります。
initscriptを使用してOpenVPNを起動している場合は、スクリプトによってコマンドラインに既に--writepidディレクティブが渡っている可能性があります。


WindowsでGUIから実行している場合

OpenVPN GUIのページを参照してください 。


Windowsでコマンドプロンプトウィンドウから実行している場合

WindowsではOpenVPN設定ファイル ( .ovpn ファイル) を右クリックし、「この構成ファイルで OpenVPN を起動」を選択することで、OpenVPNを起動できます。
この方法で実行すると以下のキーボードコマンドが使用できるようになります。

  • F1…条件付き再起動(TAPアダプタをクローズしたり再びオープンしたりしない)
  • F2…接続状況の表示
  • F3…強制再起動
  • F4…終了

Windowsサービスとして実行している場合

OpenVPNをWindowsサービスとして起動した場合は、以下の方法でのみ制御が可能です。

  • サービスコントロールマネージャー([コントロールパネル]->[管理ツール]->[サービス])での開始/停止
  • 管理インターフェース経由

サーバー起動中の設定の変更

ほとんどの場合、設定の変更にはサーバーの再起動が必要ですが、即時反映可能なファイルを参照するディレクティブが2つあります。
これらはサーバープロセスを再起動する事なく、サーバー上ですぐに有効になります。

client-config-dir
クライアントごとの設定ファイルを格納するディレクトリを設定するディレクティブで、サーバーへの接続のたびにスキャンされます( 詳細はマニュアルページ参照 )。
このディレクトリ内のファイルは変更が即時に反映されるのでサーバーの再起動の必要はありませんが、変更の適用は変更後の新規接続にのみ反映され、既存の接続には反映されないことに注意してください。
既存の接続(または切断されたがサーバーがタイムアウトしていない接続)にも新しい設定を反映させたい場合は、管理インターフェースを使用してクライアントインスタンスオブジェクトをKillする事で再接続され、新しいclient-config-dirファイルが適用されます。

crl-verify
証明書失効リスト(CRL:Certificate Revocation List)ファイルを指定するディレクティブです。
CRLファイルについては証明書の失効のセクションを参照してください。
CRLファイルはリアルタイムで変更可能で、新規接続や既存の接続のSSL/TLSチャネルの再ネゴシエーション(デフォルトでは1時間おき)の際に変更が即時反映されます。
CRLに追加した証明書を使用したクライアント接続を強制終了したい場合は、管理インターフェースを使用してください。


ステータスファイル

デフォルトのserver.confでは以下のように設定されています。

status openvpn-status.log

このファイル (openvpn-status.log)に、現在のクライアント接続のリストが1分ごとに出力されます 。


管理インターフェイスの使用

OpenVPN管理インターフェースは、実行中のOpenVPNプロセスの制御を可能にします。
管理インターフェースは管理ポートにtelnet接続して直接使用することも、 管理インターフェースに接続するOpenVPN GUIを使用して間接的に使用することもできます。

管理インターフェイスを有効にするには、サーバーもしくはクライアントの設定ファイルに以下を追加します。

management localhost 7505

これにより、OpenVPNは管理インターフェースクライアントをTCPポート7505で受け付けるようになります(7505以外の任意の空きポートを使用する事も可能です)。

この状態で、OpenVPN起動後にTelnetクライアントを使って管理インターフェースへの接続が可能となります。
例:

ai:~ # telnet localhost 7505
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
>INFO:OpenVPN Management Interface Version 1 -- type 'help' for more info
help
Management Interface for OpenVPN 2.0_rc14 i686-suse-linux [SSL] [LZO] [EPOLL] built on Feb 15 2005
Commands:
echo [on|off] [N|all] : Like log, but only show messages in echo buffer.
exit|quit : Close management session.
help : Print this message.
hold [on|off|release] : Set/show hold flag to on/off state, or
release current hold and start tunnel.
kill cn : Kill the client instance(s) having common name cn.
kill IP:port : Kill the client instance connecting from IP:port.
log [on|off] [N|all] : Turn on/off realtime log display
+ show last N lines or 'all' for entire history.
mute [n] : Set log mute level to n, or show level if n is absent.
net : (Windows only) Show network info and routing table.
password type p : Enter password p for a queried OpenVPN password.
signal s : Send signal s to daemon,
s = SIGHUP|SIGTERM|SIGUSR1|SIGUSR2.
state [on|off] [N|all] : Like log, but show state history.
status [n] : Show current daemon status info using format #n.
test n : Produce n lines of output for testing/debugging.
username type u : Enter username u for a queried OpenVPN username.
verb [n] : Set log verbosity level to n, or show if n is absent.
version : Show current version number.
END
exit
Connection closed by foreign host.
ai:~ #

詳細についてはOpenVPN Management Interface Documentationを参照してください。