Установка и настройка SSSD для аутентификации OpenLDAP в Fedora 32/31/30
Из этого учебного пособия вы узнаете, как установить и настроить SSSD для аутентификации OpenLDAP в Fedora 32/31/30. SSSD — это аббревиатура от System Security Services Daemon (SSSD). «Основная функция SSSD — предоставить доступ к локальным или удаленным ресурсам идентификации и аутентификации через общую структуру, которая может обеспечить кэширование и автономную поддержку системы. Он предоставляет несколько интерфейсов, включая модули NSS и PAM или интерфейс D-Bus » .
Преимущества использования SSSD для удаленной идентификации и аутентификации:
- Снижение нагрузки на серверы идентификации и аутентификации : после того, как SSSD установил контакт с сервером идентификации и аутентификации, он кэширует информацию, и, следовательно, последующий запрос этой информации извлекается из кеша, что снижает нагрузку на внутренние серверы.
- Автономная аутентификация : SSSD можно настроить для хранения в кеше идентификаторов и учетных данных пользователей в течение определенного периода времени. Это позволяет пользователям аутентифицировать ресурсы, даже если удаленный сервер или клиент SSSD отключены.
- Единая учетная запись пользователя: кэширование учетных данных SSSD и информации учетной записи делает недействительной необходимость поддерживать как центральную учетную запись, так и локальную учетную запись пользователя для автономной аутентификации.
Продолжая читать это руководство, мы предполагаем, что у вас уже есть запущенный сервер OpenLDAP. Если вы, перейдите по ссылке ниже, чтобы установить и настроить сервер OpenLDAP в CentOS 8.
Установите и настройте OpenLDAP на CentOS 8
Запустить обновление системы
Прежде чем продолжить, убедитесь, что ваши системные пакеты обновлены
dnf update
Установите SSSD в Fedora 32/31/30
Выполните приведенную ниже команду, чтобы установить SSSD и другие инструменты SSSD в Fedora 32/31/30. (он может быть уже установлен по умолчанию).
dnf install sssd sssd-tools
Настройте SSSD для аутентификации OpenLDAP в Fedora 32/31/30
После завершения установки SSSD и его инструментов перейдите к настройке для вашей аутентификации OpenLDAP.
Обратите внимание, что по умолчанию SSSD не поставляется с файлом конфигурации. Таким образом, вам необходимо создать файл конфигурации SSSD ( sssd.conf,
по умолчанию) в каталоге конфигурации, /etc/sssd
чтобы определить параметры аутентификации OpenLDAP.
vim /etc/sssd/sssd.conf
Ниже приведен наш образец деталей конфигурации SSSD. Обязательно внесите соответствующие изменения в приведенные ниже конфигурации, чтобы отразить настройку среды OpenLDAP.
[sssd]
services = nss, pam
config_file_version = 2
domains = default
[nss]
[pam]
offline_credentials_expiration = 60
[domain/default]
ldap_id_use_start_tls = True
cache_credentials = True
ldap_search_base = dc=ldapmaster,dc=kifarunix-demo,dc=com
id_provider = ldap
auth_provider = ldap
chpass_provider = ldap
access_provider = ldap
sudo_provider = ldap
ldap_uri = ldap://ldapmaster.kifarunix-demo.com
ldap_default_bind_dn = cn=readonly,ou=system,dc=ldapmaster,dc=kifarunix-demo,dc=com
ldap_default_authtok = [email protected]
ldap_tls_reqcert = demand
ldap_tls_cacert = /etc/pki/tls/cacert.crt
ldap_tls_cacertdir = /etc/pki/tls
ldap_search_timeout = 50
ldap_network_timeout = 60
ldap_access_order = filter
ldap_access_filter = (objectClass=posixAccount)
Если вы предоставляете права SUDO через OpenLDAP, ваш SSSD должен включать службы SUDO и базу поиска SUDOERS. Файл конфигурации SSSD будет выглядеть так:
[sssd] services = nss, pam, sudo config_file_version = 2 domains = default [sudo] [nss] [pam] offline_credentials_expiration = 60 [domain/default] ldap_id_use_start_tls = True cache_credentials = True ldap_search_base = dc=ldapmaster,dc=kifarunix-demo,dc=com id_provider = ldap auth_provider = ldap chpass_provider = ldap access_provider = ldap sudo_provider = ldap ldap_uri = ldap://ldapmaster.kifarunix-demo.com ldap_default_bind_dn = cn=readonly,ou=system,dc=ldapmaster,dc=kifarunix-demo,dc=com ldap_default_authtok = [email protected] ldap_tls_reqcert = demand ldap_tls_cacert = /etc/pki/tls/cacert.crt ldap_tls_cacertdir = /etc/pki/tls ldap_search_timeout = 50 ldap_network_timeout = 60 ldap_sudo_search_base = ou=SUDOers,dc=ldapmaster,dc=kifarunix-demo,dc=com ldap_access_order = filter ldap_access_filter = (objectClass=posixAccount)
Для детального всех опций / параметров , используемых в конфигурации SSSD, пожалуйста , обратитесь к, man sssd.conf
.
Установите сертификат CA OpenLDAP в Fedora 32/31/30
SSSD требует, чтобы канал связи был зашифрован. Таким образом, OpenLDAP должен быть настроен с использованием SSL (используется uri ldaps://
) или TLS (используется uri ldap://
).
Если OpenLDAP настроен с использованием SSL ( LDAP прослушивает порт 636 ), выполните команду ниже, чтобы загрузить сертификат CA;
openssl s_client -connect ldapmaster.kifarunix-demo.com:636 -showcerts < /dev/null | openssl x509 -text | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p'
Если в OpenLDAP настроен TLS ( LDAP прослушивает порт 389 ), выполните команду ниже, чтобы загрузить сертификат CA;
openssl s_client -connect ldapmaster.kifarunix-demo.com:389 -starttls ldap -showcerts < /dev/null | openssl x509 -text | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p'
Сертификат отображается на стандартном выходе.
-----BEGIN CERTIFICATE-----
MIIDvzCCAqegAwIBAgIUc8imlOVhEej453dXtvacn7krg1MwDQYJKoZIhvcNAQEL
BQAwbzELMAkGA1UEBhMCS0UxDDAKBgNVBAgMA05haTEMMAoGA1UEBwwDTWFpMRww
...
...
Uy7ivNi2PL6mBwxMpyi0zTopqTXSvi54APm48dd0JPsGLTIgPMc1WvaN7TsUeIBs
Igf9K1e9M0Q+j2XEsTeCYVU/v0Jt0kER0+V/NM0IrDOX+6kRz6DNsZrwcMEf5Yvp
ARWZ
-----END CERTIFICATE-----
Вы должны скопировать этот сертификат и установить в файле , указанном в строке ldap_tls_cacert = /etc/pki/tls/cacert.crt
.
vim /etc/pki/tls/cacert.crt
Вставьте сертификат сюда;
-----BEGIN CERTIFICATE-----
MIIDvzCCAqegAwIBAgIUc8imlOVhEej453dXtvacn7krg1MwDQYJKoZIhvcNAQEL
BQAwbzELMAkGA1UEBhMCS0UxDDAKBgNVBAgMA05haTEMMAoGA1UEBwwDTWFpMRww
...
...
Uy7ivNi2PL6mBwxMpyi0zTopqTXSvi54APm48dd0JPsGLTIgPMc1WvaN7TsUeIBs
Igf9K1e9M0Q+j2XEsTeCYVU/v0Jt0kER0+V/NM0IrDOX+6kRz6DNsZrwcMEf5Yvp
ARWZ
-----END CERTIFICATE-----
Сохраните и выйдите из файла.
Настройте NSS и PAM для аутентификации SSSD в Fedora 32/31/30
Обновите NSS и PAM, чтобы использовать SSSD для управления ресурсами аутентификации. Authselect
— это утилита, которая упрощает настройку аутентификации пользователей, особенно при использовании SSSD для аутентификации.
Настройте профиль SSSD в Fedora 32/31/30
Команда Authselect при использовании для создания профиля SSSD, измените файлы ниже;
- /etc/pam.d/system-auth
- /etc/pam.d/password-auth
- /etc/pam.d/fingerprint-auth
- /etc/pam.d/smartcard-auth
- /etc/pam.d/postlogin
- /etc/nsswitch.conf
Поэтому сделайте резервную копию этих файлов на случай, если что-то не получится.
cp -r /etc/pam.d{,.original} cp /etc/nsswitch.conf{,.original}
Создайте профиль SSSD. Эта команда перезапишет карты nsswitch.
authselect select sssd
Затем, если вы настроили SUDO через OpenLDAP, система будет получать права sudo из SSSD / OpenLDAP, поэтому отредактируйте, /etc/nsswitch.conf
чтобы включить строку ниже.
sudoers: files sss
Вы можете просто повторить строку в файле конфигурации, как показано ниже;
echo "sudoers: files sss" >> /etc/nsswitch.conf
Настройка автоматического создания домашнего каталога при входе в систему
Чтобы включить автоматическое создание домашнего каталога для пользователя при первом входе в систему, вам необходимо установить oddjob-mkhomedir
, который предоставляет pam_oddjob_mkhomedir
модуль для создания домашнего каталога для пользователя во время входа в систему.
dnf install oddjob-mkhomedir
Запустите и включите oddjobd для запуска при загрузке системы.
systemctl enable --now oddjobd
Загрузите pam_oddjob_mkhomedir
модуль в файл аутентификации PAM, /etc/pam.d/system-auth
чтобы включить автоматическое создание домашнего каталога.
echo "session optional pam_oddjob_mkhomedir.so skel=/etc/skel/ umask=0022" >> /etc/pam.d/system-auth
Перезапустите oddjobd.
systemctl restart oddjobd
Запуск SSSD в Fedora 32/31/30
Прежде чем вы сможете запустить SSSD, вам необходимо проверить конфигурацию на наличие опечаток или разрешений;
sssctl config-check
File ownership and permissions check failed. Expected root:root and 0600.
В соответствии с выходными данными проверки установите доступ для чтения / записи /etc/sssd/
для владельца (root)..
chown -R root:root /etc/sssd
chmod 600 -R /etc/sssd
Теперь настройка завершена. Запустите и включите SSSD для запуска при загрузке системы.
systemctl enable --now sssd
Проверить статус.
systemctl status sssd
● sssd.service - System Security Services Daemon
Loaded: loaded (/usr/lib/systemd/system/sssd.service; enabled; vendor preset: enabled)
Active: active (running) since Thu 2020-08-27 19:31:25 EAT; 2h 22min ago
Main PID: 663 (sssd)
Tasks: 3 (limit: 2332)
Memory: 7.6M
CPU: 713ms
CGroup: /system.slice/sssd.service
├─663 /usr/sbin/sssd -i --logger=files
├─806 /usr/libexec/sssd/sssd_be --domain implicit_files --uid 0 --gid 0 --logger=files
└─807 /usr/libexec/sssd/sssd_nss --uid 0 --gid 0 --logger=files
Aug 27 19:30:58 fedora32.kifarunix-demo.com systemd[1]: Starting System Security Services Daemon...
Aug 27 19:31:24 fedora32.kifarunix-demo.com sssd[663]: Starting up
Aug 27 19:31:24 fedora32.kifarunix-demo.com be[implicit_files][806]: Starting up
Aug 27 19:31:25 fedora32.kifarunix-demo.com nss[807]: Starting up
Aug 27 19:31:25 fedora32.kifarunix-demo.com systemd[1]: Started System Security Services Daemon.
Проверить аутентификацию OpenLDAP через SSSD
Установка и настройка SSSD для аутентификации OpenLDAP в Fedora 32/31/30 завершена. Пришло время проверить аутентификацию системы через OpenLDAP.
Сначала убедитесь, что вы видите свое имя пользователя LDAP в своей системе с помощью id
команды.
id janedoe
uid=10010(janedoe) gid=10010(janedoe) groups=10010(janedoe)
После подтверждения вы можете подтвердить логин. Вы можете использовать SSH или GUI для входа в настольные системы.
ssh -l janedoe localhost
The authenticity of host 'localhost (::1)' can't be established.
ECDSA key fingerprint is SHA256:JyAO5/n9crE8qa923r0W0Ocw47LuVJFGuLZvnwRUM8k.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added 'localhost' (ECDSA) to the list of known hosts.
[email protected]'s password:
[[email protected] ~]$
[[email protected] ~]$ whoami
janedoe
[[email protected] ~]$ pwd
/home/janedoe
[[email protected] ~]$
Фантастический!! Это все, что нужно для установки и настройки SSSD для аутентификации OpenLDAP в Fedora 32/31/30.