Настройка хранения и применения списка запрещенных паролей
В Эллес реализована возможность хранения списка запрещенных паролей и выполнения проверок на его основе при смене и сбросе пароля.
Общие сведения
Чтобы предотвратить использование простых, словарных или скомпрометированных паролей, Эллес:
-
позволяет задать список паролей, которые пользователи не должны использовать по каким-либо причинам (например, в случае компрометации);
-
поддерживает расширение схемы каталога специальным атрибутом для хранения в LDAP пути к списку запрещенных паролей относительно каталога sysvol;
-
предоставляет инструменты для применения проверки по списку к пользователям и группам с помощью объекта парольной политики (Password Settings Object, PSO);
-
обеспечивает проверку пароля по списку при его смене пользователем или при сбросе администратором с выводом предупреждения в случае совпадения с одним из запрещенных вариантов.
Последовательность настройки хранения и применения списка запрещенных паролей включает:
-
Расширение схемы каталога атрибутом
msDS-RestrictedPasswords. -
Создание файла со списком запрещенных паролей.
-
Создание парольной политики (PSO) для применения списка запрещенных паролей.
-
Добавление CSV-файла со списком запрещенных паролей в PSO.
-
Назначение парольной политики пользователю или группе безопасности.
В результате настройки при смене пароля пользователем или его сбросе администратором новый пароль проверяется по списку. В случае совпадения с одним из значений в списке выдается предупреждение.
Данные из файла кэшируются в БД контроллера домена Эллес для ускорения вызовов при проверках.
Расширение схемы каталога
Для поддержки функциональности проверки паролей по списку запрещенных класс ms-DS-Password-Settings расширяется атрибутом msDS-RestrictedPasswords.
Класс ms-DS-Password-Settings предназначен для хранения объектов (PSO), определяющих параметры детализированной парольной политики (Fine-Grained Password Policy, FGPP). В отличие от стандартной доменной политики, которая применяется ко всему домену, объекты этого класса позволяют задать индивидуальные параметры для конкретных учетных записей или групп безопасности.
Атрибут msDS-RestrictedPasswords хранит имя файла со списком запрещенных паролей и путь к нему (по умолчанию — относительно доменного подкаталога в каталоге sysvol).
Чтобы добавить атрибут в схему каталога, выполните на контроллере домена Эллес от имени пользователя, включенного в группу Schema Admins, с действующим билетом Kerberos:
samba-tool schema extend pso-rp
| См. описание синтаксиса и параметров вызова подкоманды в разделе «Расширение схемы для хранения списка запрещенных паролей». |
Для проверки того, что атрибут корректно добавлен в объект ms-DS-Password-Settings, может использоваться подкоманда:
samba-tool schema objectclass show ms-DS-Password-Settings | grep msDS-RestrictedPasswords mayContain: msDS-RestrictedPasswords
Для просмотра описания атрибута используйте подкоманду:
samba-tool schema attribute show msDS-RestrictedPasswords dn: CN=msDS-RestrictedPasswords,CN=Schema,CN=Configuration,DC=elles,DC=inno,DC=tech objectClass: top objectClass: attributeSchema cn: msDS-RestrictedPasswords instanceType: 4 whenCreated: 20260219103835.0Z whenChanged: 20260219103835.0Z uSNCreated: 12612 attributeID: 1.2.840.113556.1.8000.2554.50051.45980.28112.18903.35903.6685103. 1224907.3.1 attributeSyntax: 2.5.5.5 isSingleValued: TRUE uSNChanged: 12612 showInAdvancedViewOnly: FALSE adminDisplayName: msDS-RestrictedPasswords adminDescription: Name of password blacklist file oMSyntax: 19 searchFlags: 0 lDAPDisplayName: msDS-RestrictedPasswords name: msDS-RestrictedPasswords objectGUID: 98513a0b-e9a9-40c6-af25-44cabffcf96a schemaIDGUID: 4063076a-33d2-4f53-aad8-3ec4951f6c1c systemOnly: FALSE isMemberOfPartialAttributeSet: FALSE objectCategory: CN=Attribute-Schema,CN=Schema,CN=Configuration,DC=elles,DC=inno,DC=tech msDS-IntId: -1861140696 distinguishedName: CN=msDS-RestrictedPasswords,CN=Schema,CN=Configuration,DC=elles,DC=inno,DC=tech
Создание файла со списком запрещенных паролей
Пароли в файле должны располагаться по одному на строке без каких-либо разделителей.
Пример содержимого файла:
0P@s$w0rd 1P@s$w0rd 2P@s$w0rd
По умолчанию при задании относительного пути ожидается, что файл размещается в доменном подкаталоге в каталоге sysvol для обеспечения репликации (см. примеры настройки репликации sysvol в разделе «Репликация каталога sysvol»).
Пример создания файла от имени локального администратора сервера контроллера домена:
sysvol="/app/inno-samba/var/locks/sysvol" (1) domain="elles.inno.tech" (2) name="pso/blacklist.txt" (3) cat <<EOF > "$sysvol/$domain/$name" 0P@s\$w0rd (4) 1P@s\$w0rd 2P@s\$w0rd EOF
В примере:
| 1 | Путь к каталогу sysvol на сервере контроллера домена. |
| 2 | Имя домена. |
| 3 | Имя файла. Если указывается путь, все его элементы (подкаталоги) должны существовать. |
| 4 | Список паролей. |
Создание объекта парольной политики (PSO)
Проверка паролей по списку запрещенных выполняется в рамках объекта парольной политики.
Пример создания объекта парольной политики с помощью samba-tool:
samba-tool domain passwordsettings pso create pso 1 \
--complexity=on \
--min-pwd-length=10
| См. описание синтаксиса и параметров вызова подкоманды в разделе «Управление парольными политиками». |
Пример создания объекта парольной политики в сервисе «Пользователи и компьютеры» в составе приложения «Менеджер службы каталогов» (DSM):
-
Выполните вход в приложение от имени учетной записи с правами, достаточными для работы с парольными политиками (PSO).
-
Откройте сервис «Пользователи и компьютеры».
-
В дереве каталога выберите контейнер System, а затем — Password Settings Container.
-
Нажмите Создать.
-
На странице Создание параметров пароля заполните поля.
-
Нажмите Создать
| Подробнее см. в разделе «Создание парольной политики (PSO)». |
Добавление файла со списком запрещенных паролей в объект парольной политики
Для загрузки файла со списком запрещенных паролей рекомендуется использовать приложение «Менеджер службы каталогов» (DSM).
Загрузка файла в приложении «Менеджер службы каталогов» (DSM)
Для работы с CSV-файлами со списками запрещенных паролей в конфигурацию приложения должна быть добавлена секция shares с настройками доступа к сетевым общим ресурсам на контроллере домена (см. описание настроек в разделе
«Настройка с использованием конфигурационного файла»).
Пример секции в файле /opt/dsm/application.yml:
shares:
pso:
share-port: 445
share-path: sysvol
pso-path: \{domain}\pso
Для загрузки CSV-файла со списком запрещенных паролей при создании или редактировании объекта парольной политики (PSO):
-
Выполните вход в приложение от имени учетной записи с правами, достаточными для работы с парольными политиками (PSO).
-
Откройте сервис «Пользователи и компьютеры».
-
На странице свойств созданного ранее объекта парольной политики (PSO) раскройте секцию Список запрещенных паролей.
Рис. 1. Загрузка списка запрещенных паролей -
Загрузите заранее созданный CSV-файл.
Рис. 2. Отображение результата загрузки списка запрещенных паролей -
Нажмите Сохранить.
Добавление имени файла вручную
Для добавления имени созданного файла со списком запрещенных паролей в значении атрибута msDS-RestrictedPasswords созданного объекта парольной политики:
-
Сформируйте LDIF-файл для добавления атрибута.
Пример содержимого файла:cat /tmp/add_blacklist.ldif dn: CN=pso,CN=Password Settings Container,CN=System,DC=elles,DC=inno,DC=tech (1) changetype: modify replace: msDS-RestrictedPasswords msDS-RestrictedPasswords: pso/blacklist.txt (2)
В примере:
1 DN объекта парольной политики, в который добавляется атрибут. 2 Значение атрибута — путь к файлу со списком запрещенных паролей (в примере путь относительный). -
Внесите изменения, например, с помощью утилиты
ldbmodify(полный путь к утилите после установки пакета inno-samba — /app/inno-samba/bin/ldbmodify):ldbmodify -H ldap://dc1 -U Administrator /tmp/add_blacklist.ldif ... Modified 1 records successfully
Для проверки корректности добавления атрибута используйте, например, утилиту ldbsearch (полный путь к утилите после установки пакета inno-samba — /app/inno-samba/bin/ldbsearch):
ldbsearch -H ldap://dc1 -b "CN=pso,CN=Password Settings Container,CN=System,DC=elles,DC=inno,DC=tech" -U Administrator | grep msDS-RestrictedPasswords ... msDS-RestrictedPasswords: pso/blacklist.txt
Применение списка запрещенных паролей
Для применения списка запрещенных паролей к пользователю или группе безопасности необходимо назначить им соответствующую парольную политику.
Пример назначения объекта парольной политики группе безопасности с помощью samba-tool:
samba-tool domain passwordsettings pso apply pso Group1
| См. описание синтаксиса и параметров вызова подкоманды в разделе «Управление парольными политиками». |
Пример назначения объекта парольной политики группе безопасности в сервисе «Пользователи и компьютеры» в составе приложения «Менеджер службы каталогов» (DSM):
-
Откройте карточку группы безопасности.
-
Раскройте раздел Параметры пароля.
-
Нажмите Выбрать.
-
В диалоговом окне выберите предварительно созданную парольную политику с установленным атрибутом
msDS-RestrictedPasswords. -
Нажмите Добавить.
После этого при смене или сбросе пароля участниками группы безопасности дополнительно выполняется проверка по списку запрещенных паролей. В случае совпадения нового пароля с одним из паролей из списка выдается предупреждение о нарушении установленных ограничений.
Например:
samba-tool user setpassword User2 --newpassword="0P@s\$w0rd" ERROR: Failed to set password for user 'User2': (19, 'LDAP error 19 LDAP_CONSTRAINT_VIOLATION - <0000052D: Constraint violation - check_password_restrictions: password is in the restricted blacklist!> <>')
Настройка интервала проверки изменений в файле со списком запрещенных паролей
Для сокращения времени обработки запросов на проверку паролей по списку запрещенных данные из файла кэшируются в БД контроллера домена Эллес.
Период актуальности этих данных определяется глобальным конфигурационным параметром pso blacklist check interval. По умолчанию он составляет 300 секунд. По истечении интервала при проверке вхождения пароля в список запрещенных при наличии изменений в файле, указанном в атрибуте msDS-RestrictedPasswords объекта парольной политики, список обновляется.
Для изменения интервала на отдельном контроллере домена добавьте его с требуемым значением в секундах в раздел global в конфигурационном файле smb.conf (полный путь — /app/inno-samba/etc/smb.conf).
Например:
[global]
...
pso blacklist check interval = 600
...