Linux 上に VPN サーバーをセットアップして、Android および Windows クライアントで PAM または passwd に対して認証することは可能ですか?

Linux 上に VPN サーバーをセットアップして、Android および Windows クライアントで PAM または passwd に対して認証することは可能ですか?

Linux サーバーを所有しており、Windows 10 および Android クライアントからリモートでそのネットワークに接続する必要があります。クライアントがユーザー名とパスワードを使用して Linux マシン上のユーザー アカウントに対して認証できるようにサーバーを設定することは可能ですか?

これには IKEv2 を使用したいのですが、もっと良い解決策があれば、それは必要ありません。すでに strongSwan の設定を試み、クライアント証明書を使用して成功しました。また、freeRadius を /etc/passwd に対して認証することもできましたが、ユーザー名とパスワードを strongSwan から freeRadius に渡すことができませんでした。これは正しい方法でしょうか?

提案があった場合は、この質問を更新します。

答え1

問題は、ユーザー名/パスワードを使用するほとんどの EAP メソッドがプレーンテキスト パスワードを送信しないことです。代わりに、クライアントとサーバーの両方で計算されたハッシュ/暗号化を使用した、ある種のチャレンジ/レスポンス プロトコルを使用します。通常、サーバーが既にプレーンテキスト パスワードを所有していることが条件となります (メソッドがゼロ知識パスワード証明に基づいている場合を除く)。 に保存されているハッシュ バージョンではありません/etc/passwd

strongSwanがサポートするプレーンテキストパスワードを使用する唯一の方法はEAP-GTCただし、クライアントのサポートは限られています (FreeRADIUS で動作するかどうかもわかりませんが、strongSwan は PAM と直接やり取りできます)。基本的に、strongSwan のみがこの方法を使用するため、strongSwan アプリを搭載した Android は正常に動作しますが、Windows はこの方法をサポートしていません。

関連情報