slapd-config
Эта роль позволяет настраивать всю OLC сервера OpenLDAP.
Для этого необходимо предварительно создать OLC и запустить slapd.
Для этих целей воспользуйтесь slapd-base.
slapd-config создаст общую конфигурацию slapd непосредственно в cn=config
и загрузит глобальные модули, такие как mdb, если они не скомпилированы как статические бэкенды.
После этого будут созданы и настроены мониторинг бэкенда и MDB.
MDB поддерживает указание наложений.
Требования
Линукс-дистрибутив на основе dpkg или pacman.
Переменные роли
Существуют несколько глобальных переменных роли:
Имя |
По умолчанию/Требуется |
Описание |
slapd_enable_monitor |
true |
Загружает модуль мониторинга (если требуется) и настраивает базу данных мониторинга. |
slapd_modules_path |
/usr/lib/ldap |
Путь к динамическим модулям, если требуется загрузка бэкендов. |
slapd_additional_modules |
|
Также загрузить эти модули (кроме MDB и мониторинга), если они не скомпилированы. |
slapd_olc_rootdn_password |
:heavy_check_mark: |
Пароль для доступа к OLC. Не экспортируется автоматически slapd-base . |
slapd_monitor_rootdn_password |
:heavy_check_mark: |
Пароль rootdn для базы данных мониторинга. Автоматически будет захеширован. |
slapd_mdb_rootdn_password |
:heavy_check_mark: |
Пароль rootdn для базы данных MDB. Будет автоматически захеширован. |
slapd_schemas |
|
Массив путей к файлам схем для загрузки. |
slapd_global_config |
См. описание |
Каждая отдельная глобальная опция конфигурации slapd. Смотрите ниже для каждого описания. |
slapd_olc_config |
См. описание |
Каждое отдельное глобальное значение конфигурации для базы данных OLC. |
slapd_monitor_config |
См. описание |
Каждое отдельное глобальное значение конфигурации для базы данных мониторинга. |
slapd_mdb_config |
:heavy_check_mark: |
Каждое отдельное глобальное значение конфигурации для базы данных MDB. |
slapd_mdb_overlays |
См. описание |
Каждый модуль для MDB. Смотрите пример для примера. |
Переменные slapd-base
Вы должны установить эти переменные, если slapd-base
не был выполнен на предыдущем шаге в этом плейбуке.
Все переменные обязательны.
Имя |
По умолчанию/Требуется |
Описание |
slapd_run_dir |
:heavy_check_mark: |
Директория выполнения для файла аргументов, pid файла и сокета ldapi |
slapd_ldapi_socket |
:heavy_check_mark: |
ldapi unix сокет для локального управления slapd |
slapd_mdb_dir |
:heavy_check_mark: |
Директория, в которой находится MDB |
slapd_olc_dir |
:heavy_check_mark: |
Путь, где находятся LDIF файлы OLC |
slapd_olc_rootdn |
:heavy_check_mark: |
Rootdn для OLC |
Глобальные параметры конфигурации
Глобальная конфигурация slapd OLC разбита на разные разделы.
Общая конфигурация
Имя |
По умолчанию/Требуется |
Описание |
olcConfigFile |
|
Путь к файлу конфигурации для загрузки. Подмена OLC. |
olcConfigDir |
{{slapd_olc_dir}} |
Путь к файлам базы данных OLC. |
olcArgsFile |
{{slapd_run_dir}}/slapd.args |
slapd будет записывать свои аргументы в этот файл. |
olcPidFile |
{{slapd_run_dir}}/slapd.pid |
slapd будет записывать свой PID в этот файл. |
olcGentleHUP |
FALSE |
Когда TRUE , slapd не убивает существующие соединения при SIGHUP , а ждет их завершения. |
olcServerID |
0 |
ID этого сервера. Требуется только при многомастеровом репликации. |
Конфигурация безопасности
Имя |
По умолчанию/Требуется |
Описание |
olcAllows |
|
Набор разрешенных функций. |
olcDisallows |
|
Набор запрещенных функций. |
olcRequires |
bind |
Набор условий, которые следует выполнять. |
olcRestrict |
|
Список операций, которые ограничены. |
olcSecurity |
ssf=1 simple_bind=128 |
Укажите набор факторов защиты, которые нужно требовать. |
olcAuthIDRewrite |
|
Используется для преобразования простых имен пользователей в LDAP DN для целей аутентификации. |
olcAuthzRegexp |
|
Используется для преобразования простых имен пользователей в LDAP DN для целей аутентификации. Может указываться несколько раз и требует перезагрузки сервера для вступления в силу. |
olcAuthzPolicy |
none |
Какие правила использовать для авторизации прокси. |
olcLocalSSF |
300 |
Предполагаемый SSF для LDAPI соединений. |
olcPasswordHash |
{SSHA} |
Один или несколько алгоритмов хеширования для изменения пароля. |
olcPasswordCryptSaltFormat |
%s |
Формат соли при хешировании паролей с помощью crypt() . |
Конфигурация TLS
Имя |
По умолчанию/Требуется |
Описание |
olcTLSCertificateFile |
|
Файл публичного ключа для slapd. |
olcTLSCertificateKeyFile |
|
Приватный ключ для slapd. |
olcTLSRandFile |
|
Файл для получения случайных бит, когда urandom недоступен. |
olcTLSDHParamFile |
|
Файл, содержащий простые числа для обмена ключами Диффи-Хеллмана. |
olcTLSCipherSuite |
|
Используемые шифры TLS. |
olcTLSProtocolMin |
|
Минимальная версия TLS для обязательного использования. По умолчанию - максимальный уровень. |
olcTLSCACertificateFile |
|
Путь к файлу, содержащему все доверенные центры сертификации. |
olcTLSCACertificatePath |
|
Путь к директории, содержащей файлы всех доверенных центров сертификации. |
olcTLSCRLCheck |
none |
Должен ли CRL CA проверяться при соединениях. |
olcTLSVerifyClient |
never |
Когда проверять личность клиента. |
Конфигурация логирования
Имя |
По умолчанию/Требуется |
Описание |
olcLogLevel |
stats |
Конфигурация уровня логирования для каждой подсистемы. |
olcLogFile |
|
Файл для логирования. slapd всегда будет логировать в stderr. |
olcPluginLogFile |
|
Файл для логирования вывода плагинов slapi. |
olcReplogFile |
|
Файл для репликационного лога, который может читать slurpd . |
Конфигурация потоков
Имя |
По умолчанию/Требуется |
Описание |
olcConcurrency |
|
Подсказка о потоках для операционной системы. Не используется в Linux. |
olcListenerThreads |
1 |
Количество потоков для прослушивания соединений. 1 достаточно для до 16 ядер. |
olcThreads |
16 |
Количество потоков CPU для обработки запросов. |
olcToolThreads |
1 |
Количество потоков CPU при работе в режиме инструмента. Не должно превышать количество ядер в системе. |
Тайм-ауты и ограничения
Имя |
По умолчанию/Требуется |
Описание |
olcIdleTimeout |
0 |
Количество секунд, в течение которых клиент может ничего не делать, прежде чем будет отключен. |
olcWriteTimeout |
0 |
Количество секунд, в течение которых клиент с незавершенными записями может ничего не делать, прежде чем будет отключен. |
olcTimeLimit |
3600 |
Максимальное количество секунд, которое slapd потратит на ответ на запрос. Допускается значение unlimited . |
olcSizeLimit |
500 |
Максимальное количество записей, которые вернет поиск. |
Соединения
Имя |
По умолчанию/Требуется |
Описание |
olcConnMaxPending |
50 |
Максимальное количество ожидающих запросов в анонимных сессиях. |
olcConnMaxPendingAuth |
1000 |
Максимальное количество ожидающих запросов в аутентифицированных сессиях. |
olcTCPBuffer |
|
Размер TCP буфера. Операционная система может автоматически настроить это. |
olcSockbufMaxIncoming |
262143 |
Максимальный размер PDU LDAP для анонимных сессий. |
olcSockbufMaxIncomingAuth |
4194303 |
Максимальный размер PDU LDAP для аутентифицированных сессий. |
SASL
Имя |
По умолчанию/Требуется |
Описание |
olcSaslHost |
|
Полное доменное имя, используемое для обработки SASL. |
olcSaslRealm |
|
Сфера SASL для обработки SASL. |
olcSaslSecProps |
|
Укажите свойства безопасности Cyrus SASL. |
olcSaslAuxprops |
|
Какие auxprop плагины использовать для поиска аутентификации. |
Индексация
Имя |
По умолчанию/Требуется |
Описание |
olcIndexSubstrIfMinLen |
2 |
Минимальная длина субначальных и субфинальных индексов. |
olcIndexSubstrIfMaxLen |
4 |
Максимальная длина субначальных и субфинальных индексов. |
olcIndexSubstrAnyLen |
4 |
Длина для сублюбых индексов. Атрибуты длиной более этой длины обрабатываются по сегментам. |
olcIndexSubstrAnyStep |
2 |
Шаги, используемые в сублюбых запросах. Это смещение для сегментов фильтра, обрабатываемых. |
olcIndexIntLen |
4 |
Длина ключа для упорядоченных целых чисел. |
Прочее
Имя |
По умолчанию/Требуется |
Описание |
olcAttributeOptions |
x-hidden lang- |
Тагирование опций атрибутов или тегов/диапазонов опций. |
olcReferral |
|
URL перенаправления, который возвращается, когда slapd не может найти локальную базу данных. |
olcReverseLookup |
FALSE |
Включить необратимые проверки имен клиента. |
olcRootDSE |
|
Имя LDIF файла, содержащего пользовательские атрибуты для корневого DSE. |
olcReadOnly |
FALSE |
Установить весь сервер в режим только для чтения. Внимание: после установки в true, это значение нельзя изменить без изменения файлов базы данных на диске и перезагрузки slapd! |
olcLdapSyntaxes |
|
У меня действительно нет идеи, почему этот атрибут здесь. Документации в интернете нет. |
Значения конфигурации базы данных
Эти значения применимы ко всем базам данных (OLC, монитор и MDB).
Этот раздел дает общее представление о них.
Значения по умолчанию для каждой базы данных указаны ниже.
База данных MDB также имеет некоторые дополнительные атрибуты, которые поддерживаются только для этой базы данных.
Общие
Имя |
Требуется |
Описание |
olcSuffix |
:heavy_check_mark: |
DN суффикс запросов, которые будут переданы бэкенду базы данных. Это не требуется для OLC и мониторинга. |
olcReadOnly |
:heavy_check_mark: |
Устанавливает эту базу данных в режим только для чтения. Изменения невозможны. |
olcHidden |
:heavy_multiplication_x: |
Не отвечать на любые запросы к этой базе данных. slapd будет отрицать существование этой базы данных. |
olcLastMod |
:heavy_check_mark: |
Будет ли slapd автоматически поддерживать modfiersName , modifyTimestamp , creatorsName , createTimestamp , entryCSN и entryUUID . |
olcSubordinate |
:heavy_multiplication_x: |
Является ли эта база данных подчиненной другой базе данных. |
Безопасность
Имя |
Требуется |
Описание |
olcSecurity |
:heavy_multiplication_x: |
Укажите набор факторов защиты, которые нужно требовать. |
olcRootDN |
:heavy_check_mark: |
Имя RootDN для этой базы данных. |
olcRootPW |
:heavy_check_mark: |
Хешированный пароль RootDN для этой базы данных. |
olcRequires |
:heavy_multiplication_x: |
Набор условий, которые нужно требовать. |
olcRestrict |
:heavy_multiplication_x: |
Список операций, которые ограничены. |
olcAddContentAcl |
:heavy_check_mark: |
Будут ли операции выполнять проверку ACL по содержимому добавляемой записи. |
olcAccess |
:heavy_check_mark: |
Массив правил ACL для этой базы данных. |
Тайм-ауты и ограничения
Имя |
Требуется |
Описание |
olcTimeLimit |
:heavy_multiplication_x: |
Максимальное количество секунд, которое slapd будет тратить на ответ на запрос. Допускается значение unlimited . |
olcSizeLimit |
:heavy_multiplication_x: |
Максимальное количество записей для возвращения из поиска. |
olcLimits |
:heavy_multiplication_x: |
Ограничения по времени и размеру на основе инициатора операции или базового DN. |
Syncrepl
Имя |
Требуется |
Описание |
olcSyncrepl |
:heavy_multiplication_x: |
Основная конфигурация Syncrepl. |
olcUpdateDN |
:heavy_multiplication_x: |
DN, которому разрешено обновлять реплику. Не должен быть rootDN. |
olcSyncUseSubentry |
:heavy_multiplication_x: |
Хранить contextCSN syncrepl в подзаписи вместо контекстной записи. |
olcUpdateRef |
:heavy_multiplication_x: |
Перенаправление, которое следует передать, когда slapd запрашивает изменение реплицированной базы данных. |
olcMirrorMode |
:heavy_multiplication_x: |
Устанавливает эту базу данных в режим зеркала. |
slurpd
Имя |
Требуется |
Описание |
olcReplica |
:heavy_multiplication_x: |
|
olcReplicaArgsFile |
:heavy_multiplication_x: |
|
olcReplicaPidFile |
:heavy_multiplication_x: |
|
olcReplicationInterval |
:heavy_multiplication_x: |
|
olcReplogFile |
:heavy_multiplication_x: |
|
Прочее
Имя |
Требуется |
Описание |
olcSchemaDN |
:heavy_multiplication_x: |
DN для подзаписи подсхемы для записей. |
olcMaxDerefDepth |
:heavy_multiplication_x: |
Максимальное количество алиасов для отслеживания. |
olcPlugin |
:heavy_multiplication_x: |
Загрузка slapi плагинов. |
olcMonitoring |
:heavy_multiplication_x: |
Сбор данных мониторинга для этой базы данных. |
olcExtraAttrs |
:heavy_multiplication_x: |
Укажите атрибуты для возврата, даже если они не ищутся. |
Настройки MDB
Эти настройки применимы только к базе данных MDB!
Имя |
Требуется |
По умолчанию |
Описание |
olcDbDirectory |
:heavy_check_mark: |
{{slapd_mdb_dir}} |
Путь к директории базы данных на диске. |
olcDbNoSync |
:heavy_multiplication_x: |
TRUE |
Не синхронизировать немедленно после получения данных. |
olcDbCheckpoint |
:heavy_multiplication_x: |
8192 15 |
Как часто (КБ/минут) сбрасывать базу данных на диск. |
olcDbMaxReaders |
:heavy_multiplication_x: |
|
Максимальное количество потоков, которые могут одновременно получать доступ к базе данных. |
olcDbMaxSize |
:heavy_multiplication_x: |
|
Максимальный размер базы данных в байтах. |
olcDbMode |
:heavy_multiplication_x: |
0600 |
Режим файлов базы данных. |
olcDbSearchStack |
:heavy_multiplication_x: |
16 |
Глубина стека во время выполнения фильтров поиска. |
olcDbRtxnSize |
:heavy_multiplication_x: |
|
Количество записей для обработки в одной операции чтения. |
olcDbIndex |
:heavy_multiplication_x: |
|
Индексы, которые нужно создать для этой базы данных. |
Значения по умолчанию для каждой базы данных
Имя |
По умолчанию frontend |
По умолчанию OLC |
По умолчанию монитор |
По умолчанию MDB |
olcSuffix |
|
|
|
:exclamation: |
olcReadOnly |
FALSE |
FALSE |
|
|
olcHidden |
FALSE |
|
|
|
olcLastMod |
TRUE |
TRUE |
|
|
olcSubordinate |
|
|
|
|
olcSecurity |
|
|
|
|
olcRootDN |
|
{{slapd_olc_rootdn}} |
cn=root,cn=monitor |
cn=root,{{olcSuffix}} |
olcRootPW |
|
[Хешированный пароль] |
[Хешированный пароль] |
[Хешированный пароль] |
olcRequires |
|
|
|
|
olcRestrict |
|
|
|
|
olcAddContentAcl |
TRUE |
TRUE |
|
|
olcAccess |
'to * by * read' |
'to * by * none' |
'to * by * none' |
'to * by * none' |
olcTimeLimit |
|
|
|
|
olcSizeLimit |
|
|
|
|
olcLimits |
|
|
|
|
olcSyncrepl |
|
|
|
|
olcUpdateDN |
|
|
|
|
olcSyncUseSubentry |
FALSE |
FALSE |
|
|
olcUpdateRef |
|
|
|
|
olcMirrorMode |
FALSE |
|
|
|
olcReplica |
|
|
|
|
olcReplicaArgsFile |
|
|
|
|
olcReplicaPidFile |
|
|
|
|
olcReplicationInterval |
|
|
|
|
olcReplogFile |
|
|
|
|
olcSchemaDN |
cn=Subschema |
|
|
|
olcMaxDerefDepth |
15 |
15 |
|
|
olcPlugin |
|
|
|
|
olcMonitoring |
FALSE |
FALSE |
|
|
olcExtraAttrs |
|
|
|
|
Зависимости
schema2ldif
должен быть установлен.
Пример плейбука
- hosts: ldap
roles:
- slapd-config
slapd_modules_path: /usr/lib/openldap
slapd_olc_rootdn_password: water
slapd_mdb_rootdn_password: water
slapd_monitor_rootdn_password: water
slapd_additional_modules: [ 'memberof' ]
slapd_mdb_config:
olcSuffix: "dc=example,dc=com"
slapd_mdb_overlays:
memberof:
olcOverlay: memberof
objectClass: olcMemberOf
olcMemberOfDangling: ignore
Лицензия
Эта работа лицензирована под Creative Commons Attribution-ShareAlike 4.0 International License.
Авторская информация