Вопрос или проблема
В настоящее время у меня есть сервер CentOS8, интегрированный с AD, использующий SSSD и автоматическое сопоставление/генерацию SID->UID. Я хотел бы настроить доступ к файловым ресурсам, чтобы использовать группы AD, но испытываю трудности с настройкой. У кого-то есть пример конфигурации, который не использует winbind? В настоящее время у меня следующая конфигурация:
[global]
workgroup = <имя домена netbios>
security = ads
realm = <домен fqdn>
domain master = no
local master = no
preferred master = no
client min protocol = SMB3
vfs objects = acl_xattr
map acl inherit = yes
log level = 5
idmap config * : backend = sss
idmap config * : range = 10001-2000100000
kerberos method = secrets and keytab
Я не знаком с настройкой Samba, поэтому, возможно, некоторые из этих параметров не имеют смысла или лишние? Я получаю следующую ошибку при попытке запустить Samba:
[2021/02/08 19:26:53.511544, 3] ../../source3/auth/token_util.c:788(finalize_local_nt_token)
Не удалось проверить членство локальных пользователей (NT_STATUS_INVALID_PARAMETER_MIX)
[2021/02/08 19:26:53.511550, 0] ../../source3/auth/auth_util.c:1403(make_new_session_info_guest)
create_local_token не удалось: NT_STATUS_INVALID_PARAMETER_MIX
[2021/02/08 19:26:53.511603, 0] ../../source3/smbd/server.c:2052(main)
ERROR: Не удалось настроить информацию о госте.
Спасибо
У меня есть небольшая работоспособная настройка Samba без winbind, которая использует SSSD/Kerberos для аутентификации и контролирует доступ к ресурсам через группы Windows AD. Я изначально получил настройку отсюда: http://www.hexblot.com/blog/centos-7-active-directory-and-samba. Я не являюсь экспертом по Samba, так что не могу дать много объяснений, но надеюсь, это направит вас в нужную сторону. В настоящее время сервер работает на Debian 10.8, Samba 4.9.5 и SSSD 1.16.3.
Вот глобальная секция smb.conf и один общий ресурс:
[global]
workgroup = <имя домена netbios>
security = ads
encrypt passwords = yes
passdb backend = tdbsam
realm = <к realms kerberos (обычно FQDN домена большими буквами)>
map to guest = Bad User
kerberos method = secrets and keytab
# Не интересуют принтеры
load printers = no
cups options = raw
# Это предотвращает появление раздражающего сообщения в логах
printcap name = /dev/null
[backups]
comment = Моя общая папка
path = /srv/smbshares/backups
public = no
writable = yes
guest ok = no
valid users = @"[email protected]"
create mask = 660
directory mask = 770
Это все, что я могу сказать с уверенностью, но предложу немного предположений, так как у меня нет времени для экспериментов:
Одно из крупных отличий, которое я замечаю между моей конфигурацией и вашей, в том, что вы используете idmap, а я — нет. Поскольку ошибка упоминает о проблеме с местным членством групп, я подозреваю, что проблема здесь. Вы пробовали указать tdb как бэкенд по умолчанию (*) и затем sss как специфичный для домена (что-то вроде этого – смотрите https://www.mankier.com/8/idmap_sss):
idmap config <КРАТКОЕ ИМЯ AD-ДОМЕНА> : backend = sss
idmap config <КРАТКОЕ ИМЯ AD-ДОМЕНА> : range = 200000-2147483647
idmap config * : backend = tdb
idmap config * : range = 100000-199999
Ответ или решение
Конфигурация Samba-сервера с использованием SSSD и Active Directory без Winbind
Для настройки Samba-сервера, который будет интегрирован с Active Directory (AD), используя SSSD вместо Winbind, необходимо выполнить следующие шаги. Убедитесь, что вы следуете приведенным рекомендациям и адаптируете примеры к вашим конкретным условиям.
1. Установка необходимых пакетов
В первую очередь убедитесь, что установлены все необходимые пакеты:
yum install samba samba-client samba-common sssd sssd-tools oddjob-mkhomedir
2. Настройка SSSD
Убедитесь, что файл конфигурации SSSD корректен. Обычно он находится в /etc/sssd/sssd.conf
. Пример конфигурации может выглядеть так:
[sssd]
services = nss, pam
config_file_version = 2
domains = DOMAIN_NAME
[domain/DOMAIN_NAME]
id_provider = ad
auth_provider = ad
access_provider = ad
override_homedir = /home/%u@%d
default_shell = /bin/bash
# Enable automatic home directory creation
use_pam = True
Замените DOMAIN_NAME
на ваше доменное имя. Не забудьте установить правильные права доступа на файл:
chmod 600 /etc/sssd/sssd.conf
3. Настройка Samba
Следующий шаг — это настройка smb.conf
, который обычно располагается в /etc/samba/smb.conf
. Убедитесь, что ваш файл выглядел следующим образом:
[global]
workgroup = DOMAIN_NETBIOS_NAME
security = ads
realm = DOMAIN_FQDN
kerberos method = secrets and keytab
map to guest = Bad User
idmap config DOMAIN:backend = sss
idmap config DOMAIN:range = 200000-2147483647
idmap config *:backend = tdb
idmap config *:range = 100000-199999
client min protocol = SMB3
vfs objects = acl_xattr
map acl inherit = yes
log level = 5
# Пример шары
[backups]
comment = My shared folder
path = /srv/smbshares/backups
public = no
writable = yes
valid users = @"AD_GROUP_NAME"
create mask = 0660
directory mask = 0770
Обязательно замените DOMAIN_NETBIOS_NAME
, DOMAIN_FQDN
, и AD_GROUP_NAME
на соответствующие значения вашего домена и группы.
4. Запуск и проверка служб
После того как вы закончили редактирование конфигураций, перезапустите службы SSSD и Samba:
systemctl restart sssd
systemctl restart smb
systemctl restart nmb
Проверьте статус служб для выявления возможных ошибок:
systemctl status sssd
systemctl status smb
systemctl status nmb
5. Тестирование
Для проверки, что все работает корректно, вы можете попытаться подключиться к вашему Samba-серверу с клиента Windows, используя учетные данные, соответствующие группе, заданной в valid users
.
6. Устранение неполадок
Если вы столкнулись с ошибками, обратите внимание на логи Samba, которые по умолчанию располагаются в /var/log/samba/
и могут помочь диагностировать проблему. Ошибка, которую вы упомянули об NT_STATUS_INVALID_PARAMETER_MIX
, может быть связана с неправильной конфигурацией групповых привилегий или проблемами со SID/UID маппингом.
Следуя этим шагам, вы сможете настроить Samba-сервер с интеграцией AD через SSSD без использования Winbind. Если будут дополнительные вопросы или возникнут трудности, не стесняйтесь задавать их.