Глава 6. OpenLDAP ldap.conf

Конфигурационный файл ldap.conf содержит информацию и директивы конфигурации, используемые клиентами OpenLDAP. При необходимости эти директивы могут использоваться и инструментами OpenLDAP.

Директивы TLS

Какие именно клиентские директивы TLS будут использоваться, зависит от того, будет ли клиент TLS отправлять сертификат X.509 и проверять сертификат TLS сервера (в этом случае требуется большинство директив), либо только проверять сертификат TLS сервера (в этом случае требуется только директива TLS_CACERT и, опционально, директива TLS_CIPHER_SUITE). Далее, для удобства, введены следующие обозначения: если директива используется для посылки TLS-сертификата клиента, это указывается ключевым словом КЛИЕНТ, если используется при обоюдной аутентификации — ключевым словом ОБОЮДНО, а в случае только проверки TLS-сертификата сервера — ключевым словом СЕРВЕР.

TLS_CACERT

TLS_CACERT /path/to/CA/cert/file.pem

Клиентская директива TLS (СЕРВЕР). Определяет путь до файла и имя файла сертификата Удостоверяющего центра (Certicate Authority), известного также как корневой сертификат. Позволяет клиенту проверить сертификат сервера LDAP. Данный файл требуется при использовании как самоподписанного, так и коммерческого сертификата. Корневой сертификат должен быть получен у поставщика сертификатов X.509 (или, в случае самоподписанного сертификата, скопирован с LDAP-сервера каким-либо безопасным способом). Как правило, это файл в формате PEM (Privacy enhanced Mail) c расширением .pem или, если он был получен из установки браузера MSIE, с расширением .cer. Если рабочий сертификат X.509 (указанный в директиве TLSCertificateFile slapd.conf) подписан промежуточным удостоверяющим центром, то в файле формата PEM должны присутствовать все сертификаты удостоверяющих центров вплоть до центра корневого уровня. PEM — это текстовый формат, и несколько сертификатов могут помещаться в один и тот же файл в произвольном порядке — смотрите заметки и примеры по формату PEM. Пример конфигурации OpenLDAP с самоподписанным сертификатом можно посмотреть здесь. В данном файле нет конфиденциальной информации (сертификат X.509 содержит только открытый ключ).

Наверх

TLS_CIPHER_SUITE

TLS_CIPHER_SUITE cipher-list

Клиентская директива TLS (СЕРВЕР+КЛИЕНТ+ОБОЮДНО). Это необязательная директива и по умолчанию подразумевается значение ALL (что эквивалентно openssl ciphers -v ALL). Определяет один или несколько шифров, которые будут использоваться во время переговоров об установке соединения TLS. В ходе этих переговоров клиент TLS предлагает список шифров и сервер TLS примет первый шифр из своего списка шифров, который совпадёт с одним из предлагаемых клиентом. Используемый в описании данной директивы термин cipher-list определяет список (в формате OpenSSL), который будет переконвертирован библиотеками OpenSSL в список шифров в формате TLS/SSL. Дополнительную информацию о формате chiper-list можно получить в документации по шифрам OpenSSL. Примеры конфигурации OpenLDAP с самоподписанным сертификатом можно посмотреть здесь.

Список доступных шифров (и, следовательно, cipher-list) определяется форматом открытого ключа, содержащегося в сертификате X.509. В случае отправки сертификата клиентом TLS открытый ключ извлекается из сертификата, указанного в директиве TLS_CERT, в случае только выполнения проверки сертификата сервера — извлекается из сертификата сервера TLS, в случае обоюдного обмена сертификатами — извлекается из обоих сертификатов. Так, если сертификат (сертификаты) содержат открытый ключ RSA, то только шифры открытого ключа RSA могут быть использованы на этапах обмена ключами/аутентификации при установке соединения TLS. Если криптоалгоритм открытого ключа входящего сертификата сервера TLS не удаётся опознать, то в качестве списка будет использоваться ALL (смотрите команды ниже). Отдельные пункты в cipher-list разделяются двоеточием, запятой или пробельным символом. Далее приводится подмножество имён RSA TLSv1, которые могут фигурировать в cipher-list, и эквивалентных им текстовых значений шифров TLS (при отправке по каналу они переконвертируются в шестнадцатеричные значения). Примечание: Слово EXPORT (или EXP), встречающееся в некоторых именах, указывает, что эти шифры являются экспортируемыми, то есть некоторые шифры разрешено использовать только в определённых странах (смотрите документацию Бюро промышленности и безопасности Министерства торговли США и Вассенарские соглашения), и это необходимо учитывать при настройке системы TLS, которая будет использоваться на международном уровне.

