Настройка хранения и применения списка запрещенных паролей

В Эллес реализована возможность хранения списка запрещенных паролей и выполнения проверок на его основе при смене и сбросе пароля.

Общие сведения

Чтобы предотвратить использование простых, словарных или скомпрометированных паролей, Эллес:

  • позволяет задать список паролей, которые пользователи не должны использовать по каким-либо причинам (например, в случае компрометации);

  • поддерживает расширение схемы каталога специальным атрибутом для хранения в LDAP пути к списку запрещенных паролей относительно каталога sysvol;

  • предоставляет инструменты для применения проверки по списку к пользователям и группам с помощью объекта парольной политики (Password Settings Object, PSO);

  • обеспечивает проверку пароля по списку при его смене пользователем или при сбросе администратором с выводом предупреждения в случае совпадения с одним из запрещенных вариантов.

Последовательность настройки хранения и применения списка запрещенных паролей включает:

  1. Расширение схемы каталога атрибутом msDS-RestrictedPasswords.

  2. Создание файла со списком запрещенных паролей.

  3. Создание парольной политики (PSO) для применения списка запрещенных паролей.

  4. Добавление CSV-файла со списком запрещенных паролей в PSO.

  5. Назначение парольной политики пользователю или группе безопасности.

В результате настройки при смене пароля пользователем или его сбросе администратором новый пароль проверяется по списку. В случае совпадения с одним из значений в списке выдается предупреждение.

Данные из файла кэшируются в БД контроллера домена Эллес для ускорения вызовов при проверках.

Расширение схемы каталога

Для поддержки функциональности проверки паролей по списку запрещенных класс 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):

  1. Выполните вход в приложение от имени учетной записи с правами, достаточными для работы с парольными политиками (PSO).

  2. Откройте сервис «Пользователи и компьютеры».

  3. В дереве каталога выберите контейнер System, а затем — Password Settings Container.

  4. Нажмите Создать.

  5. На странице Создание параметров пароля заполните поля.

  6. Нажмите Создать

Подробнее см. в разделе «Создание парольной политики (PSO)».

Добавление файла со списком запрещенных паролей в объект парольной политики

Для загрузки файла со списком запрещенных паролей рекомендуется использовать приложение «Менеджер службы каталогов» (DSM).

Загрузка файла в приложении «Менеджер службы каталогов» (DSM)

Для работы с CSV-файлами со списками запрещенных паролей в конфигурацию приложения должна быть добавлена секция shares с настройками доступа к сетевым общим ресурсам на контроллере домена (см. описание настроек в разделе «Настройка с использованием конфигурационного файла»).

Пример секции в файле /opt/dsm/application.yml:

shares:
   pso:
     share-port: 445
     share-path: sysvol
     pso-path: \{domain}\pso

Для загрузки CSV-файла со списком запрещенных паролей при создании или редактировании объекта парольной политики (PSO):

  1. Выполните вход в приложение от имени учетной записи с правами, достаточными для работы с парольными политиками (PSO).

  2. Откройте сервис «Пользователи и компьютеры».

  3. На странице свойств созданного ранее объекта парольной политики (PSO) раскройте секцию Список запрещенных паролей.

    dsm pso import password blacklist
    Рис. 1. Загрузка списка запрещенных паролей
  4. Загрузите заранее созданный CSV-файл.

    dsm pso password blacklist imported
    Рис. 2. Отображение результата загрузки списка запрещенных паролей
  5. Нажмите Сохранить.

Добавление имени файла вручную

Для добавления имени созданного файла со списком запрещенных паролей в значении атрибута msDS-RestrictedPasswords созданного объекта парольной политики:

  1. Сформируйте 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 Значение атрибута — путь к файлу со списком запрещенных паролей (в примере путь относительный).
  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):

  1. Откройте карточку группы безопасности.

  2. Раскройте раздел Параметры пароля.

  3. Нажмите Выбрать.

  4. В диалоговом окне выберите предварительно созданную парольную политику с установленным атрибутом msDS-RestrictedPasswords.

  5. Нажмите Добавить.

После этого при смене или сбросе пароля участниками группы безопасности дополнительно выполняется проверка по списку запрещенных паролей. В случае совпадения нового пароля с одним из паролей из списка выдается предупреждение о нарушении установленных ограничений.

Например:

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
    ...