web-dev-qa-db-ja.com

LDAP認証用に389 Directory ServerでSSLを設定する

私は389 Directory ServerをRHEL 5で実行し、グループ、ユーザー、posixなどを使用しています。RHELクライアントはLDAPでユーザーを認証しています-問題なく、すべてが完璧に機能しますが、パスワードはプレーンテキストで送信され、ネットワークスニファーで表示されます。そのため、SSLで実行することを決定しました。

  1. 作成されたCA-プライベートCA証明書とパブリックCA証明書の両方を取得しました
  2. CA証明書の使用:389DS証明書リクエストに従って、プライベート証明書とパブリック証明書の両方を生成し、389DSを結合した(1st file)、グラフィカルコンソールから389DSにCAパブリック証明書をインポート(2番目のファイル)。
  3. 389DSでSSLを有効化
  4. クライアントで、LDAP用にauthconfig-gtk対応のSSLを使用して、指定CAパブリック証明書のみ

機能しません。

方法?安全に統合するための最良の方法は何ですか?

7
GioMac

最初に行うことは、サーバーが証明書を適切に提示していることを確認することです。これを行うには、OpenSSLを使用してサーバーに接続してみます。アクセス権のあるクライアントマシンで、次を実行します。

openssl s_client –connect target_server_fqdn:636

これにより、サーバーの証明書から素敵な出力が返されます。ここで重要なのは、最後に印刷された「Verify return code」を確認することです。異なるコードを取得する可能性がありますが、一般的に言えば、有効な証明書の場合は0を取得し、自己署名の場合は19を取得する必要があります。

これが失敗した場合は、戻ってサーバー側の証明書を正しくインポートしたことを確認してください。

このテストに合格したら、クライアント側からのTLS接続のテストに進みます。

クライアントマシンで実行

ldapsearch -z -ZZ '(uid=<testusername>)'

これにより、暗号化された接続でLDAP検索が強制されます。これが成功した場合、ユーザー情報をいくつか取得し、DSログをチェックすると、次のようになります。

[23/Sep/2011:07:48:57 -0500] conn = 1631 op = 0 EXT oid = "XXXXXX.X.XX" name = "startTLS" [23/Sep/2011:07:48:57- 0500] conn = 1631 op = 0 RESULT err = 0 tag = 120 nentries = 0 etime = 0 [23/Sep/2011:07:48:57 -0500] conn = 1631 SSL 256ビットAES

これが失敗した場合は、クライアント側で証明書が正しくインポートされていることを確認する必要があります。

トラブルシューティングを行う際に、私が頻繁に見ている共通の領域は次のとおりです。

1.)クライアントでは、場合によっては(ここで誰かがより適切に説明できる場合があります)、ldap.confを編集して行を含め、署名を要求しようとする場合があります。

TLS_REQCERT allow

2.)認証GUIで問題が発生している場合は、LDAPのTLSを明示的にオンにしてみてください。

authconfig --enableldaptls --update 

以前にGUIで問題があったため、CLIコマンドの使用に固執する傾向があります。

3.)そして、あなたが試すかもしれない最後の(もう一度、テストのためだけに)は、

cacertdir_rehash <dir where certs are stored>

更新

自己署名証明書を実際に作成する上でさらにヘルプが必要な場合は、次のことを試してください。

1.)独自の自己署名CA証明書を作成します。

certutil -S -n "<CA Certificate Name Here>" -s "cn=<CN Name Here>, dc=<Your DC's FQDN>" -2 -x -t "CT,," -m 1000 -v 120 -d . -k rsa

2.)ディレクトリサーバーのサーバー証明書を作成する

certutil -S -n "Cert-Name" -s "cn=<Server FQDN>" -c "<Name of CA Certificate>" -t "u,u,u" -m 1001 -v 120 -d . -k rsa 

3.)[タスク]で選択した[証明書の管理]セクションで、これら両方の証明書をディレクトリサーバーにインポートします。

4.)TLS暗号化を有効にする

5.)クライアント用のエクスポート可能な証明書を作成し、.pemファイルに出力します

certutil -d . -L -n "<CA Certificate Name>" -a > cacert.pem

6.)選択によって-クライアント証明書を各クライアントにダウンロードします。

7.)前述のコマンドを使用して証明書を再ハッシュします

cacertdir_rehash <dir where certs are stored>
7
Univ426

私が見つけたhowtosに従って389ディレクトリまたは管理サーバーのSSLを構成することができなかった(私がCentos 6を使用していたためであり、Howtosのほとんどが具体的にはRedhatをターゲットにしていたためだ)。

最終的に私のために働いたのは、389コンソール(admin | dir)サーバーインターフェイスから証明書要求を開始し、tinyCAインストールでこれらの要求に署名し(opensslへのフロントエンドのみ、私は怠惰です)、署名されたPEM証明書とCAをエクスポートすることでした証明書、および389コンソールを使用してそれらをインポートして戻します。

389コンソール->サーバーグループ->(admin/directory)server-> Open-> Manage Certificates

お役に立てれば...

2
quadruplebucky

おそらくもっと良い方法はFreeIPAを使うことです。

1
GioMac

389 Directory Serverプロジェクトは、TLS/SSLに関するガイドをここに保持しています http://www.port389.org/docs/389ds/howto/howto-ssl.html

これには、管理コンソールを使用しないサーバー証明書の管理が含まれます。それが役に立てば幸い

0
firstyear

以下のリンクを使用して、SSLでRHDS/389-dsをセットアップしてください。

http://lists.fedoraproject.org/pipermail/389-users/2012-March/014200.html

お役に立てば幸いです。

0
atolani