[Sysadmins] samba 4.9.13 и файлсервер

Evgeny Sinelnikov sin на altlinux.org
Вт Ноя 12 02:56:35 MSK 2019


Здравствуйте,

пн, 11 нояб. 2019 г. в 21:03, <solic на shpl.ru>:
>
> Коллеги, я столкнулся с таким явлением при обновлении файл-сервера  до
> версии 4.9.13:
> он стал стребовать winbindd.
> ===
>
> check_winbind_security: winbindd not running - but required as domain
> member: NT_STATUS_NO_LOGON_SERVERS
>
> ====
>   В документе https://www.samba.org/samba/history/samba-4.8.0.html
> написано что теперь так:
> Domain member setups require winbindd
> -------------------------------------
>
> Setups with "security = domain" or "security = ads" require a
> running 'winbindd' now. The fallback that smbd directly contacts
> domain controllers is gone.
> -------------------
>
> Сервер был доменконтролером в режиме NT, затем контроллер через
> classikupgrade перекочевал на другую машину. А этот остался файл
> сервером.
> Был введён в домен по инструкции на  wiki.altlinux.org.

Там их много. Я уже перестал понимать какие из них имеются в виду.
По умолчанию для клиента предлагается использовать sssd. Чтобы в этом
убедиться, нужно выдать:

# grep sss /etc/nsswitch.conf
# grep provider /etc/sssd/sssd.conf
# cat /etc/pam.d/system-auth

Ну, и сама samba:
# cat /etc/samba/smb.conf
# testparm

И это настройки простого клиента. В данном случае (файловый сервер с
winbind'ом) - это тоже клиент к домену, но несколько более сложный,
поскольку сам ещё и сервер. Этому клиенту, если установлен sssd, нужно
"видеть" мапинг sid'ов на uid'ы также, как и в nss-модулях, которые
обслуживает sssd.

Для этого в /etc/samba/smb.conf нужно задать соответствующий мапинг
(пакет libsss_nss_idmap):
idmap config * : backend = sss
(при этом idmap config * : range я, вообще, сначала закомментировал -
нужно проверять)

В итоге у меня так выглядит на таком сложном клиенте поправленный
конфиг smb.conf:
# Global parameters
[global]
        kerberos method = system keytab
        realm = DOMAIN.ALT
        security = ADS
        template shell = /bin/bash
        winbind use default domain = Yes
        workgroup = DOMAIN
        idmap config * : range = 200000-2000200000
        idmap config * : backend = sss
        acl group control = Yes # это не обязательно

Кроме того, у нас имеется специальный вариант библиотеки
libwbclient-sssd, для работы клиентов не через winbind, а через sssd.
Его нужно установить:
# apt-get install libwbclient-sssd
Ещё можно задать winbind use default domain = true, если sssd так настроен.


> Наблюдаю непонятное поведение uid пользователей - getent  passwd <user>
> выдаёт то локальные(старый), то доменные и системы не вижу.
>
> Пробовал запустить winbindd
> Получил
> --
>   add_trusted_domain: SID [S-1-5-21-3013211783-2101623650-2255371279]
> already used by domain [SHPLDC2012], expected [SHPL]
> ---
> Где SHPLDC2012 - имя сервера
>
> Наверное это остатки старого -но что где чистить - не знаю.
> Вообще я несколько не понимаю с чем теперь жить с sssd, winbindd  или
> оба?

Да, запускать нужно оба. Но у winbind'а свои функции - его стоит
рассматривать как часть samba.

Перезапуск с полной чисткой кеша выглядит так (/var/lib/samba/private
не трогаем):
rm -f /var/lib/samba/*.tdb /var/lib/samba/group_mapping.ldb
/var/cache/samba/*.tdb && service winbind restart && service smb
restart

Перед этим на продакшине я бы всё забекапил (хотя бы для дальнейшего
анализа и отладки в старом состоянии):
tar -cf /var/lib/samba-backup.tar /var/lib/samba /var/cache/samba
/var/log/samba /etc/samba

-- 
Sin (Sinelnikov Evgeny)


Подробная информация о списке рассылки Sysadmins