PER HOST
- настройка выполняется на каждом из хостов FreeIPA
GLOBAL
- настройка включается на одном сервере, автоматически синхронизируется глобально на все хосты FreeIPA
Ограничение области видимости LDAP-каталога rootDSE-записью при использовании анонимного бинда
PER HOST
Полностью отключать анонимный бинд не рекомендуется так как большинство ПО часто пытается анонимно прочитать rootDSE запись для чтения структуры дерева.
Поэтому ограничиваем доступ верхнеуровневой записью, не разрешая анонимное чтение всего дерева каталога.
ldapmodify -x -D "cn=Directory Manager" -W -h localhost -p 389 -ZZ
Enter LDAP Password:
dn: cn=config
changetype: modify
replace: nsslapd-allow-anonymous-access
nsslapd-allow-anonymous-access: rootdse
[ENTER]
[ENTER]
[CTRL-D]
systemctl restart dirsrv.target
Включение журнала аудита 389ds
PER HOST
После включения, операции создания/модификации данных в LDAP будут записываться в файл /var/log/dirsrv/[SLAPD-INSTANCE]/audit
.
dsconf FREEIPA.DEV config replace nsslapd-auditlog-logging-enabled=on
dsconf FREEIPA.DEV config replace nsslapd-auditlog-logrotationtime=12
dsconf FREEIPA.DEV config replace nsslapd-auditlog-logrotationtimeunit=week
dsconf FREEIPA.DEV config replace nsslapd-auditlog-maxlogsize=50
Включение отображения доп. атрибутов изменяемого объекта в журнале аудита
PER HOST
В логе /var/log/dirsrv/[SLAPD-INSTANCE]/audit
будут дополнительно отображаться указанные атрибуты (в данном случае cn
, uidnumber
, mail
) изменяемого объекта.
dsconf FREEIPA.DEV config replace nsslapd-auditlog-display-attrs=cn,uidnumber,mail
Включение логирования смены паролей через веб-интерфейс в журнале аудита (ipa_pwd_extop)
PER HOST
После включения, помимо записей о смене пользователем пароля через CLI, в лог аудита /var/log/dirsrv/[SLAPD-INSTANCE]/audit
также начнут записываться данные о смене пароля через веб-интерфейс.
ldapmodify -x -D "cn=Directory Manager" -W -h localhost -p 389 -ZZ
dn: cn=ipa_pwd_extop,cn=plugins,cn=config
changetype: modify
replace: nsslapd-logaudit
nsslapd-logaudit: on
[ENTER]
[ENTER]
[CTRL-D]
Проверка:
dsconf <SLAPD-INSTANCE> plugin show ipa_pwd_extop
<SLAPD-INSTANCE> можно посмотреть командой dsctl -l
Отключение ipaNTHash
GLOBAL
Выключить, если не используется интеграция с AD.
веб-интерфейс
IPA Server ->
Configuration ->
AllowNThash: false
Включение отслеживания последней успешной аутентификации Kerberos (krbLastSuccessfulAuth)
GLOBAL
Включение этой опции не приведёт к синхронизации поля krbLastSuccessfulAuth
между нодами FreeIPA и его значение будет разным на сервере и репликах FreeIPA.
Для синхронизации поля между нодами FreeIPA необходимо править настройки сегмента репликации, в которых синхронизация этого поля (вместе с другими) по умолчанию специально стоит в исключениях так как это аффектит на производительность FreeIPA и может приводить к появлению конфликтов репликации:
nsDS5ReplicatedAttributeListTotal: (objectclass=*) $ EXCLUDE entryusn krblastsuccessfulauth krblastfailedauth krbloginfailedcount passwordgraceusertime
nsDS5ReplicatedAttributeList: (objectclass=*) $ EXCLUDE memberof idnssoaserial entryusn krblastsuccessfulauth krblastfailedauth krbloginfailedcount passwordgraceusertime
Если необходимо отслеживать последнюю успешную аутентифкацию пользователя, то забирая изменение этого поля через логи, в решении лог-менеджмента/whatever нужно сделать запрос который будет для конкретного пользователя сортировать по убыванию время из поля krbLastSuccessfulAuth
со всех нод FreeIPA одного realm’а - первый элемент будет искомым временем входа.
веб-интерфейс
IPA Server ->
Configuration ->
KDC:Disable Last Success: false
Отключение прав на произвольный маппинг публичных SSH-ключей и сертификатов для непривилегированных УЗ (Self Service Permissions)
GLOBAL
Данные разрешения требуется удалять (отключить, не удаляя, на данный момент (FreeIPA 4.10.x) нельзя) повторно после каждого обновления пакетов FreeIPA.
веб-интерфейс
IPA Server ->
Self Service Permissions ->
Users can manage their own SSH public keys (удалить)
Users can manage their own X.509 certificates (удалить)
Users can manage their own X.509 certificate identity mappings (удалить)
Отключение возможности выбора типа аутентификации пользователю (Disable per-user override)
GLOBAL
Административный запрет пользователям самостоятельно выбирать способы аутентификации в профиле.
веб-интерфейс
IPA Server ->
Configuration ->
Disable per-user override: true
Указание в парольной политике количества разных классов символов. (krbPwdMinDiffChars)
GLOBAL
Sets the minimum number of different classes, or types, of character that must exist in a password before it is considered valid.
For example, setting this value to 3 requires that any password must have characters from at least three categories in order to be approved. The default value is zero (0), meaning there are no required classes.There are six character classes:
- Upper-case characters
- Lower-case characters
- Digits
- Special characters (for example, punctuation)
- 8-bit characters (characters whose decimal code starts at 128 or below)
- Number of repeated charactersThis weights in the opposite direction, so that too many repeated characters does meet the quorum to satisfy the "level" expressed by krbPwdMinDiffChars.
веб-интерфейс
IPA Server ->
Policy ->
Password Policies ->
global_policy (или любая другая кастомная политика для пользователей) ->
Character classes: [ 0, 1, 2, 3, 4, 5 ]
Отключение в парольной политике входа под выключенной УЗ в связанные с FreeIPA тех. решения (grace login limit)
GLOBAL
После включения, пользователь с выключенной в FreeIPA учетной записью не сможет попасть в ПО, которое интегрировано с FreeIPA и использует доменную аутентификацию для входа. Следует включать эту опцию с осторожностью так как есть сайд-эффект: если пользователь вовремя не сменил свой истёкший пароль (например после всех уведомлений IPA-EPN), и лимит grace login для его учётной записи достиг 0, то в дальнейшем сменить пароль этого пользователя сможет только администратор - самостоятельно сменить пароль пользователь уже не сможет.
-1: IdM grants the user unlimited LDAP binds before the user must reset the password. This is the default value, which matches the previous behavior;
0: This value disables all LDAP binds once a password is expired. In effect, the users must reset their password immediately;
>1-MAXINT: The value entered allows exactly that many binds post-expiration.
веб-интерфейс
IPA Server ->
Policy ->
Password Policies ->
global_policy (или любая другая кастомная политика для пользователей) ->
Grace login limit: [ -1, 0, 1-MAXINT ]
Перевод сервисных УЗ в контейнер sysaccounts
GLOBAL
Подходит для сервисных учетных записей, создаваемых для интеграции стороннего ПО (bind). Таким УЗ как минимум запрещен вход на серверы и чтение всего LDAP-каталога.
ldapmodify -x -D "cn=Directory Manager" -W -h localhost -p 389 -ZZ
Enter LDAP Password:
dn: uid=system,cn=sysaccounts,cn=etc,dc=example,dc=com
changetype: add
objectclass: account
objectclass: simplesecurityobject
uid: system
userPassword: secret123
passwordExpirationTime: 20380119031407Z
nsIdleTimeout: 0
[ENTER]
[ENTER]
[CTRL-D]
Автоматическое отключение пользователей с истёкшим временем действия пароля (ipa-dsu)
GLOBAL
Настройка отключает учётную запись пользователя с истёкшим паролем в случае длительной неактивности с его стороны.
Настройка находится в стадии разработки и в стабильных версиях FreeIPA недоступна.