Назад | Перейти на главную страницу

Настройка SSL с сервером каталогов 389 для аутентификации LDAP

У меня есть сервер каталогов 389, работающий на RHEL 5 с группами, пользователями, posix и т. Д. Клиенты RHEL аутентифицируют пользователей с помощью LDAP - никаких проблем, все работает отлично, но пароли отправляются в виде открытого текста и видны с помощью сетевого сниффера. Итак, решили запустить с SSL:

  1. Создан ЦС - получил как частные, так и публичные сертификаты ЦС
  2. Использование сертификатов ЦС: генерируемых как частных, так и публичных сертификатов и комбинированных (1-й файл) для 389DS в соответствии с запросом сертификата 389DS, импортированным с общедоступным сертификатом CA в 389DS из графической консоли (2-й файл).
  3. Включен SSL в 389DS
  4. На клиенте с использованием authconfig-gtk включен SSL для LDAP, указанный только публичный сертификат CA

Не работает.

Как? Как лучше всего безопасно интегрироваться?

Первое, что вы можете сделать, это проверить, правильно ли ваш сервер представляет сертификаты. Вы можете сделать это, попытавшись подключиться к вашему серверу с помощью OpenSSL. На клиентской машине с доступом запустите:

openssl s_client –connect target_server_fqdn:636

Это должно вернуть красивую распечатку сертификата сервера. Ключевым моментом здесь является проверка напечатанного в конце «Проверить код возврата». Вы можете получить разные коды, но, вообще говоря, вы должны получить 0 для действующего сертификата и, возможно, 19, если вы сами подписываете.

Если это не удается, вернитесь и убедитесь, что вы правильно импортировали сертификаты на стороне сервера.

Если вы прошли этот тест, переходите к тестированию своих TLS-соединений на стороне клиента.

На клиентской машине запустите

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

Это вызовет поиск LDAP через зашифрованное соединение. В случае успеха вы должны вернуть некоторую информацию о пользователе, а проверка журналов DS должна дать следующее:

[23 / сен / 2011: 07: 48: 57 -0500] conn = 1631 op = 0 EXT oid = "XXXXXX.X.XX" name = "startTLS" [23 / сен / 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.) Если графический интерфейс аутентификации вызывает у вас проблемы, вы можете попробовать просто явно включить TLS для LDAP с помощью

authconfig --enableldaptls --update 

У меня раньше были проблемы с графическим интерфейсом, поэтому я предпочитаю использовать команды 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>

Мне не повезло с настройкой SSL для 389 серверов каталогов или административных серверов, следуя найденным мною howtos (я решил, что это потому, что я использовал Centos 6, и большинство howtos были нацелены именно на Redhat).

Что в конечном итоге сработало для меня, так это инициировать запросы сертификатов из интерфейсов сервера 389-console (admin | dir), подписать эти запросы с помощью установки tinyCA (просто интерфейс для openssl, я ленив), экспортировать подписанные сертификаты PEM и CA сертификаты и импортируйте их обратно с помощью 389-console.

389 консоль -> Группа серверов -> (администратор / каталог) сервер -> Открыть -> Управление сертификатами

Надеюсь это поможет...

Не могли бы вы использовать ссылку ниже для настройки RHDS / 389-ds на SSL.

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

Надеюсь, это поможет.