Ubuntu

pam_check_host_attr 無法正常工作

  • January 14, 2015

**免責聲明:**我是 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)。

Onthor並且venus我已將它們配置為針對我的 ldap 伺服器進行身份驗證 - 這很有效。然後我進行了修改/etc/ldap.confthor因此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

基於主機的身份驗證現在可以工作了。

引用自:https://serverfault.com/questions/656548