Русская версия English version  
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 поддержкой.


Powered by NVStat Team © 2001 - 2016 Michael Grigorev