OPENLDAP: политика паролей перекрывается, как назначить конкретное подразделение - PullRequest
1 голос
/ 23 сентября 2019

Мне нужно установить политику паролей только для определенного OU, и она будет применяться ко всем пользователям, которые будут помещены в этот OU.

У меня установлен OPENLDAP 2.4.44 в CentOS 7,и я настроил его таким образом (я использовал это руководство: https://ktree.com/blog/OpenLDAP-password-policy-implementatio-on-ubuntu.html):

Step1. Включить наложение политики, это можно сделать, установив схему.

$ ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/ppolicy.ldif

Для проверки, будет ли это сделано или нет

[root@TST-LDAP01]# ldapsearch -Q -LLL -Y EXTERNAL -H ldapi:/// -b cn=schema,cn=config dn
dn: cn=schema,cn=config
dn: cn={0}core,cn=schema,cn=config
dn: cn={1}cosine,cn=schema,cn=config
dn: cn={2}nis,cn=schema,cn=config
dn: cn={3}inetorgperson,cn=schema,cn=config
dn: cn={4}ppolicy,cn=schema,cn=config

Step2. Нам нужно записать в каталог, где все политики будут иметь имя файла :icies_1.ldif

$ vim policies_1.ldif
 dn: ou=Policies,cn=Manager,dc=mydomain,dc=com
 objectClass: top
 objectClass: organizationalUnit
 ou: Policies
 description: Password policy config files

Чтобы применить к каталогу:

$ ldapadd -D cn=Manager,dc=mydomain,dc=com -W -f policies_1.ldif

Step3. Теперь мы загружаем модули, обрабатывающие политики.

$ vim policy_module.ldif
 dn: cn=module{0},cn=config
 changetype: modify
 add: olcModuleLoad
 olcModuleLoad: ppolicy

Чтобы применить ккаталог:

$ ldapadd -Y EXTERNAL -H ldapi:/// -f policy_module.ldif

Для проверки загружены модули?

[root@TST-LDAP01]# ldapsearch -Q -LLL -Y EXTERNAL -H ldapi:/// -b cn=module{0},cn=config
dn: cn=module{0},cn=config
objectClass: olcModuleList
cn: module{0}
olcModulePath: /usr/lib64/openldap
olcModuleLoad: {0}syncprov.la
olcModuleLoad: {1}ppolicy

Step4. Теперь укажите каталогу, где искать политики.

$ vim policy_overlay.ldif
dn: olcOverlay={1}ppolicy,olcDatabase={2}hdb,cn=config
objectClass: olcOverlayConfig
objectClass: olcPPolicyConfig
olcOverlay: {1}ppolicy
olcPPolicyDefault: cn=DefaultPPolicy,ou=Policies,cn=Manager,dc=mydomain,dc=com

Чтобы применить к каталогу

$ ldapadd -Y EXTERNAL -H ldapi:/// -f policy_overlay.ldif

Для проверки используются оверлеи

[root@TST-LDAP01]# ldapsearch -Q -LLL -Y EXTERNAL -H ldapi:/// -b olcDatabase={2}hdb,cn=config
dn: olcDatabase={2}hdb,cn=config
objectClass: olcDatabaseConfig
objectClass: olcHdbConfig
olcDatabase: {2}hdb
olcDbDirectory: /var/lib/ldap
olcSuffix: dc=mydomain,dc=com
olcRootDN: cn=Manager,dc=mydomain,dc=com
olcRootPW: {SSHA}1AMIpQs6xbFa8wYre5rdBGm+fCmTCVXz
olcDbIndex: objectClass eq,pres
olcDbIndex: ou,cn,mail,surname,givenname eq,pres,sub

dn: olcOverlay={0}ppolicy,olcDatabase={2}hdb,cn=config
objectClass: olcOverlayConfig
objectClass: olcPPolicyConfig
olcOverlay: {0}ppolicy
olcPPolicyDefault: cn=DefaultPPolicy,ou=Policies,cn=Manager,dc=mydomain,dc=c
 om

Step5. Теперь мыможет создавать объекты политики по умолчанию.

$ vim Default_Policies.ldif
dn: cn=DefaultPPolicy,ou=Policies,cn=Manager,dc=mydomain,dc=com
cn: DefaultPPolicy
objectClass: pwdPolicy
objectClass: device
objectClass: top
pwdAttribute: userPassword
pwdMaxAge: 2592000
pwdExpireWarning: 2160000
pwdInHistory: 3
pwdCheckQuality: 1
pwdMinLength: 8
pwdMaxFailure: 3
pwdLockout: TRUE
pwdLockoutDuration: 30
pwdGraceAuthNLimit: 0
pwdFailureCountInterval: 0
pwdMustChange: TRUE
pwdAllowUserChange: TRUE
pwdSafeModify: FALSE

Чтобы применить к каталогу

$ ldapadd -D cn=Manager,dc=mydomain,dc=com -W -f Default_Policies.ldif

Для проверки

[root@TST-LDAP01]# ldapsearch -Q -LLL -Y EXTERNAL -H ldapi:/// -b cn=DefaultPPolicy,ou=Policies,cn=Manager,dc=mydomain,dc=com
dn: cn=DefaultPPolicy,ou=Policies,cn=Manager,dc=mydomain,dc=com
cn: DefaultPPolicy
objectClass: pwdPolicy
objectClass: device
objectClass: top
pwdAttribute: userPassword
pwdMaxAge: 2592000
pwdExpireWarning: 2160000
pwdInHistory: 3
pwdCheckQuality: 1
pwdMinLength: 8
pwdMaxFailure: 3
pwdLockout: TRUE
pwdLockoutDuration: 30
pwdGraceAuthNLimit: 0
pwdFailureCountInterval: 0
pwdMustChange: TRUE
pwdAllowUserChange: TRUE
pwdSafeModify: FALSE

Теперь можно установить Default_Policies только для ou= ExternalUsers, cn = Manager, dc = mydomain, dc = com и все новые пользователи имеют эти настройки?

Спасибо Marco

...