| |
Модуль ppolicy предоставляет возможности расширенного управления паролями, применяемые к попыткам подключения к OpenLDAP не от имени rootdn. Стандартное наложение ppolicy предоставляет следующие контролируемые пользователем возможности:
Спецификация такой функциональности описана в черновом RFC draft-behera-ldap-password-policy-09.txt, которое, если память нам не изменяет, остаётся в таком состоянии с 2005 года.
Примечание: Стандартный модуль ppolicy при определённых условиях может вызывать чрезмерное количество блокировок, что добавляет работы администраторам и приводит к разочарованию пользователей. В частности, так происходит при внедрении функции устаревания пароля и работе с утилитами LDAP, кэширующими пароли. Если закэшированный пароль не был изменён сразу же после того, как пользователь сменил свой пароль, то при очередной попытке подключения будет использоваться предыдущий (закэшированный) пароль, что приведёт к сбою подключения. В большинстве случаев при ошибках подключения утилита выполняет несколько повторных попыток подключения (3, 5 и более попыток — не редкость), что, в свою очередь, может привести к превышению пороговых значений попыток неудачного подключения и блокировки учётной записи. Mozilla Corporation попросила Zytrax разработать модифицированную версию ppolicy, которая делает различия между повторными попытками входа с использованием одного и того же пароля и попытками входа с использованием различающихся паролей (как бывает при атаках подбора пароля по словарю), и использует разные стратегии блокировки для разных условий. Модифицированная версия в настоящий момент используется на промышленных серверах (версий 2.4.11 и 2.4.16) и господин Aravind Gottipati из Mozilla Corporation написал об этом заметку в своём блоге. Mozilla Corporation сделала данные модификации свободно доступными и их можно скачать с сайта zytrax.com для OpenLDAP версии 2.4.11 и OpenLDAP версии 2.4.16. Полные инструкции и модифицированные man-страницы прилагаются. Документация на этой странице относится и к стандартной версии модуля от OpenLDAP, и к модифицированной версии. Части документации, относящиеся к модифицированной версии, заключены в теги <MODIFIED></MODIFIED>.
Обзор использования
Директивы конфигурации OpenLDAP
Объектный класс pwdPolicy и его атрибуты
Операционные атрибуты
Набор схемы данных ppolicy
Разблокировка учётной записи
Примеры конфигурации
Политика паролей устанавливается на определённое DIT комбинацией подключения файла набора схемы данных ppolicy.schema, указания директивы overlay ppolicy и опциональных директив конфигурации ppolicy, а также определения одной или нескольких записей политик паролей. Модуль политики паролей также генерирует несколько операционных атрибутов, которые могут быть использованы для проверки статуса (а в некоторых случаях — для управления) политиками паролей пользовательских записей.
Установка наложения политики паролей при использовании OLC (cn=config):
Загрузить файл ppolicy.schema с помощью описанной здесь процедуры.
Если модуль ppolicy подгружается динамически, его необходимо добавить как атрибут olcModuleLoad с помощью описанной здесь процедуры.
Запись наложения ppolicy необходимо добавить для соответствующей базы данных с помощью описанной здесь процедуры.
Запись наложения ppolicy создаётся с использованием объектного класса olcPPolicyConfig, а затем в данную запись добавляются специфичные для этого объектного класса атрибуты как показано ниже.
Установка наложения политики паролей на конкретное DIT при использовании slapd.conf:
... # подключение набора схемы ppolicy include ppolicy.schema ... # требуется, если наложение было собрано динамически loadmodule ppolicy.la # ЛИБО loadmodule ppolicy.so ... database bdb suffix "dc=example,dc=com" ... # включение политик паролей только для данного DIT overlay ppolicy # опционально - директивы ppolicy ... # другие директивы overlay # либо следующая директива database
# форма OLC (cn=config) olcPPolicyDefault: DN # форма slapd.conf ppolicy_default DN # пример # форма OLC (cn=config) olcPPolicyDefault: cn=defaultpwpolicy,dc=example.com # форма slapd.conf ppolicy_default "cn=defaultpwpolicy,dc=example.com"
Данный атрибут/директива определяет DN политики паролей по умолчанию, которая будет применяться при отсутствии у пользователя какой-либо конкретной политики паролей.
Таким образом, директива ppolicy_default определяет политику паролей для всего DIT и является самым простым путём задействования возможностей политики паролей. Как только задана политика паролей по умолчанию, дополнительная конфигурация не требуется. Если присутствует специфичная политика паролей для записи пользователя (определяется с помощью атрибута pwdPolicySubentry), всегда будет применяться она, а не политика по умолчанию.
Если атрибут olcPPolicyDefault (директива ppolicy_default) не определялся и для записи пользователя нет специфичной политики паролей, то для этой записи пользователя не будет применяться никакой политики паролей. Таким образом существует возможность определить общую политику для всех пользователей, специфичную политику для каждого пользователя, либо применять политику паролей только для ограниченного количества пользователей или класса пользователей.
# форма OLC (cn=config) olcPPolicyHashCleartext: TRUE | FALSE # форма slapd.conf ppolicy_hash_cleartext # данная директива не принимает никаких параметров ppolicy_hash_cleartext
Данный атрибут/директива указывает серверу сохранять в DIT пароли, вводимые в открытом виде с помощью стандартных запросов Add или Modify, применяя к ним установленный по умолчанию для сервера алгоритм хэширования. Если эта директива не используется, такие пароли будут сохраняться в открытом виде, и это означает, что в ответ на простые поисковые запросы будут возвращаться пароли в открытом виде. Чтобы защититься от такой напасти, ко всем парольным атрибутам необходимо закрывать доступ на чтение для всех пользователей (кстати, неплохая политика даже при использовании хэшированных паролей). В данном атрибуте/директиве нет необходимости, если все LDAP-клиенты способны выполнять и выполняют расширенную операцию Password Modify.
# форма OLC (cn=config) olcPPolicyUseLockout: TRUE | FALSE # форма slapd.conf ppolicy_use_lockout # данная директива не принимает никаких параметров ppolicy_use_lockout
Попытки подключения от имени заблокированной учётной записи всегда будут возвращать ошибку (по умолчанию InvalidCredentials). Данный атрибут/директива позволяет серверу возвращать специфичный код ошибки AccountLocked. Хотим предупредить, что возврат кода ошибки AccountLocked может оказать услугу хакерам. Если они исследуют реакцию на те или иные попытки получения доступа, выясняя тем самым рабочие установки сервера (такие, например, как пороговое значение неверных попыток до блокировки учётной записи), то возврат AccountLocked может помочь им в последующих атаках.
# форма OLC (cn=config) olcPPolicyForwardUpdates: TRUE | FALSE # форма slapd.conf ppolicy_forward_updates # данная директива не принимает никаких параметров ppolicy_forward_updates
Применять данный атрибут/директиву можно только в конфигурации подчинённого сервера (потребителя) репликации. Наличие этого атрибута/директивы указывает, что нарушения политики паролей не будут помещаться на данный подчинённый сервер (потребитель), а будут сразу записываться на главный сервер (поставщик) репликации. При наличии данного атрибута/директивы необходимо, чтобы в конфигурации сервера присутствовал атрибут/директива olcUpdateRef/updateref и было настроено наложение chain.
Чтобы установить политики паролей, должны быть определены одна или несколько записей, основанных на вспомогательном (AUXILIARY) объектном классе pwdPolicy. Эти записи политик могут быть установлены как для конкретных учётных записей пользователей, так и для классов учётных записей, а также для всего DIT в целом. Если требуется установка на уровне конкретной учётной записи, то к записи пользователя, основанной, например, на объектном классе inetOrgPerson, требуется добавить атрибут pwdPolicySubentry, в котором указывается DN записи той политики паролей, которая будет применяться к данной учётной записи. Определение набора схемы данных для объектного класса pwdPolicy можно посмотреть здесь. В последующих подразделах описывается каждый атрибут данного объектного класса. Несколько рабочих примеров представлены далее.
pwdAllowUserChange TRUE | FALSE # пример pwdAllowUserChange TRUE
Данный атрибут управляет тем, разрешено ли пользователям менять собственные пароли. Если значение этого атрибута — TRUE (по умолчанию), то пользователям разрешено менять свои пароли. Если значение этого атрибута — FALSE, то пользователям не разрешено менять свои пароли (поменять им пароли может только администратор).
pwdAttribute attribute-name # пример pwdAttribute secretCode
Данный атрибут позволяет дополнительно расширить политику паролей, чтобы она распространялась на разные парольные атрибуты. Значение по умолчанию (в данный момент поддерживается только оно) — userPassword. Таким образом, политика паролей (в настоящее время) применяется только к операциям подсоединения, использующим пароль, который хранится в атрибуте userPassword. Пока можно безболезненно не указывать этот атрибут.
pwdCheckModule name-of-module # пример pwdCheckModule pwcheck.la
Данный атрибут определяет название пользовательского модуля проверки качества пароля, который будет вызываться для выполнения проверки качества пароля и имеет смысл только в том случае, когда атрибут pwdCheckQuality установлен в 1 или 2, во всех остальных случаях данный атрибут можно не указывать. Примечание: pwdCheckModule — нестандартное расширение политик паролей LDAP.
pwdCheckQuality value # пример pwdCheckQuality 0
Если значение данного параметра — 0 (по умолчанию), то никаких проверок паролей не проводится. Если его значение — 1 и предоставляется пароль в открытом виде, то для проверки качества пароля будет вызвана пользовательская функция (если таковая определена в атрибуте pwdCheckModule). Если эта пользовательская функция недоступна, то пароль будет принят (если, опять же, он успешно пройдёт все остальные тесты, определённые в различных атрибутах pwdPolicy). Если значение данного атрибута — 2 и предоставляется пароль в открытом виде, то для проверки качества пароля будет вызвана пользовательская функция. Если эта пользовательская функция недоступна, то пароль будет отклонён. Если пользовательский модуль проверки качества паролей не предоставляется, данный атрибут можно безболезненно не указывать.
pwdExpireWarning time-in-seconds # пример pwdExpireWarning 3600
Данный атрибут управляет предупреждающими сообщениями об устаревании пароля, которые возвращаются пользователю при попытке подключения. Если его значение — 0 (по умолчанию), то при попытках подключения предупреждающих сообщений выдаваться не будет до того момента, пока пароль всё ещё действителен. Если значение больше 0, то оно определяет время (в секундах) до момента устаревания пароля, при наступлении которого предупреждающие сообщения об устаревании пароля начнут возвращаться при попытках подключения.
pwdFailureCountInterval time-in-seconds # пример pwdFailureCountInterval 20
Данный атрибут управляет тем, когда сбрасывается счётчик последовательных неудачных попыток ввода пароля. Если его значение — 0 (по умолчанию), то счётчик последовательных неудачных попыток ввода пароля сбрасывается только в случае успешного прохождения аутентификации. Если значение больше 0, то оно определяет время (в секундах), по прошествии которого счётчик последовательных неудачных попыток ввода пароля сбрасывается, даже если не произошло удачной попытки подключения (аутентификации).
pwdGraceAuthNLimit number # пример pwdGraceAuthNLimit 5
Данный атрибут управляет тем, будут ли разрешены дополнительные операции подсоединения после того, как пароль устарел — часто это называется периодом отложенной блокировки (дословный перевод — период милосердных подключений). Если его значение — 0 (по умолчанию), то любые попытки подсоединения с использованием устаревшего пароля будут отклоняться. Если значение больше 0, то оно определяет количество успешных подсоединений, которое пользователю разрешено произвести с использованием устаревшего пароля. Если этот лимит достигнут и пароль не был изменён, все последующие операции подсоединения будут отклоняться.
pwdInHistory no-of-passwords # пример pwdInHistory 5
Данный атрибут управляет количеством паролей, которые будут содержаться в списке прежде использовавшихся паролей, — истории паролей, — для учётной записи. Когда пользователь меняет свой пароль, этот пароль сверяется с данным списком истории паролей, и, если будет найдено совпадение, такой пароль будет отклонён. Если пароль не совпал ни с одним из списка истории паролей, то он будет применён в качестве нового пароля и добавлен в список истории, а самое старое значение из этого списка будет удалено. Суть в том, чтобы заставить пользователя генерировать такие пароли, которые не использовались прежде, или, хотя бы за ограниченный историей паролей промежуток времени. Все пароли в списке истории паролей хранятся с применением установленного по умолчанию для сервера метода хэширования. Если значение данного атрибута — 0 (по умолчанию), значит история паролей вестись не будет. В этом случае будет лишь проверяться, чтобы новый пароль не совпадал с текущим.
pwdLockout TRUE | FALSE # пример pwdLockout TRUE
Данный атрибут управляет тем, какое действие будет предпринято при превышении для учётной записи количества последовательных неудачных попыток подсоединения с неверным паролем значения, указанного в атрибуте pwdMaxFailure. Если его значение — TRUE (по умолчанию), то учётная запись будет заблокирована — дальнейшие попытки подсоединения будут отклоняться, пока учётная запись не будет разблокирована администратором (подробности о том, как это делается, смотрите в подразделе о разблокировке учётной записи). Если значение данного атрибута — FALSE, учётная запись не блокируется и разрешается любое количество последовательных попыток подсоединения с неверным паролем.
pwdLockoutDuration number-of-seconds # пример pwdLockoutDuration 0
Данный атрибут управляет тем, как долго учётная запись остаётся заблокированной; имеет смысл только если атрибут pwdLockout установлен в TRUE. Если его значение — 0 (по умолчанию), пользователь не сможет получить доступ к заблокированной учётной записи, пока эта учётная запись не будет разблокирована администратором (подробности о том, как это делается, смотрите в подразделе о разблокировке учётной записи). Если значение больше 0, то оно определяет время (в секундах), в течение которого учётная запись остаётся заблокированной. По окончании данного периода учётная запись автоматически разблокируется.
pwdMaxAge time-in-seconds # пример pwdMaxAge 2592000
Это один из тех атрибутов, значение которого требует сложных расчётов. Он определяет максимальное время (в секундах), в течение которого пароль считается действительным. По истечении данного промежутка времени считается, что пароль нельзя больше применять, и потому любые операции подсоединения с данным устаревшим паролем будут интерпретироваться как неверные. То ужасное значение, которое мы привели в примере, составляет 30 дней, это значит, что пароли необходимо менять каждые 30 дней. Значение по умолчанию — 0 означает, что пароли не устаревают никогда.
pwdMaxFailure number-of-attempts # пример pwdMaxFailure 5
Данный атрибут управляет тем, какое количество последовательных попыток ввода неверного пароля будет разрешено сделать перед тем, как будет выполнено действие, определённое в атрибуте pwdLockout. Если его значение — 0 (по умолчанию), будет разрешено сделать неограниченное количество последовательных попыток ввода неверного пароля. Если значение больше 0, то оно определяет максимальное количество последовательных попыток ввода неверного пароля, которые разрешено сделать перед выполнением действия, определённого в атрибуте pwdLockout. Любая успешная операция подсоединения сбрасывает данный счётчик.
<MODIFIED>pwdMaxTotalAttempts number-of-attempts # пример pwdMaxTotalAttempts 50
Данный атрибут управляет тем, какое количество последовательных попыток ввода неверного пароля, в том числе повторного ввода одного и того же пароля, будет разрешено сделать перед выполнением действия, определённого в атрибуте pwdLockout. Если его значение — 0 (по умолчанию), проверка повторного ввода пароля осуществляться не будет. Если значение больше 0 (положительное число), то оно определяет максимальное количество последовательных попыток ввода неверного пароля (суммарное значение повторяющихся и уникальных неверных паролей), которые разрешено сделать перед выполнением действия, определённого в атрибуте pwdLockout. Если значение — -1, то разрешено делать неограниченное количество повторных попыток ввода одного и того же неверного пароля. Во всех случаях количество попыток ввода уникального неверного пароля контролируется атрибутом pwdMaxFailure.
</MODIFIED>pwdMinAge time-in-seconds # пример pwdMinAge 3600
Данный атрибут управляет минимальным временем (в секундах) между сменами пароля. В приведённом выше примере пароль может изменяться не чаще чем раз в час (3600 секунд). Попытки изменить пароль до истечения этого времени будут отклоняться. Значение по умолчанию — 0 позволяет производить смену пароля в любое время с момента последнего изменения.
pwdMinLength bytes # пример pwdMinLength 6
Данный атрибут управляет тем, будет ли сервер выполнять проверку минимальной длины пароля. Если его значение — 0 (по умолчанию), проверка длины пароля осуществляться не будет. Если значение больше 0, то оно определяет минимальную длину предоставляемого пользователем пароля. Пароли, длина которых меньше этого значения, будут отклоняться. Если предоставляется пароль в хэшированном виде, проверка длины не может быть осуществлена, и выполняется действие по умолчанию, определённое атрибутом pwdCheckQuality: если его значение — 0 (по умолчанию) или 1, пароль принимается, если 2 -отклоняется.
pwdMustChange TRUE | FALSE # пример pwdMustChange TRUE
Данный атрибут управляет тем, должен ли пользователь сменить свой пароль после того, как его учётная запись была разблокирована администратором после её блокировки; имеет смысл только если атрибут pwdLockout установлен в TRUE. Если значение атрибута pwdMustChange — FALSE (по умолчанию), то пользователю не обязательно менять свой пароль после того, как его учётная запись разблокирована. Если его значение — TRUE, то пользователь ДОЛЖЕН поменять свой пароль после того, как его учётная запись разблокирована. Если для разблокировки учётной записи используется атрибут pwdReset, то его значение переопределяет значение данного атрибута.
pwdSafeModify TRUE | FALSE # пример pwdSafeModify TRUE
Данный атрибут управляет тем, должен ли пользователь отправлять свой текущий пароль во время операции смены пароля. Если его значение — FALSE (по умолчанию), то пользователю не требуется отправлять свой текущий пароль. Если значение — TRUE, то пользователь ДОЛЖЕН отправлять свой текущий пароль при модификации значения пароля.
Модуль ppolicy использует несколько операционных атрибутов в записи пользователя для того, чтобы обозначить статус учётной записи и позволить администратору разблокировать учётную запись, перешедшую в состояние блокировки.
pwdAccountLockedTime account-locked-time
Данный атрибут показывает время с момента блокировки учётной записи и будет появляться лишь в том случае, если атрибут pwdLockout установлен в TRUE. Если данный атрибут удалён администратором, то учётная запись становится разблокированной и существующий пароль может быть использован (подразумевается, что он не устарел). Смотрите подраздел о разблокировке учётной записи.
pwdChangedTime last-password-change-time
Атрибут только для чтения. Данный атрибут показывает время последнего изменения пароля для данной записи.
pwdFailureTime invalid-password-attempt-time
Атрибут только для чтения. Этот атрибут, у которого может быть несколько значений, показывает время каждой попытки неудачного ввода пароля.
pwdGraceUseTime grace-auth-time
Атрибут только для чтения. Этот атрибут, у которого может быть несколько значений, содержит время каждого удачного подсоединения (аутентификации) после того, как пароль стал устаревшим. Он присутствует только в том случае, если есть атрибут pwdGraceAuthNLimit, значение которого больше 0.
pwdHistory hashed-user-password
Атрибут только для чтения. Этот атрибут, у которого может быть несколько значений, содержит хэшированные значения использованных ранее паролей (в том числе текущий пароль), количество которых ограничено значением атрибута pwdInHistory. Он присутствует только в том случае, если есть атрибут pwdInHistory, значение которого больше 0.
pwdPolicySubentry DN # пример pwdPolicySubentry "cn=adminusers,ou=ppolicies,dc=example,dc=com"
Данный атрибут управляет тем, будет ли к пользовательской записи применяться уникальная политика паролей или политика паролей по умолчанию (в обоих случаях это записи с объектным классом pwdPolicy). Если проверка соответствия политике паролей активирована для данного DIT (определена директива overlay ppolicy) и в пользовательской записи нет атрибута pwdPolicySubentry, то для данной записи применяется политика паролей по умолчанию, определённая директивой ppolicy_default. Если директива ppolicy_default не была определена, то для данной записи не применяется никакой политики паролей. Если атрибут pwdPolicySubentry присутствует в пользовательской записи, то политика паролей (запись с объектным классом pwdPolicy), DN которой указан в качестве значения данного атрибута, будет использоваться для данной пользовательской записи. Примечание: Подразумевается, что для данного DIT была определена директива конфигурации overlay ppolicy. Если это не так, то проверок паролей в данном DIT производиться не будет, независимо от значений данного атрибута.
pwdReset TRUE | FALSE # пример pwdReset TRUE
Данный атрибут может использоваться администратором для сброса блокировки учётной записи. Если его значение — TRUE, пользователь должен сменить свой пароль до следующей попытки подсоединения. Если его значение — FALSE, то учётная запись разблокирована, но при этом пользователю не обязательно менять свой пароль. Значение данного атрибута переопределяет установку атрибута pwdMustChange.
<MODIFIED>pwdUniqueAttempts hashed-invalid-password
Атрибут только для чтения. Этот атрибут, у которого может быть несколько значений, содержит хэшированные значения и время каждой попытки ввода уникального неверного пароля. Он присутствует только в том случае, если есть атрибут pwdMaxTotalAttempts с ненулевым (не равным 0) значением. Максимальное количество значений атрибута pwdUniqueAttempts определяется значением атрибута pwdMaxFailure. Если значение атрибута pwdMaxTotalAttempts больше 0, в значении атрибута pwdUniqueAttempts также содержится количество использований каждого неверного пароля.
</MODIFIED>Если учётная запись пользователя заблокирована (атрибут pwdLockout должен быть установлен в TRUE), то она может быть разблокирована администратором с помощью одной из следующих процедур:
Удаления операционного атрибута pwdAccountLockedTime. Данная процедура позволяет пользователю продолжить использование текущего пароля и эффективна лишь в том случае, если срок действия пароля не истёк.
Добавления операционного атрибута pwdReset со значением TRUE или FALSE. Добавление данного атрибута со значением FALSE эффективно лишь в том случае, если срок действия пароля не истёк, и имеет тот же эффект, что и удаление атрибута pwdAccountLockedTime.
Для иллюстрации использования ppolicy рассматриваются два сценария. В первом единственная политика по умолчанию используется для всех пользовательских записей. Во втором используется отдельная политика для учётной записи.
Политика по умолчанию в виде записи с объектным классом pwdPolicy создаётся и добавляется в DIT с помощью следующего фрагмента LDIF:
# Добавление политики по умолчанию для DIT. # Атрибуты, начинающиеся с #, показывают # значения по умолчанию и могут быть пропущены. # Пароли должны меняться каждые 30 дней, # иметь минимальную длину 6 символов. Пользователи # будут получать предупреждения об устаревании пароля # за 1 час до устаревания. После того, как было произведено # 5 последовательных попыток ввода неверного пароля, # учётная запись будет заблокирована и разблокировать её # может только администратор. От пользователей не требуется # предъявлять старый пароль при смене пароля. dn: cn=default,ou=pwpolicies,dc=example,dc=com objectClass: pwdPolicy cn: default pwdMaxAge: 2592000 pwdExpireWarning: 3600 #pwdInHistory: 0 #pwdCheckQuality: 0 pwdMaxFailure: 5 pwdLockout: TRUE #pwdLockoutDuration: 0 #pwdGraceAuthNLimit: 0 #pwdFailureCountInterval: 0 pwdMustChange: TRUE pwdMinLength: 6 #pwdAllowUserChange: TRUE pwdSafeModify: FALSE
Наложение ppolicy подключается к DIT путём добавления следующих директив в конфигурационный файл (или с помощью соответствующих значений olc при использовании cn=config):
... # подключение набора схемы ppolicy include ppolicy.schema ... # требуется, если наложение было собрано динамически loadmodule ppolicy.la # ЛИБО loadmodule ppolicy.so ... database bdb suffix "dc=example,dc=com" ... # включение политик паролей только для данного DIT overlay ppolicy # определение политики по умолчанию ppolicy_default "cn=default,cn=pwpolicies,dc=example,dc=com" # опционально - директивы ppolicy ... # другие директивы overlay # либо следующая директива database
Политика паролей распространяется на все учётные записи в данном DIT. Других действий не требуется.
Политика паролей по умолчанию и отдельная политика для конкретного пользователя в виде записей с объектным классом pwdPolicy создаются и добавляются в DIT с помощью следующего фрагмента LDIF:
# Добавление политики по умолчанию для DIT. # Атрибуты, начинающиеся с #, показывают # значения по умолчанию и могут быть пропущены. # Пароли должны меняться каждые 30 дней, # иметь минимальную длину 6 символов. Пользователи # будут получать предупреждения об устаревании пароля # за 1 час до устаревания. После того, как было произведено # 5 последовательных попыток ввода неверного пароля, # учётная запись будет заблокирована и разблокировать её # может только администратор. От пользователей не требуется # предъявлять старый пароль при смене пароля. dn: cn=default,ou=pwpolicies,dc=example,dc=com objectClass: pwdPolicy cn: default pwdMaxAge: 2592000 pwdExpireWarning: 3600 #pwdInHistory: 0 #pwdCheckQuality: 0 pwdMaxFailure: 5 pwdLockout: TRUE #pwdLockoutDuration: 0 #pwdGraceAuthNLimit: 0 #pwdFailureCountInterval: 0 pwdMustChange: TRUE pwdMinLength: 6 #pwdAllowUserChange: TRUE pwdSafeModify: FALSE # Добавление в DIT специфичной для пользователя политики. # Атрибуты, начинающиеся с #, показывают # значения по умолчанию и могут быть пропущены. # Пароли должны меняться каждые 7 дней, # иметь минимальную длину 10 символов. Пользователи # не будут получать предупреждения об устаревании пароля. # После того, как было произведено # 3 последовательных попытки ввода неверного пароля, # учётная запись будет заблокирована и разблокировать её # может только администратор. От пользователей требуется # предъявлять старый пароль при смене пароля. dn: cn=user,ou=pwpolicies,dc=example,dc=com objectClass: pwdPolicy cn: user pwdMaxAge: 604800 # pwdExpireWarning: 0 pwdInHistory: 3 #pwdCheckQuality: 0 pwdMaxFailure: 3 pwdLockout: TRUE #pwdLockoutDuration: 0 #pwdGraceAuthNLimit: 0 #pwdFailureCountInterval: 0 pwdMustChange: TRUE pwdMinLength: 10 #pwdAllowUserChange: TRUE pwdSafeModify: TRUE
Наложение ppolicy подключается к DIT путём добавления следующих директив в конфигурационный файл (или с помощью соответствующих значений olc при использовании cn=config):
... # подключение набора схемы ppolicy include ppolicy.schema ... # требуется, если наложение было собрано динамически loadmodule ppolicy.la # ЛИБО loadmodule ppolicy.so ... database bdb suffix "dc=example,dc=com" ... # включение политик паролей только для данного DIT overlay ppolicy # определение политики по умолчанию ppolicy_default "cn=default,cn=pwpolicies,dc=example,dc=com" # опционально - директивы ppolicy ... # другие директивы overlay # либо следующая директива database
Наконец, учётные записи пользователей, к которым будет применяться отдельная политика, модифицируются, — добавляется указатель на специфичную политику, — с помощью следующего фрагмента LDIF:
# указываем пользовательской записи применять специфичную политику dn: cn=John Smith,ou=people,dc=example,dc=com changetype: modify add: pwdPolicySubentry pwdPolicySubentry: "cn=user,ou=pwpolicies,dc=example,dc=com"
Политика паролей по умолчанию распространяется на все учётные записи в данном DIT, за исключением учётной записи John Smith, которая использует политику, определённую в "cn=user,ou=pwpolicy,dc=example,dc=com". Других действий не требуется.
Проблемы, комментарии, предположения, исправления (включая битые ссылки) или есть что добавить? Пожалуйста, выкроите время в потоке занятой жизни, чтобы написать нам, вебмастеру или в службу поддержки. Оставшийся день Вы проведёте с чувством удовлетворения.
Нашли ошибку в переводе? Сообщите переводчикам!
Copyright © 1994-2017 ZyTrax, Inc. Все права защищены. Последнее изменение страницы: 21 октября 2015 г.
Переведено участниками проекта Pro-LDAP.ru в 2012 г.
Закладки на сайте Проследить за страницей |
Created 1996-2024 by Maxim Chirkov Добавить, Поддержать, Вебмастеру |