pam_check_host_attr не работает должным образом

Отказ от ответственности: я новичок в 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

Проверка подлинности на основе хоста теперь работает.

Другие вопросы по тегам