Кэширование учетных данных OpenLDAP для офлайнового использования на ноутбуках

Наши клиенты (Ubuntu 14.04) могут войти в систему с там входом в систему LDAP. Как только у них нет сети, они не могут войти в систему с LDAP.

Существует ли способ кэшировать те пароли и имена пользователей, так, чтобы ноутбуки могли работать, если у них нет соединения LDAP?

5
задан 4 February 2015 в 23:10
4 ответа

Debian и Ubuntu предоставляют пакет libpam-ccreds, который кэширует учетные данные для входа в сеть. Из описания пакета:

Этот пакет позволяет рабочим станциям Linux локально аутентифицироваться с использованием корпоративной идентификации, когда сеть недоступен. Используется вместе с утилитой nss_updatedb, обеспечивает механизм автономного использования сетевых каталогов. Они предназначены для работы с libpam-ldap и libnss-ldap.

6
ответ дан 3 December 2019 в 01:09

Вы можете использовать демон sssd .

Он имеет функцию кеширования учетных данных в файле конфигурации:

cache_credentials = true

После входа в систему учетные данные пользователя кэшируются, чтобы они могут снова войти в систему без доступа к серверу LDAP.

3
ответ дан 3 December 2019 в 01:09

Мой OpenLDAP был базовой установкой без SSL или TLS Я думаю, что это была проблема .

Я загрузил устройство для OpenLDAP через http://www.turnkeylinux.org/openldap и установил его за считанные минуты. Это устройство поддерживает SSL и TLS на основе самоподписанного сертификата.

Теперь с настроенным TLS и самоподписанным сертификатом параметр ldap_tls_reqcert = never должен использоваться в файле sssd.conf.

1
ответ дан 3 December 2019 в 01:09

Для кэширования учетных данных в Linux в основном используются две программы sssd и ccreds, как упоминалось в других ответах. Я попробовал sssd, но он установил большое количество дополнительных общих библиотек и зависимых пакетов, которые мне не нужны. Поэтому я решил использовать облегченный ccreds. Но мне не удалось найти подробных инструкций по ее использованию, в основном только общие советы по использованию этой программы. Поэтому я уточню ответ @AndrewSchulman, чтобы поделиться с сообществом тем, как мне это удалось. Я использую установку Debian Buster и работаю онлайн-систему аутентификации/авторизации Kerberos/OpenLDAP. Я получаю действительный билет Kerberos с помощью kinit и при входе в систему.

Сначала установите необходимые программы:

~$ sudo apt install libnss-db nss-updatedb libpam-ccreds

С помощью sudo pam-auth-update я установил параметры

[*] Ccreds credential caching - password saving
[*] Ccreds credential caching - password checking

В /etc/nsswitch.conf я должен изменить на :

passwd:         files ldap [NOTFOUND=return] db
group:          files ldap [NOTFOUND=return] db

Теперь я могу проверить, созданы ли кэширующие базы данных:

~$ sudo nss_updatedb ldap
passwd... done.
group... done.
~$ ls -l /var/lib/misc/*.db
-rw-r--r-- 1 root root 8192 Feb 26 12:46 /var/lib/misc/group.db
-rw-r--r-- 1 root root 8192 Feb 26 12:46 /var/lib/misc/passwd.db

~$ su -l ingo
ingo: ~$ logout
~$ ls -l /var/cache/.security.db
-rw------- 1 root ingo 8192 Feb 26 12:55 /var/cache/.security.db

~$ sudo cc_dump
Credential Type  User             Service  Cached Credentials
----------------------------------------------------------------------------------
Salted SHA1      ingo             any     c2da4cd14bd00bd7ecd72ab15e565e9149b46fd5

Нет, это не мои учетные данные SHA1 ;-) Поскольку я использую открытый текстовый пароль в командной строке, я не буду кэшировать его в истории bash .

~$ history -a
~$ sudo cc_test -validate any ingo <password>
pam_cc_validate_credentials: Success
~$ history -c
~$ history -r

Вы должны найти пользователей и группы, которые определены только в каталоге LDAP, и вы должны иметь возможность войти в систему, даже если вы не в сети:

~$ sudo ip link set eth0 down
~$ getent passwd|group
~$ su -l ingo
ingo: ~$ logout
~$ sudo ip link set if up

Я видел некоторые задержки после установки, но они исчезли после перезагрузки.


Ссылки:
ubuntu - PamCcredsHowto

0
ответ дан 26 February 2020 в 11:35

Теги

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