我的问题类似于这。我用pam_ldap对于用户身份验证。/etc/nsswitch.conf
文件包含:
passwd: files ldap
group: files ldap
shadow: files ldap
一切似乎都正常,但我需要在getent passwd
输出中隐藏 LDAP 用户的密码哈希值。
- 我读过了人 5 pam_ldap并且没有找到任何有用的
/etc/ldap.conf
文件参数。 - 我阅读了有关
sssd
并nslcd
找到了enumerate
选项。它很有用,但我现在不想安装任何这些服务。
如果我使用,是否可以隐藏密码哈希pam_ldap?
用户示例tester
:
dn: cn=tester,ou=users,dc=example,dc=org
objectClass: inetOrgPerson
objectClass: person
objectClass: organizationalPerson
objectClass: top
objectClass: posixAccount
cn: tester
gidNumber: 10000
homeDirectory: /home/tester
sn: Tester
uid: tester
uidNumber: 10000
loginShell: /bin/bash
userPassword: {CRYPT}$1$......
我的openldap访问配置:
access to attrs=userPassword
by self write
by anonymous auth
by users none
access to * by * read
我的 pam_ldap 配置:
uri ldap://my_host
base dc=example,dc=org
binddn cn=admin,dc=example,dc=org
bindpw myPass
ldap_version 3
port 389
scope one
timelimit 30
bind_timelimit 10
bind_policy soft
nss_connect_policy persist
idle_timelimit 3600
nss_paged_results yes
pagesize 1000
pam_filter objectclass=posixAccount
pam_login_attribute uid
pam_lookup_policy yes
pam_password md5
nss_initgroups_ignoreusers root
nss_schema rfc2307bis
nss_base_passwd ou=users,dc=example,dc=org?one
nss_base_shadow ou=users,dc=example,dc=org?one
nss_base_group ou=groups,dc=example,dc=org?sub
ssl no
TLS_REQCERT allow
答案1
不使用LDAP为了阴影地图。这完全没有必要,因为即使是旧的pam_ldap可以通过 LDAP 简单绑定请求检查用户的密码,因此不需要对密码散列具有读取权限。
还可以考虑使用固态硬盘或者nss-pam-ldapd(也称为NSCD)因为这些将 LDAP 连接与使用 PAM 堆栈的进程分离。