Установка и настройка SSSD для аутентификации OpenLDAP в Fedora 32/31/30

Установка и настройка 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.

Оставить ответ

Ваш адрес email не будет опубликован. Обязательные поля помечены *

16 − три =