Домен/GSSAPI
Инструкция по обеспечению аутентификации в сервере LDAP через Kerberos (без паролей).
Установка программного обеспечения
Предполагается, что создан домен test.altlinux. То есть запущены настроенные службы OpenLDAP и Kerberos и Kerberos хранит принципалов в базе LDAP.
Настройка на сервере
Для использования механизма GSSAPI совместно с slapd(8) сначала нужно создать сервисный ключ с принципалом (principal) для сервиса ldap в области (realm) для хоста, на котором запущена служба каталога.
1. Создайте принципала и сгенерируйте keytab для сервера LDAP:
. /usr/bin/alterator-kdc-princ-functions addprinc ldap/$(hostname) ktadd /etc/openldap/ldap.keytab ldap/$(hostname)
Этот файл (если существует) автоматически используется в службе slapd.
2. Для используемых баз пропишите отображение DN запроса аутентификации в аутентификационный DN пользователя:
ldap-dn list | while read dn file;do \ echo -e "\nauthz-regexp\n\tuid=([^,]*),cn=[^,]*,cn=auth\n\tuid=\$1,ou=People,$dn" >> "$file";done
Например, в файле /etc/openldap/slapd-test.altlinux.conf появится запись
authz-regexp uid=([^,]*),cn=[^,]*,cn=auth uid=$1,ou=People,dc=test,dc=altlinux
3. Перезапустите службу LDAP (slapd):
service slapd restart
Настройка на клиенте
1. Установите пакет libsasl2-plugin-gssapi:
apt-get install libsasl2-plugin-gssapi
2. Получите тикет Kerberos и убедитесь, что тикет получен:
# kinit l1 Password for l1@TEST.ALTLINUX: # klist Ticket cache: FILE:/tmp/krb5cc_0 Default principal: l1@TEST.ALTLINUX Valid starting Expires Service principal 01/10/13 19:41:11 01/11/13 19:41:11 krbtgt/TEST.ALTLINUX@TEST.ALTLINUX renew until 01/10/13 19:41:11
3. Проверим доступ к LDAP без пароля:
# ldapwhoami -Y GSSAPI SASL/GSSAPI authentication started SASL username: l1@TEST.ALTLINUX SASL SSF: 56 SASL data security layer installed. dn:uid=l1,ou=people,dc=test,dc=altlinux
Доступ только к полям LDAP для текущего пользователя
В начале файла конфигурации базы, например,
# ldap-dn find $(system-auth status | cut -f2 -d' ') /etc/openldap/slapd-test.altlinux.conf
пропишите права доступа к полю:
access to attrs=mail by self read by * none
Внимание! Обратите внимание, что для вызова любых программ работы с LDAP с клиента нужно указать параметр -Y GSSAPI