可能でしょうか? OpenVPN サーバーは証明書とパスワードベースのログインの両方を必要とします (Tomato ルーター ファームウェア経由)

可能でしょうか? OpenVPN サーバーは証明書とパスワードベースのログインの両方を必要とします (Tomato ルーター ファームウェア経由)

私は、OpenVPN サーバーを実行するために、Asus N66U ルーターで Shibby の Tomato ビルド (64k NVRAM バージョン) を使用してきました。

このOpenVPNサーバーを証明書と認証局の両方を要求するように設定できるかどうか知りたいですそしてユーザーがアクセスを許可される前にユーザー名/パスワードを入力する必要があります。

証明書の詳細を入力するときに「チャレンジパスワード」の項目があることに気づきましたが、誰もが「そうでなければ」空白のままにしておくように言っています。その理由はわかりませんし、説明も見つかりません。さらに、この問題についてGoogleで何度も調べたところ、ユーザー名/パスワードで認証するためにOpenVPNのPAMモジュールについて話している人がいることに気付きましたが、現れたどちらか一方のオプションにすることができます。言い換えれば、ユーザー名/パスワードによる認証を強制することができますまたは証明書。両方を要求したいです。

これは可能ですか? もし可能であれば、どのようにすればいいですか?

答え1

あなたが探しているOpenVPNの機能により、サーバーはクライアントを認証できるようになります。両方証明書と資格情報を持つサーバーは、 ですauth-user-pass-verify。この機能により、サーバーはリモート ユーザーが提供したユーザー名とパスワードを、認証を実行するスクリプトに渡すことができます。その時点で、PAM、RADIUS、LDAP、信号など、必要なあらゆるものに対して資格情報を検証できます。

私は「Tomato」ファームウェアについて何も知らないので、ここで手順を説明するつもりはありません。ちょっと調べてみたところ、OpenVPN の「カスタム構成」オプションを使用して参照を含めることができるのではないかと思いますauth-user-pass-verify。認証を実行するにはスクリプトが必要です。

少し検索してみると、「トマト」に特化した参考資料が見つかると思います。

答え2

auth-user-pass-verify は正しい方法です。さらに、auth-user ユーザー名が認証された CN であることを強制したり、openvpn が一度に各証明書に対して 1 つの接続のみを行うように強制したりすることもできます。

そうすることで、「模倣者」は証明書のCNと正しいパスに照らして正しいユーザーを所有する必要があり、実際の所有者がログオンしていない時間にログオンする必要があります。

さらに、IDS について検討することもできます。選択するものに応じて、許可される外部 IP 範囲、ログオン時間などを絞り込むこともできます。

公開された証明書は、直ちに取り消す必要があります。署名サーバーはネットワーク外に設置し、キーを USB で転送すれば、非常に厳重に保護されたアクセスが可能になります。

証明書にパスワードを設定しないでください。

  1. ブルートフォース攻撃が簡単。
  2. ユーザーをロックすることはできません (証明書パスはオフラインのみです)。
  3. パスワードを紛失する人が頻繁にいるので、毎回証明書を取り消して再作成する必要があります。証明書が大量に存在し、取り消しを忘れてしまう可能性が高くなります。

しかし、本当に必要な場合は、認証ユーザーと証明書パスワードを同時に使用することができ、フォールバックなどは発生しません。

まず、openvpn は証明書のパスワードを使用して秘密鍵を復号化し、接続を確立します。次に、認証ユーザーがサーバー側で起動します。資格情報が間違っていると、接続できなくなります。

ただし、攻撃者が通常の認証情報を入手した場合、すでに問題が発生しており、証明書のパスワードも入手している可能性が高くなります。

したがって、ここには本当のメリットは見当たらず、多くの欠点と、より安全であるという誤った感覚があるだけです。

答え3

私はこのチュートリアルに従いました (Asus N66U の TomatoUSB Shibby 1.28 を使用)。 http://www.dd-wrt.com/wiki/index.php/OpenVPN これはあなたに大いに役立つかもしれません。

関連情報