openVPNへのパスを動的にプッシュする

openVPNへのパスを動的にプッシュする

私はserver.confでこれを行うことができることを知っています:

push "route 192.168.20.0 255.255.255.0"

しかし、パスを動的にプッシュする方法はありますか? VPNクライアントに必要なすべてのルートを返すAPI呼び出しがあるため、ルートが変更されると、クライアントはVPN接続を再開して新しいルートを取得します。可能ですか?どのように?サーバー側で管理したいです。

ベストアンサー1

カスタム構成の鍵は、次のものを使用することです。クライアント接続オプション

vpn-endpoint.confの抜粋

script-security 2
client-connect /etc/openvpn/up-client

非常に基本的なスクリプト

 #!/bin/sh
 CONFIG_FILE=$1
 ( env ; echo CONFIG_FILE  ${CONFIG_FILE} ) >> /var/log/openvpn-up-client.log
 case "$username" in
    (me)
         echo 'push "route 192.168.168.168 255.255.255.255"' >>${CONFIG_FILE}
         ;;
    (*)
         echo 'push "route 192.168.169.169 255.255.255.255"' >>${CONFIG_FILE}
         ;;
 esac

抜粋男性用OpenVPN

--クライアント接続 cmd

クライアント接続でcmdコマンドを実行します。

cmdは、スクリプト(またはランチャー)へのパスとオプションで引数が続くパスで構成されます。

パスと引数は、単一引用符または二重引用符で囲むか、バックスラッシュでエスケープでき、1つ以上のスペースで区切る必要があります。

このコマンドは、認証されたクライアントの公開名とIPアドレスを環境変数に渡します(下記の環境変数のセクションを参照)。このコマンドはまた、新しく作成された一時ファイルのパス名を最後の引数(cmdで指定された引数の後)に渡します。これは、動的に生成された構成ファイルの指示をOpenVPNに戻すためにも使用されます。

スクリプトがクライアント接続時にサーバーに適用する動的構成ファイルを生成したい場合は、最後のパラメーターと呼ばれるファイルに作成する必要があります。

動的に生成された構成ファイルに使用できるオプションについては、以下の--client-config-dirオプションを参照してください。

スクリプトの戻り値が重要です。スクリプトがゼロ以外のエラー状態を返すと、クライアントは切断されます。

おすすめ記事