sqlite認証プラグイン」からの転載です。ソースコード、サンプルファイルは転載元をご参照ください。このプラグインは無保証で提供されています。ご利用の環境によっては正しく動作しない可能性があります。このプラグインの使用によって生じた損害(直接、間接を問わず)の責任を作者は一切負いません。OpenVPNでsqliteをデータベースとして使用し、ID/パスワードを使って認証するためのプラグインです。pythonで書かれていますので、必要に応じて変更してお使いください。認証に使用するユーザーIDとパスワードを保持するsqliteデータベースファイルを用意します。サンプルデータベースではデータベースのテーブル名は「Users」、IDを「UserId」フィールド、パスワードを「Password」フィールド、有効/無効フラグを「Active」フィールドに設定していますが、auth-sqlite.py内のSQLを書き換えれば任意のスキーマに対応できます。0Windows上でsqliteデータベースを扱うにはPupSQLiteがお手軽でお勧めです。上のテーブルではパスワードを平文で記載していますが、データベース内に格納するパスワードはRIPEMD160でハッシュ化します。ブラウザでのハッシュ化にはこのサイトが便利です(出力結果の「hex」を使います)。プラグインファイルの配置auth-sqlite.pyをOpenVPNサーバーに設置します。通常は/etc/openvpnの中などがわかりやすいと思います。このとき、auth-sqlite.pyに実行権限を付与しておくことを忘れないようにしてください。OpenVPNサーバー設定ファイルの編集OpenVPNサーバー設定ファイルに以下の記述を追加します。2プラグインとして外部プログラムを呼び出す際にはこの値を2か3に設定する必要があります。この設定のデフォルト値は1で、この場合はifconfigやrouteコマンドなどのOS組み込みコマンドしか実行できません。client-cert-not-requiredクライアント証明書による認証を不要にします。ID/パスワードのみで認証するようにしたいときにはこのディレクティブが必要です。name)として使用します。Directory)を使用する際などに必要になります。/etc/openvpn/vpnusers.dbユーザーデータベースとして使用するsqliteデータベースファイルをauth_sqlite_dbという環境変数に設定します。スクリプト内でこの環境変数に設定された値を読み込み、データベースに接続します。via-file認証プラグインとして使用するファイルの位置をフルパスで指定します(スクリプトの場合はpluginディレクティブではないのでご注意を)。2番目の引数は、認証情報をOpenVPNからスクリプトに受け渡す方法を指定します。「via-file(ファイル経由)」か「via-env(環境変数経由)」のいずれかになります。OpenVPNクライアントから接続!OpenVPNクライアントから接続を試してみましょう。auth-user-passディレクティブを指定し、ID/パスワード認証を使用するように設定します。サーバーのログOpenVPNサーバーのログには認証結果が以下のように記録されています。最後から2番目の行の数字は、データベースを検索した結果、IDとパスワードでの検索でヒットした行数です(つまり「1」なら認証OKということですね)。succeed.そして認証に失敗した場合です。1を返せば、その終了コードを受け取ったOpenVPNサーバーが認証結果をクライアントに送信します。sqlite認証プラグイン」からの転載です。ソースコード、サンプルファイルは転載元をご参照ください。ブリッジモードがつながらない。openvpnサーバにブリッジモードで接続しようとしています。00:48親切に有難うございます。Guiで起動するときのエラーです。サーバーでのことです。自身ありませんが、コマンドラインでがんばってみます。11:12三反田です。久し振りの投稿になります。ご返信、ありがとうございます。申し遅れましたが、福井と申します。OpenVPN.JP。