我正在配置一个系统,其中所有IT资源都可通过单个用户 – 密码对获得,无论是访问服务器上的
shell,还是登录到Samba域,WiFi,OpenVPN,Mantis等(可以访问特定的服务)按组成员身份或用户对象字段).由于我们的网络中有个人数据,因此我们需要根据欧盟数据保护指令(或者更确切地说是波兰语版本)实施密码老化.
问题是LDAP中的Samba和POSIX帐户使用不同的密码散列和老化信息.虽然同步密码本身很容易(smb.conf中的ldap密码同步=是),但在混合中添加密码老化会破坏事物:Samba不会更新shadowLastChange.与服从pam限制= Yes一起创建一个系统,其中Windows用户无法更改老化的密码,但如果我不使用它,则不会自动创建主目录.另一种方法是使用LDAP扩展操作来更改密码,但smbk5pwd模块也没有设置它.更糟糕的是,OpenLDAP维护者不会更新它/接受补丁,因为该字段被认为已弃用.
所以,我的问题是,什么是最好的解决方案?它们的上下是什么?
>使用LDAP ppolicy和内部LDAP密码老化?
>它与NSS,PAM模块,samba,其他系统的兼容性如何?
>是否需要以特殊方式配置NSS和PAM模块以使用ppolicy,而不是阴影?
> GOsa²是否适用于ppolicy?
>是否有其他管理工具可以与支持ppolicy的LDAP一起使用?
>将更新密码脚本一起更新,以更新LDAP中的字段. (留下用户自己更新字段而不更改密码的可能性)
我编写了自己的名为
shadowlastchange
的OpenLDAP覆盖,以便在发生EXOP密码更改时更新shadowLastChange属性.它在slapd.conf中激活:
moduleload smbk5pwd moduleload shadowlastchange ... database bdb ... overlay smbk5pwd overlay shadowlastchange
我已经配置smb.conf来通过EXOP更改密码:
ldap passwd sync = Only
然后,对于每个帐户,将shadowMax设置为密码有效的天数. OpenLDAP模块负责其余部分!