web-dev-qa-db-ja.com

LANのADに対してDMZ)を認証するためのベストプラクティス

DMZには、ユーザーアカウントもあり、すべてのアカウントがシャドウパスワードファイルにある顧客向けサーバーはほとんどありません。ユーザーログオンを統合し、LANユーザーがActiveDirectoryに対して認証できるようにすることを検討しています。認証が必要なサービスはApache、Proftpd、sshです。セキュリティチームに相談した後、認証を設定しましたDMZ LDAPSプロキシがLAN内の別のLDAPSプロキシ(proxy2)に接続し、これが認証情報を渡しますLDAP経由で(LDAPバインドとして)ADコントローラーに。2番目のLDAPプロキシは、ADサーバーが安全なLDAP実装でTLSを話すことを拒否するためにのみ必要です。これは、適切なモジュールを使用するApacheで機能します。後の段階で、顧客アカウントをサーバーからに移動しようとする場合があります。 LDAPプロキシであるため、サーバー全体に散らばることはありません。

SSHの場合、proxy2をWindowsドメインに参加させて、ユーザーがWindows資格情報を使用してログオンできるようにしました。次に、sshキーを作成し、ssh-copyを使用してDMZサーバーにコピーし、ユーザーが認証されたらパスワードなしのログオンを有効にします。 。

これは、この種のSSOを実装するための良い方法ですか?ここでセキュリティの問題を見逃しましたか、それとも目標を達成するためのより良い方法がありますか?

7
Sergei

認証スタックにPAMを使用している場合は、 pam_krb5 を使用して、サービスに kerberos authentication を提供できます。 Kerberosは、敵対的な環境に対処するためにすぐに設計され、プロキシによる認証を処理し、すでにAD仕様の一部になっています。 Kerberosに手間のかかる作業をさせて、人生をやり遂げることができるのに、なぜLDAPと格闘するのでしょうか。ええ、あなたはいくつかの読書をしなければならないでしょう、そしてええ、それは少し時間がかかります、しかし私は何年もの間Kerb-to-AD認証を使用しました、そしてそれがSSOを取得する最も簡単で最も速い方法であることがわかりました認証バックエンドとしてActiveDirectoryを使用している場合は、すぐに使用できます。

あなたが遭遇する主なことは、Microsoftがデフォルトの暗号化タイプについて非常に具体的であると決定したことです(それらは基本的に独自に作成されました)ので、正しいを持つようにKerberosクライアントを設定する必要があります)一致する暗号化タイプ、またはADサーバーはそれを拒否し続けます。これはありがたいことに簡単な手順であり、krb5.confを数回以上編集する必要はありません。

そして今、あなたが考慮すべきいくつかのリンク...

MicrosoftのKerberosの見方

KerberosとActiveDirectoryのメッシュ化

pAMを介したsshおよびKerberos認証

ApacheとKerberos

ProFTPとKerberos

Kerberosを使用したMicrosoftのアクティビティのRFC(実際には読みたくない):

8
Avery Payne