2

我只需要为特定的 OU 设置密码策略,它将应用于将在此 OU 中创建/移动的所有用户。

我在 CentOS 7 上安装了 OPENLDAP 2.4.44,并以这种方式进行了配置(我使用了本指南:https ://ktree.com/blog/OpenLDAP-password-policy-implementatio-on-ubuntu.html ):

步骤1。启用策略覆盖,可以通过安装架构来完成。

$ 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

第2步。我们需要写入所有策略文件名所在的目录:policies_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

第三步。现在,我们加载处理策略的模块。

$ 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

第4步。现在告诉目录在哪里寻找策略。

$ 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

第五步。现在我们可以创建默认策略对象。

$ 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 并且所有新用户都有此设置?

谢谢马可

4

1 回答 1

2

抱歉,由于我的声誉得分,无法发表评论,但这里回答了类似的问题:https ://serverfault.com/questions/830147/openldap-password-policy-for-a-group

以下可能会有所帮助,但它是用户特定的:

例如创建自定义策略:

dn: cn=pwdLockoutDuration,ou=Policies,dc=test,dc=com
objectClass: device
objectClass: pwdPolicy
objectClass: top
cn: pwdLockoutDuration
pwdAttribute: userPassword
pwdExpireWarning: 500
pwdMaxAge: 600
pwdMaxFailure: 3

然后向用户添加一个子条目:

dn: cn=test4,ou=Users,dc=test,dc=com
changetype: modify
add: pwdPolicySubentry
pwdPolicySubentry:  cn=pwdLockoutDuration,ou=Policies,dc=test,dc=com
于 2019-11-15T15:12:17.947 回答