web-dev-qa-db-ja.com

OpenVPN-パスワード認証のみ

OpenVPN Client for Windowsを使用する場合、ユーザー名とパスワードのみでOpenVPNサーバーにログインできます。 Ubuntuで同じことを実現する方法がわかりません。何らかの証明書が必要なようです。

ユーザー名とパスワードのみでOpenVPNサーバーを認証する方法はありますか?

9
kbuilds

サーバー/ CA証明書がなくても、ユーザー名/パスワードを使用して完全に認証できます。ただし、I 強く推奨検証するように構成するwithCA証明書を使用して、中間者攻撃を防ぎます。

サーバー検証なしで、だれでもOpenVPNサーバーになりすまして、ユーザー名/パスワードを受け入れることができます。結果:

  • 攻撃者はすべてのトラフィックを傍受できます。接続しているサーバーを確認しないため、だれでもパブリックネットワーク(または攻撃者によって制御されるプライベートネットワーク)のサーバーであると主張できます。
  • 攻撃者はユーザー名とパスワードの組み合わせを知っています。同じパスワードを他のものにも再利用する場合には非常に悪いです。

Network Managerでは、以下に示すようにCA Certがなくても正常に機能しますが、そのように使用しないでください! Windowsでサーバー/ CA証明書を使用しない場合、上記の攻撃に対して本当に脆弱です。

enter image description here

5
gertvdijk

私はここで答えを見つけました: http://openvpn.net/index.php/open-source/documentation/howto.html#auth

覚えておいて、あなたはまだサーバー証明書を持っている必要があります

クライアント認証の唯一の形式としてユーザー名/パスワード認証を使用する

デフォルトでは、サーバーでauth-user-pass-verifyまたはusername/password-checkingプラグインを使用すると二重認証が有効になり、クライアントを認証するにはクライアント証明書とユーザー名/パスワード認証の両方が成功する必要があります。

セキュリティの観点から推奨されていませんが、クライアント証明書の使用を無効にし、ユーザー名/パスワード認証のみを強制することもできます。サーバー上:

client-cert-not-requiredこのような構成では、通常も設定する必要があります。

username-as-common-nameは、クライアント証明書を介して認証していたクライアントの共通名を使用するため、インデックス作成の目的でユーザー名を使用するようサーバーに指示します。

Client-cert-not-requiredはサーバー証明書の必要性を除去しないため、client-cert-not-requiredを使用するサーバーに接続するクライアントは、クライアント構成ファイルからcertおよびkeyディレクティブを削除できますが、クライアントがサーバー証明書を検証する必要があるため、caディレクティブ。

2
ruX