НАЗВАНИЕ ШИФРА TLS                      НАЗВАНИЕ CIPHER-LIST OPENSSL
==============================          ===================
TLS_RSA_WITH_NULL_MD5                   NULL-MD5
TLS_RSA_WITH_NULL_SHA                   NULL-SHA
TLS_RSA_EXPORT_WITH_RC4_40_MD5          EXP-RC4-MD5
TLS_RSA_WITH_RC4_128_MD5                RC4-MD5
TLS_RSA_WITH_RC4_128_SHA                RC4-SHA
TLS_RSA_EXPORT_WITH_RC2_CBC_40_MD5      EXP-RC2-CBC-MD5
TLS_RSA_WITH_IDEA_CBC_SHA               IDEA-CBC-SHA
TLS_RSA_EXPORT_WITH_DES40_CBC_SHA       EXP-DES-CBC-SHA
TLS_RSA_WITH_DES_CBC_SHA                DES-CBC-SHA
TLS_RSA_WITH_3DES_EDE_CBC_SHA           DES-CBC3-SHA
TLS_RSA_WITH_AES_128_CBC_SHA            AES128-SHA
TLS_RSA_WITH_AES_256_CBC_SHA            AES256-SHA
TLS_RSA_EXPORT1024_WITH_DES_CBC_SHA     EXP1024-DES-CBC-SHA
TLS_RSA_EXPORT1024_WITH_RC4_56_SHA      EXP1024-RC4-SHA

Чтобы вывести список значений cipher-list, поддерживаемых локальной инсталляцией OpenSSL, используйте:

# Все действительные шифры (ALL) 
openssl ciphers -v ALL

# Все действительные шифры только для TLSv1
openssl ciphers -v -tls1 ALL

# Действительные шифры только для TLSv1, использующие
# алгоритм обмена ключами/аутентификации RSA
openssl ciphers -v -tls1 RSA

# Действительные шифры только для TLSv1, использующие
# алгоритм обмена ключами/аутентификации RSA
# исключая экспортируемые шифры
openssl ciphers -v -tls1 RSA:!EXP
# ПРИМЕЧАНИЕ: в некоторых оболочках знак ! требует экранирования
openssl ciphers -v -tls1 RSA:\!EXP

# То же, что и предыдущая команда, но исключаются NULL-шифры
openssl ciphers -v -tls1 RSA:!EXP:!NULL
# ПРИМЕЧАНИЕ: в некоторых оболочках знак ! требует экранирования
openssl ciphers -v -tls1 RSA:\!EXP:\!NULL

# Действительные шифры только для TLSv1, использующие
# алгоритм обмена ключами/аутентификации RSA
# только экспортируемые шифры
openssl ciphers -v -tls1 RSA:EXP
# ИЛИ
openssl ciphers -v TLSv1+RSA:EXP

В директиве TLS_CIPHER_SUITE в качестве chipher-list могут указываться либо общие параметры, например, RSA, тогда для получения списка конкретных шифров может быть использована команда openssl, как показано выше (в этом случае порядок предпочтения шифров определяется openssl), либо явно заданный список шифров в порядке их предпочтения. Одно или несколько поддерживаемых значений в cipher-list должны поддерживаться сервером TLS. Алгоритм поиска совпадений шифров (выбора того, какой шифр будет использован) таков: первый (наиболее предпочтительный) шифр из предоставляемых клиентом, который также поддерживается и сервером, становится шифром соединения (сессии). В следующих примерах используется только подмножество TLSv1 (SSLv3):

# Cipher-list содержит только основанные на RSA
# шифры аутентификации и обмена ключами 
# поддерживаемые TLSv1 (и SSLv3)
TLS_CIPHER_SUITE TLSv1+RSA

# Cipher-list содержит только основанные на RSA
# шифры аутентификации и обмена ключами 
# поддерживаемые TLSv1 (и SSLv3)
# исключая экспортируемые и NULL-шифры
TLS_CIPHER_SUITE TLSv1+RSA:!EXPORT:!NULL

# Упорядоченный список основанных на RSA
# шифров аутентификации и обмена ключами 
TLS_CIPHER_SUITE DES-CBC-SHA:DES-CBC3-SHA:RC4-SHA:RC4-MD5

# Все шифры за исключением NULL-шифров
TLS_CIPHER_SUITE ALL:!NULL

# Значение по умолчанию, эквивалентно случаю
# когда директива не задана
TLS_CIPHER_SUITE ALL

Примечание: OpenSSL поддерживает ряд шифров, в результате применения которых происходит NULL-шифрование данных большого объёма и имитовставок MAC. Это означает, что безопасно выполняется только процесс аутентификации, а вся последующая передача данных происходит в открытом виде. Чтобы предотвратить использование таких шифров либо используйте значение !NULL в cipher-list, либо явно задайте список шифров, не включая в них NULL-шифры.

Наверх

Уже совсем скоро (One day real soon now ™)

Under Construction

Наверх



Проблемы, комментарии, предположения, исправления (включая битые ссылки) или есть что добавить? Пожалуйста, выкроите время в потоке занятой жизни, чтобы написать нам, вебмастеру или в службу поддержки. Оставшийся день Вы проведёте с чувством удовлетворения.

Нашли ошибку в переводе? Сообщите переводчикам!

Copyright © 1994-2017 ZyTrax, Inc. Все права защищены. Последнее изменение страницы: 21 октября 2015 г.
Переведено участниками проекта Pro-LDAP.ru в 2012 г.