Отказ от ответственности: Я плохо знаком с ldap, так надо надеяться, я ничего не сделал абсолютно неправильно!
Цель: централизовать удостоверения пользователя и ограничить клиентский вход в систему определенных машин.
У меня есть скелеты openLDAP установка сервера на новом сервере Ubuntu 14.04 при помощи следующего. По существу установите 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
).
На 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. Не использовать «ldap» вместо «shadow» в /etc/nsswitch.conf, просто используйте «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
Теперь работает аутентификация на основе хоста.