Вопрос или проблема
Я унаследовал сервер Samba 4 Active Directory
(AD). Он работает нормально с winbind
, однако по соображениям безопасности мы хотели бы перейти на sssd
. Домен имеет два контроллера домена (основной и вторичный), оба онлайн.
Я создал тестовую клиентскую машину и следовал шагам здесь, чтобы подключиться к домену, используя sssd
. Клиент утверждает, что он подключен к домену, и действительно появляется в домене (когда я использую Active directory users and computers
.)
Однако, входы и getent
не работают.
/var/log/auth.log
Jun 12 14:19:16 clientCompName sshd[9349]: Invalid user adusername from xxx.xxx.xx8.149 port 42304
Jun 12 14:19:20 clientCompName sshd[9349]: pam_unix(sshd:auth): check pass; user unknown
Jun 12 14:19:20 clientCompName sshd[9349]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=xxx.xxx.xx8.149
Jun 12 14:19:21 clientCompName sshd[9349]: Failed password for invalid user adusername from xxx.xxx.xx8.149 port 42304 ssh2
Если я выполняю realm discover
, я замечаю, что клиенты, кажется, привязаны к использованию winbind
.
root@clientCompName:/etc/pam.d# realm discover ADDOMAIN.MYDOMAN.DE
addomain.mydomain.de
type: kerberos
realm-name: ADDOMAIN.MYDOMAN.DE
domain-name: addomain.mydomain.de
configured: kerberos-member
server-software: active-directory
client-software: winbind
required-package: winbind
required-package: libpam-winbind
required-package: samba-common-bin
login-formats: SMBAD\%U
login-policy: allow-any-login
/etc/pam.d/common-auth
auth [success=2 default=ignore] pam_unix.so nullok_secure
auth [success=1 default=ignore] pam_sss.so use_first_pass
auth requisite pam_deny.so
auth required pam_permit.so
auth optional pam_cap.so
# end of pam-auth-update config
/etc/pam.d/common-session
session [default=1] pam_permit.so
session requisite pam_deny.so
session required pam_permit.so
session optional pam_umask.so
session required pam_unix.so
session optional pam_sss.so
session optional pam_systemd.so
# end of pam-auth-update config
/etc/pam.d/common-account
account [success=1 new_authtok_reqd=done default=ignore] pam_unix.so
account requisite pam_deny.so
account required pam_permit.so
account sufficient pam_localuser.so
account [default=bad success=ok user_unknown=ignore] pam_sss.so
# end of pam-auth-update config
Можно ли конвертировать AD для использования sssd
вместо winbind
(или для приема обоих?)
Это сработало для меня – можете исключить пакеты samba, если хотите?
yum install sssd krb5workstation sambacommon authconfig adcli krb5-workstation samba samba-client sssd-libwbclient policycoreutils-python
systemctl enable sssd
systemctl start sssd
systemctl enable smb
systemctl restart smb
authconfig --update --enablesssd --enablesssdauth --enablemkhomedir
Измените строки в /etc/nsswitch.conf
так, чтобы они выглядели как…
passwd: files sss
shadow: files sss
group: files sss
Затем
kinit adminuser
(используйте учетную запись администратора AD)
klist
(проверка билета)
realm join --user=\adminuser@DOMAIN DOMAIN
Редактируйте /etc/sssd/sssd.conf
:
use_fully_qualified_names = False
fallback_homedir = /home/%u
Затем:
systemctl start sssd
Измените /etc/samba/smb.conf
и проверьте, что строки все еще там:
security = ads
realm = DOMAIN
workgroup = ...
Затем:
systemctl restart smb
Тестирование:
realm discover DOMAIN
id domainuser
Ответ или решение
Конвертацию домена Samba Active Directory с использованием winbind
в sssd
можно осуществить путем пересмотра конфигурации вашей системы. Ниже описаны шаги, которые помогут достичь этой цели. Убедитесь, что копия конфигураций и резервные копии реализованы перед началом изменений.
-
Установка необходимых пакетов:
Для начала, установите необходимые пакеты на вашей тестовой машине. Это можно сделать с помощью командыyum
илиapt
, в зависимости от используемой системы.yum install sssd krb5-workstation samba-common authconfig adcli sssd-libwbclient policycoreutils-python
или
apt-get install sssd krb5-user samba-common-bin packagekit
-
Настройка службы sssd:
Удостоверьтесь, что службаsssd
включена и запущена:systemctl enable sssd systemctl start sssd
-
Конфигурация PAM:
Обратите внимание на файлы конфигурации в/etc/pam.d/
. Убедитесь, чтоpam_sss.so
корректно настроен:auth [success=1 default=ignore] pam_sss.so use_first_pass account [default=bad success=ok user_unknown=ignore] pam_sss.so session optional pam_sss.so
-
Редактирование файла nsswitch.conf:
Настройте файлы/etc/nsswitch.conf
для интеграции с sssd:passwd: files sss shadow: files sss group: files sss
-
Подключение к домену:
Используйтеkinit
для получения ticket от Kerberos:kinit adminuser klist
Затем инициируйте подключение к домену через
realm
:realm join --user=adminuser@DOMAIN DOMAIN
-
Конфигурация файла sssd.conf:
Подкорректируйте файл/etc/sssd/sssd.conf
следующим образом:[sssd] services = nss, pam config_file_version = 2 domains = DOMAIN [domain/DOMAIN] id_provider = ad access_provider = ad # Дополнительные параметры fallback_homedir = /home/%u use_fully_qualified_names = False
-
Тестирование и диагностика:
Перезапуститеsssd
и выполните проверку:systemctl restart sssd id domainuser realm discover DOMAIN
Если какой-либо тест не приводит к успешному результату, проверьте логи, такие как /var/log/sssd/sssd.log
и /var/log/auth.log
, для идентификации и устранения проблем.
Эти настройки помогут настроить использование sssd
для управления аутентификацией и каталогом, исключая необходимость в winbind
, что улучшит безопасность и целостность вашей системы.