![]() ![]() | ![]() |
Main Page | ![]() | ![]() |
Project | ![]() | ![]() |
Articles | ![]() | ![]() |
PSP | ![]() | ![]() |
Forum | ![]() | ![]() |
About | ![]() | ![]() |
Donate | ![]() | ![]() |
Articles |
Организация безопасного соединения LDAP-клиента с OpenLDAP-сервером с использованием SSL/TLS |
Автор: Григорьев Михаил Редакция от 22.04.2005 Статья так же доступна на сайте OpenNet В организации существует несколько серверов FreeBSD 5.3, на одном из них установлен OpenLDAP Server, на других используется OpenLDAP Client. Имеем внутренний настроенный DNS с доменом domain.ru OpenLDAP сервер назавём ldap.domain.ru Задача: Организовать безопасное соединение с OpenLDAP-сервером с использованием SSL/TLS. В системе установлен пакет: openldap-server-2.2.24 Вся настройка проводилась именно для ветки 2.2 OpenLDAP. Создание сертификата организации: С помощью этого сертификата, будем в дальнейшем подписывать все остальные сертификаты пользователей, и сертификаты системных служб Генерируем приватный ключ: # openssl genrsa -des3 -out ca.key 2048 Создание сертификата: # openssl req -new -x509 -days 1825 -utf8 -key ca.key -out ca.cert Отвечаем на вопросы, не забываем про самый главный ответ (в моей системе было так): Common Name (eg, YOUR name) []: ldap.domain.ru Создание пользовательского подписанного сертификата: Генерируем приватный ключ: # openssl genrsa -out user.key 1024 Генерируем запрос для подписания сертификата: # openssl req -new -key user.key -out user.csr -utf8 Подписываем сертификат: # openssl x509 -req -in user.csr -out user.cert -CA ca.cert -CAkey ca.key -CAcreateserial -days 1095 Приватный ключ ca.key надежно сохраняем, а публичный ключ ca.cert в дальнейшем распространим по серверам - клиентам. Создаём на серверной машине директорию для хранения сертификатов: # mkdir /usr/local/etc/openldap/ssl Копируем сертификаты: # cp user.cert /usr/local/etc/openldap/ssl # cp user.key /usr/local/etc/openldap/ssl # cp ca.cert /usr/local/etc/openldap/ssl Устанавливаем права: # chmod -R 750 /usr/local/etc/openldap/ssl # chown -R ldap:ldap /usr/local/etc/openldap/ssl Настройка серверной части OpenLDAP: Редактируем Файл конфигурации (по умолчанию): # vi /usr/local/etc/openldap/slapd.conf Из опций добавлено: disallow tls_authc TLSCertificateFile /usr/local/etc/openldap/ssl/user.cert TLSCertificateKeyFile /usr/local/etc/openldap/ssl/user.key TLSCACertificateFile /usr/local/etc/openldap/ssl/ca.cert Внимание !!! Опцию disallow рекомендую добавить до определения database Запускаем OpenLDAP Server: # /usr/local/libexec/slapd -h 'ldap://0.0.0.0/ ldaps://0.0.0.0/' Проверяем: # netstat -atn | grep LISTEN tcp4 0 0 *.636 *.* LISTEN tcp4 0 0 *.389 *.* LISTEN Отлично !!! Настройка клиентской части OpenLDAP: Создаём на клиентской машине директорию для хранения сертификата: # mkdir /usr/local/etc/openldap/ssl Копируем сертификат: # cp ca.cert /usr/local/etc/openldap/ssl Устанавливаем права: # chmod -R 755 /usr/local/etc/openldap/ssl # chown -R ldap:ldap /usr/local/etc/openldap/ssl Редактируем Файл конфигурации (по умолчанию): # vi /usr/local/etc/openldap/ldap.conf Из опций добавлено: BASE o=MyORG,c=RU URI ldaps://ldap.domain.ru TLS_CACERT /usr/local/etc/openldap/ssl/ca.cert TLS_REQCERT never Проверка работоспособности LDAP-клиента: # ldapsearch -LL -H ldaps://ldap.domain.ru -b "o=MyORG,c=RU" -W -x -D "cn=Manager,o=MyORG,c=RU" Таким образом имеем работающие OpenLDAP сервер и клиент с SSL поддержкой. |