Ubuntu
pam_check_host_attr 無法正常工作
**免責聲明:**我是 ldap 的新手,所以希望我沒有做任何重大錯誤!
**目標:**集中使用者憑據並將客戶端登錄限制在某些機器上。
我使用以下命令在新的 Ubuntu 14.04 伺服器上設置了準系統 openLDAP 伺服器。本質上,安裝 LDAP 並進行架構更改以啟用
host
使用者屬性:# Install ldap apt-get install -y slapd ldap-utils ldapscripts # Modify the schema so we can use the host attribute for users grep -P '^include.+?\.schema' /usr/share/slapd/slapd.conf > ./schema_convert.conf echo -e "include\t\t/etc/ldap/schema/ldapns.schema" >> ./schema_convert.conf # Convert the schema into LDIF mkdir -p ./ldif_output index=$(slapcat -f ./schema_convert.conf -F ./ldif_output -n 0 | grep ldapns,cn=schema | sed -re 's/^\S+\s+//') slapcat -f schema_convert.conf -F ldif_output -n0 -H \ ldap:///${index} -l cn=ldapns.ldif # Modify the file, ready for importing sed -i -r \ -e 's/^dn:.+$/dn: '${index/\{*\}/}'/' \ -e 's/^cn:.+$/cn: ldapns/' \ -e '/^(structuralObjectClass|entryUUID|creatorsName|createTimestamp|entryCSN|modifiersName|modifyTimestamp):/d' \ cn=ldapns.ldif # Add the schema to the slapd-config ldapadd -Q -Y EXTERNAL -H ldapi:/// -f cn\=ldapns.ldif
我添加了幾個組和人員。我的一位使用者將
host
屬性值設置為我的一台機器 (thor
)。On
thor
並且venus
我已將它們配置為針對我的 ldap 伺服器進行身份驗證 - 這很有效。然後我進行了修改/etc/ldap.conf
,thor
因此venus
未註釋:pam_check_host_attr yes
我曾希望當我嘗試登錄時
venus
不會被允許,因為使用者只thor
設置了host
我的 ldap 伺服器的屬性。您能否提供有關如何限制使用者僅登錄 1 個特定主機的任何見解?
事實證明,我必須按照
/etc/nsswitch
說明修改我的文件/usr/share/doc/libpam-ldap/README.Debian
:如果您想使用“pam_check_host_attr”功能,請確保“pam_unix.so”沒有通過名稱服務開關 (NSS) 提供有效的“帳戶”,這會覆蓋您的 LDAP 配置。不要在 /etc/nsswitch.conf 中將“ldap”用於“shadow”,只需使用“shadow:files”即可。
因此,當我從以下位置更改
/etc/nsswitch
文件時:passwd: files ldap group: files ldap shadow: files ldap hosts: files dns mdns4_minimal [NOTFOUND=return] networks: files protocols: db files services: db files ethers: db files rpc: db files netgroup: nis
到:
passwd: files ldap group: files ldap shadow: files hosts: files dns mdns4_minimal [NOTFOUND=return] networks: files protocols: db files services: db files ethers: db files rpc: db files netgroup: nis
並更新了 PAM:
pam-auth-update
基於主機的身份驗證現在可以工作了。