GSSAPI-ді прокси-авторизациясы бар OpenLDAP серверіне қарсы NSS сұрауы орындалмады

SASL / GSSAPI үшін Debian Buster операциялық жүйесінде nss-pam-ldapd көмегімен LDAP аутентификациясын қолданған кезде прокси авторизациясы бар LDAP серверіне қарсы Kerberos аутентификациясы қажет. Мен оны Raspberry Pis-те бір рет кіру үшін реттеуге тырысамын, бірақ оны жұмыс істей алмайды.

Менде ldap-серверім Debian-да OpenLDAP серверімен SASL Proxy Authorization бағдарламасын қалай орнатуға болады . Мен прокси қолданушыны anyuser деп атадым, сондықтан оның ерекше атауы uid = anyuser, ou = people, ou = home, dc = hoeft-online, dc = de .

сәйкес Debian жүйесінде nss-pam-ldapd көмегімен LDAP аутентификациясы мен GSSAPI плагиніне қосымша libnss-ldapd және libpam-ldapd пакеттерін орнатуым керек ] libsasl2-modules-gssapi-mit . Бірақ мен libpam-ldapd орнына libpam-krb5 қолданамын:

rpi ~$ sudo apt install libsasl2-modules-gssapi-mit libnss-ldapd ldap-utils

Орнату кезінде /etc/nslcd.conf параметрінде сақталатын конфигурация диалогы ұсынылды. және /etc/nsswitch.conf .

rpi ~$ sudo dpkg-reconfigure nslcd
rpi ~$ sudo dpkg-reconfigure libnss-ldapd

Диалогтық терезелерден қайта баптауым керек:

rpi ~$ sudo cat /etc/nslcd.conf
# /etc/nslcd.conf
# nslcd configuration file. See nslcd.conf(5)
# for details.

# The user and group nslcd should run as.
uid nslcd
gid nslcd

# The location at which the LDAP server(s) should be reachable.
uri ldap://kdc-master.home.hoeft-online.de

# The search base that will be used for all queries.
base ou=home,dc=hoeft-online,dc=de

# The LDAP protocol version to use.
#ldap_version 3

# The DN to bind with for normal lookups.
#binddn cn=annonymous,dc=example,dc=net
#bindpw secret

# The DN used for password modifications by root.
#rootpwmoddn cn=admin,dc=example,dc=com

# SSL options
#ssl off
#tls_reqcert never
tls_cacertfile /etc/ssl/certs/ca-certificates.crt

# The search scope.
#scope sub

sasl_mech GSSAPI
krb5_ccname /var/run/nslcd/nslcd.tkt
sasl_authzid dn:uid=anyuser,ou=people,ou=home,dc=hoeft-online,dc=de


~$ cat /etc/nsswitch.conf
# /etc/nsswitch.conf
#
# Example configuration of GNU Name Service Switch functionality.
# If you have the `glibc-doc-reference' and `info' packages installed, try:
# `info libc "Name Service Switch"' for information about this file.

passwd:         files ldap
group:          files ldap
shadow:         files ldap
gshadow:        files

hosts:          files dns
networks:       files

protocols:      db files
services:       db files
ethers:         db files
rpc:            db files

netgroup:       nis

Енді getent passwd көмегімен мен LDAP серверінен ingo тіркелгі деректерін аламын деп ойлаймын. Ол жергілікті / etc / passwd сақталмайды. Мен тек жергілікті жазбаларды / etc / passwd сайтынан аламын. LDAP серверінің журналдарынан anyuser-ге БІЛДІРУ әрекеті жасалмағанын көремін. Мен мұнда не жетіспей жатырмын?
Неге getent LDAP серверінен тіркелгі деректерін алмайды?

0
задан 2 December 2019 в 03:06
1 ответ

Короткий ответ

