The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

SSL соединение при использовании LDAP-сервиса (ssl ldap crypt)


<< Предыдущая ИНДЕКС Исправить src / Печать Следующая >>
Ключевые слова: ssl, ldap, crypt,  (найти похожие документы)
From: Roman Sozinov <http://sozinov.blogspot.com>; Date: Mon, 3 Jan 2008 14:31:37 +0000 (UTC) Subject: SSL соединение при использовании LDAP-сервиса Оригинал: http://sozinov.blogspot.com/2007/01/starttls-ldap.html http://sozinov.blogspot.com/2007/06/ssl-ldap.html StartTLS - безопасный LDAP TLS 1.0 (Transport Layer Security) - это протокол безопасной передачи данных, основанный на SSL 3.0 (Secure Socket Layer), отличается от него незначительно, поэтому термины SSL и TLS можно использовать как синонимы. StartTLS - это механизм установления безопасного соединения на основе TLS-протокола. Данный механизм использует уже существующее соединение - для LDAP-соединения это 389-й порт (ldap://). Иногда его называют TLS upgrade по той же самой причине - испольузется уже установленное TCP-соединение. LDAPS (ldaps://) - это тоже безопасное соединение, но оно инициируется на альтернативном порту (636). После того как инициализация безопасного соединения прошла успешна, разницы между StartTLS и LDAPS нет. Для того, чтобы LDAP-сервер умел формировать безопасное соединение, необходимо иметь SSL-сертификат для используемого сервера, подписанный Центром Сертификации (CA), сертификат которого в свою очередь находится в root-списке (ca-bundle.crt). В основной файл конфигурации как минимум должны быть добавлены следущие строки: TLSCertificateFile /etc/ssl/public/server.crt # сертификат ldap-сервера TLSCertificateKeyFile /etc/ssl/private/server.key # ключ ldap-сервера TLSCACertificateFile /etc/ssl/public/ca-bundle.crt # root-список После перезапуска ldap-сервиса, StartTLS механизм можно проверить с помощью команды: # ldapsearch -x -b "c=ru" -h slave_ldap.example.com -D "cn=admin,c=ru" -w password -d 1 -ZZ ... TLS trace: SSL_connect:before/connect initialization TLS trace: SSL_connect:SSLv2/v3 write client hello A TLS trace: SSL_connect:SSLv3 read server hello A TLS certificate verification: depth: 3, err: 0, subject: /O=EuroPKI/CN=EuroPKI Root Certification Authority, issuer: /O=EuroPKI/CN=EuroPKI Root CertificationAuthority TLS certificate verification: depth: 2, err: 0, subject: /C=LT/O=EuroPKI/CN=Eur oPKI Lithuanian Certification Authority, issuer: /O=EuroPKI/CN=EuroPKI Root Certification Authority TLS certificate verification: depth: 1, err: 0, subject: /C=LT/O=Skaitmeninio S ertifikavimo Centras/CN=SSC Class 2 CA/serialNumber=3, issuer: /C=LT/O=EuroPKI/ CN=EuroPKI Lithuanian Certification Authority TLS certificate verification: depth: 0, err: 0, subject: /C=LT/O=UAB Skaitmenin io sertifikavimo centras/OU=Duomen\xC5\xB3 centras/CN=slave_ldap.example.com/se rialNumber=33, issuer: /C=LT/O=Skaitmeninio Sertifikavimo Centras/CN=SSC Class 2 CA/serialNumber=3 TLS trace: SSL_connect:SSLv3 read server certificate A TLS trace: SSL_connect:SSLv3 read server done A TLS trace: SSL_connect:SSLv3 write client key exchange A TLS trace: SSL_connect:SSLv3 write change cipher spec A TLS trace: SSL_connect:SSLv3 write finished A TLS trace: SSL_connect:SSLv3 flush data TLS trace: SSL_connect:SSLv3 read finished A ... Для безопасной (с использованием TLS) репликации данных на другой сервер предпочтительно использовать механизм StartTLS, без использования дополнительного ldaps-порта (636). Всё, что нужно поправить в этом случае в конфигурационном файле /etc/slapd.conf - добавить строку starttls=yes в настройку необходимой реплики (replica). Например: ... replica uri=ldap://slave_ldap.example.com starttls=critical binddn="cn=admin,c=lt" bindmethod=simple credentials=password ... Параметр starttls может принимать значение "yes", в этом случае, если в момент инициализации TLS-соединения возникли ошибки, соединение будет установлено без использования TLS. Рекомендуется - critical. Ссылки: 1. OpenLDAP Faq-O-Matic: How do I use TLS/SSL? 2. RFC2830 - Lightweight Directory Access Protocol (v3): Extension for Transport Layer Security 3. RFC4513 - Lightweight Directory Access Protocol (LDAP): Authentication Methods and Security Mechanisms 4. SLAPD.CONF(5)
Часть 2. SSL соединение при использовании LDAP-сервиса Данная заметка вышла как дополнение к постам StartTLS - безопасный LDAP и cvs->ldif. При использовании общей для всех сотрудников LDAP-адресной книги за пределами офиса, условия использования безопасного LDAP-соединения становятся обязательными. Но существующие на данный момент почтовые клиенты не умеют использовать функцию StartTLS, вместо этого они требуют отдельного SSL-соединения на отдельном порту (для ldaps это порт 636). В этом случае в дополнение к уже определенным в конфигурационном файле опциям TLSCertificateFile, TLSCertificateKeyFile, TLSCACertificateFile, в запускном скрипте необходимо открыть дополнительный безопасный порт - ldaps. В Debian это делается просто - в начало скрипта /etc/init.d/slapd необходимо добавить строку: SLAPD_SERVICES="ldap:/// ldaps:///" После перезапуска сервиса, убедиться, что ldaps порт открыт: # /etc/init.d/slapd restart Stopping OpenLDAP: slapd. Starting OpenLDAP: slapd. # netstat -an | grep 636 tcp 0 0 0.0.0.0:636 0.0.0.0:* LISTEN tcp6 0 0 :::636 :::* LISTEN Теперь остается только протестировать безопасное соединение из почтовой программы (галочка "secure connection (SSL)", порт 636). Thunderbird и Evolution прекрасно срабатывают сразу же. С Outlook'ом придется добавлять сертификат LDAP-сервера (или CA'я, который выдал данный сертификат) в Windows-хранилище сертификатов, иначе он будет отказываться работать, говоря при этом многозначительное "The specified directory service could not be reached".

<< Предыдущая ИНДЕКС Исправить src / Печать Следующая >>

 Добавить комментарий
Имя:
E-Mail:
Заголовок:
Текст:




Спонсоры:
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2021 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру