Рекомендую посмотреть видео по этой статье!
В ALD Pro есть несколько политик. В этой статье мы поговорим о парольных политиках. Нужно уточнить, что политики HBAC, политики SUDO и политики паролей - это механизмы от FreeIPA, а просто групповые политики или групповые политики Salt - это политики от ALD Pro.
Пароль представляет из себя набор символов, который должен быть известен только самому пользователю и проверяющей стороне, поэтому, если пользователь может предъявить доказательство того, что пароль ему известен, это является подтверждением аутентичности пользователя, что он именно тот, за кого себя выдает. Пароли являются самым простым, но при этом не самым безопасным способом аутентификации, так как их можно подобрать или перехватить, а если не устанавливать дополнительных ограничений по длине и сложности, то каждый двадцатый сотрудник в организации окажется счастливчиком, который угадает комбинацию из Топ-100, типа, 123456, password или qwerty. Совокупность требований к паролям называют также политиками паролей, и чем строже эти требования, тем сложнее злоумышленнику подобрать пароль и воспользоваться результатами успешной атаки, но вместе с тем сложнее и пользователям работать в таком домене. Поэтому для разных категорий пользователей следует устанавливать разные требования, обеспечивающие баланс между удобством и безопасностью. Изменить пароль можно по протоколу KPASSWD (464/TCP), через расширенную операцию LDAP+StartTLS (389/TCP) и просто записью нового значения в атрибут userPassword, опять же, по протоколу LDAP. Однако вне зависимости от того, какой способ будет выбран, пароль передается на сервер в открытом виде, что позволяет проверить его длину, сложность и другие параметры, после чего сгенерировать и сохранить совместимые хеши. Шифрование канала в рамках смены пароля по протоколу kpasswd выполняется протоколом, который использует шифрование Kerberos, так называемые Kerberos V5 KRB_PRIV message.
Контроллер домена предлагает два разных механизма смены пароля. Первый механизм смены пароля - это протокол kpasswd, который использует шифрование Kerberos. Этот протокол используют:
- Утилита смены пароля fly, встроенная в окно входа.
- Отдельная оснастка fly-passwd, которую можно установить в Astra Linux.
- Аналогичные приложения Windows, которые срабатывают, когда пользователь ALD Pro (FreeIPA) входит в Windows компьютер из домена MS AD, с которым установлены доверительные отношения, или вызывает смену пароля по запросу нажатием Ctrl + Alt + Del.
Но кроме kpasswd есть еще ldappaswd, который защищается средствами TLS. А также мы можем поменять пароль просто изменением значения атрибута userpassword через обычный ldapmodify.
Проверить то, что порт KPASSWD открыт можно с помощью nmap командой:
sudo nmap -sT -sU -p 464 FQDN_контроллера_домена
sudo nmap -sT -sU -p 464 dc1.ald.local
Политики паролей Windows
Раньше в домене Active Directory можно было задать только одну политику паролей через объект групповой политики Default Domain Policy. Да, вы можете создать несколько объектов и в каждом из них определить параметры из секции Password Policy, но ко всем пользователям в домене все равно будут применяться только те требования, которые определены в Default Domain Policy.
Начиная с Windows Server 2008 в MS AD появились так называемые детальные политики паролей (Fine-Grained Password Policy, FGPPs), которые настраиваются в Центре администрирования Active Directory (Active Directory Administrative Center) путем создания контейнера настроек пароля (Password Settings Container). Каждый контейнер может быть назначен конкретным пользователям и группам, переопределяя их требования к паролям.
Следует обратить внимание также на атрибут Precedence, который определяет приоритет данной политики паролей. Если на пользователя AD действуют несколько политик, то к нему будет применена политика с меньшим значением приоритета.
Политики паролей FreeIPA
В службе каталога FreeIPA политики паролей устроены очень похожим образом: есть глобальная политика по умолчанию и можно создавать дополнительные политики для отдельных групп пользователей. Учитывая то, что пользователь может входить сразу в несколько групп, алгоритм проверки выглядит следующим образом:
1. Из контейнера «cn=cosTemplates,cn=accounts» отбираются шаблоны, под действие которых попадает текущий пользователь в соответствии с его участием в группах. В этих записях содержится минимальное количество информации, а расширенные наборы параметров представлены в контейнере «cn=kerberos» и связаны они с шаблонами ссылками через значение атрибута krbPwdPolicyReference. 2. Если на пользователя не распространяется действие ни одной политики, ему будет назначена глобальная политика (global_policy) по умолчанию, см. рис. 3. 3. Если пользователь попадает под действие сразу нескольких политик, то параметры политик не суммируются, а выбирается одна из них, приоритет которой будет иметь наименьшее значение, см. таблицу 1, что аналогично действию параметра Precedence в политиках паролей Windows.
Проверки паролей ограничены возможностями MIT Kerberos, поэтому они поддерживают тот же самый набор параметров (см. таблицу 2).
Следствием интеграции с MIT Kerberos является возможность использования таких атрибутов, как krbPrincipalExpiration и krbLastSuccessfulAuth. Например, с помощью команды ipa user-mod вы можете установить срок действия учетной записи, после которого пользователю станет недоступна Kerberos аутентификация:
sudo ipa user-mod ald-user2 --principal-expiration='20330725115110Z'
Где срок действия учетной записи задается в формате временной метки: - 2033 – год; - 07 – месяц; - 25 – день месяца; - 115110 – часы, минуты, секунды; - Z – часовой пояс по нулевому (Zero) меридиану.
Стоит заметить, что по соображениям повышения производительности работы домена, фиксация даты последнего входа по умолчанию отключена и этот атрибут исключен из репликации.
Однако, если у вас достаточно вычислительных ресурсов и хорошие каналы связи, то вы можете включить эти функции изменением конфигурации сервера. Для этого потребуется посмотреть текущие настройки и установить новое значение параметра ipaconfigstring, исключив из него значение «KDC:Disable Last Success»:
ipa config-show
ipa config-mod --ipaconfigstring='AllowNThash'
sudo ipactl restart
kinit admin
ipa user-show admin --all
или
ipa user-show admin --all | grep lastsuccessfulauth
Настройка политики паролей в ALD Pro
Требования глобальной политики довольно лояльны, поэтому для группы администраторов их целесообразно сделать строже. Рассмотрим два способа создания политики: через портал управления и через командирую строку. Откройте страницу «Групповые политики > Политики паролей» и нажмите кнопку «+ Новая политика паролей». В поле «Наименование группы пользователей» выберите admins, установите наименьший «Приоритет», равный 0, и нажмите кнопку «Сохранить». Далее вам станет доступна страница управления политикой, где вы можете задать необходимые настройки, как на нижеприведенной иллюстрации.
Политику паролей можно создать из командной строки с помощью команды ipa pwpolicy-add:
ipa pwpolicy-add admins --priority=0 --maxlife=45 --minlife=0 --history=12 --minclasses=5 --minlength=12 --maxfail=3 --failinterval=120 --lockouttime=1200
Где: --maxlife=<число> — максимальный срок действия в днях; --minlife=<число> — минимальный срок действия в часах; --history=<число> — размер журнала; --minclasses=<число> —классы символов; --minlength=<число> — минимальная длина; --priority=<число> — приоритет политики; --maxfail=<число> —максимальное количество ошибок; --failinterval=<число> — интервал сброса ошибок в секундах; --lockouttime=<число> — длительность блокировки в секундах.
Изменить параметры уже существующей политики можно командой ipa pwpolicy-mod. Уменьшим интервал сброса ошибок для политики группы admins до 100 секунд и уменьшим длительность блокировки до 1000 секунд:
ipa pwpolicy-mod admins --failinterval=100 --lockouttime=1000
Обратите внимание, что изменение максимального срока действия пароля сразу же ни на что не повлияет, т.к. проверка выполняется по значению пользовательского атрибута krbPasswordExpiration, которое устанавливается в момент смены пароля. Текущее значение этого атрибута можно уточнить командой user-show:
ipa user-show admin --raw --all | grep krbPasswordExpiration
Таким образом, чтобы изменения в части срока действия паролей вступили в силу, пользователь должен хотя бы один раз сменить свой пароль, но при необходимости вы можете установить значение krbPasswordExpiration вручную с помощью команды user-mod. Это удобно также в тех случаях, когда вам нужно сбросить пользователю пароль, но вы не хотите, чтобы система сразу же требовала смены пароля.
ipa user-mod admin --password-expiration 20240301010101Z
#обучениепоaldpro #aldpro #политикипаролейaldpro