Быть уверенными у Вас есть допустимое /etc/krb5.keytab с Вашим host/* принципал. Отключите кэширующегося демона nscd при наличии с [1 113]. Не путайте его с [1 114]. Затем проверьте Авторизация Прокси:

rpi ~$ sudo apt install libsasl2-modules-gssapi-mit ldap-utils
rpi ~$ kinit -p ingo
rpi ~$ ldapwhoami -Y GSSAPI -H ldap://kdc-master.home.hoeft-online.de -D "uid=anyuser,ou=people,ou=home,dc=hoeft-online,dc=de"
SASL/GSSAPI authentication started
SASL username: ingo@HOME.HOEFT-ONLINE.DE
SASL SSF: 256
SASL data security layer installed.
dn:uid=ingo,ou=people,ou=home,dc=hoeft-online,dc=de

Затем установка:

rpi ~$ sudo apt install libnss-ldapd kstart

Просто принимают настройки по умолчанию в диалоговом окне установки. Wie перезаписывают их с этими конфигурационными файлами. Используйте их со своими настройками:
Перезапуск nslcd.conf

~$ sudo cat /etc/nslcd.conf
# The user and group nslcd should run as.
uid nslcd
gid nslcd

# Logging options, default is info
#log syslog debug

# The location at which the LDAP server(s) should be reachable.
uri ldap://kdc-master.home.hoeft-online.de

# The search base that will be used for all queries.
base ou=home,dc=hoeft-online,dc=de

# The DN to bind with for normal lookups.
binddn uid=anyuser,ou=people,ou=home,dc=hoeft-online,dc=de

# SSL options
#ssl off
#tls_reqcert never
tls_cacertfile /etc/ssl/certs/ca-certificates.crt

# SASL options
sasl_mech GSSAPI
krb5_ccname /var/run/nslcd/nslcd.tkt

nsswitch.conf

~$ cat /etc/nsswitch.conf
passwd:         files ldap
group:          files ldap
shadow:         files ldap
gshadow:        files

hosts:          files dns
networks:       files

protocols:      db files
services:       db files
ethers:         db files
rpc:            db files

netgroup:       nis

обслуживание и проверка. Будьте уверены , ingo не имеет никакой локальной учетной записи Unix в [1 115].

rpi ~$ sudo systemctl restart nslcd.service
rpi ~$ getent passwd | grep ingo

установка вход в систему PAM с аутентификацией Kerberos:

rpi ~$ sudo apt install libpam-krb5
rpi ~$ sudo pam-auth-update
# select what you need
[*] Kerberos authentication
[*] Unix authentication
[ ] Create home directory on login

# check
rpi ~$ kdestroy
rpi ~$ su -l ingo
password:
ingo@rpi ~$ klist
ingo@rpi ~$ logout
rpi ~$

Установка nscd кэширующийся демон (или уже включают его если доступный):

rpi ~$ sudo apt install nscd

Вот именно.

еще Некоторые детали

мне потребовались несколько дней для исследования что случилось с установкой. Для поиска и устранения неисправностей Вас может увеличить вход для отладки вывода, на сервере LDAP к [1 116]:

slapd ~$ echo 'dn: cn=config
changetype: modify
replace: olcLogLevel
olcLogLevel: any' > /tmp/in.ldif

slapd ~$ sudo ldapmodify -Y EXTERNAL -H ldapi:/// -f /tmp/in.ldif

На клиентском устройстве просто не комментируют строку журнала отладки в [1 117].

Перезапуск сервис и отключает кэширующегося демона nscd (не путайте с [1 119]), потому что nscd может перепутать тестирование:

rpi ~$ sudo systemctl restart nslcd.service
rpi ~$ sudo systemctl disable --now nscd.service

не забывают возвращаться вход отладки и включать nscd по окончании. Выполнение getent passwd Вы будете видеть в клиентском журнале, что это даже не запускается с [1 122], ничто. Я понял, что nslcd.service не получает учетных данных в [1 123] для его аутентификации. При вводе по абсолютному адресу вокруг я нашел в [1 124], что там должен запуститься /usr/bin/k5start, но это не установлено и нигде не зарегистрировано. Поэтому просто установите его с:

rpi ~$ sudo apt install kstart

Теперь журнал показывает, что GSSAPI запускается с шага 1, но затем прерывается.

наиболее сбивающий с толку представленное диалоговое окно установки при установке libnss-ldapd. Это просит записи, которые являются неправильными при моей установке с GSSAPI в особенности отличительное имя для пользователя прокси (sasl_authzid). Это не применимо. Вместо этого необходимо использовать нормальное binddn. Просто примите настройки по умолчанию в диалоговой установке и впоследствии используйте файлы конфигурации из короткого ответа.

0
ответ дан 4 December 2019 в 23:34

Теги

Похожие вопросы