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 серверінен тіркелгі деректерін алмайды?
Быть уверенными у Вас есть допустимое /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. Просто примите настройки по умолчанию в диалоговой установке и впоследствии используйте файлы конфигурации из короткого ответа.