LINUX.ORG.RU

Доверие доменов samba Astra linux

 , , ,


0

1

Добрый день!

Двигаясь по пути развертывание файлового сервера (ФС) на базе Astra Linux 1.8.1 столкнулся проблемой.

Конфигурация сервера следующая:

  1. Linux+samba+winbind+AD+ACL
  2. Конфигурация kerberos и samba выполнены для основного домена
  3. Права ACL для пользователей и групп основного домена AD розданы и работают.
  4. Имеется второй AD домен. Он не подчинен основному, но между ними выстроены двухсторонние доверительные отношения.

Задача: И вот, после раздачи ACL прав для групп и пользователей основного домена, осталась вишенка на торте: дать на один каталог несколько прав для группы второго домена.

Что имеем: По умолчанию Astra использует инструментарий sssd. Он, что называется, «из коробки» позволяет проходить идентификацию под пользователем (администратором) дружественного домена. И раздавать права. Это проверено.

Проблема: А вот в схеме winbind такая фича не работает. При этом я проверял идентификацию из под графики на двух системах: sssd и winbind. Синтаксис логина и пароля был одинаковым. в первом случае - все работало, во втором нет. Из под командной строки тоже самое. «user does not exist or the user entry does not contain all the required fields»

И еще момент: kinit ко второму домену взращает корректный тикет.

Помогите, пожалуйста. Спасибо.



Последнее исправление: Zhbert (всего исправлений: 2)

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

Zhbert ★★★★★
()

Насколько я помню, sssd не подходит для раздачи прав на файловом сервере. Он был написан для клиентов домена. Тут нужен winbind, чтобы на сервере появились локальные пользователи, соотнесенные с доменными. И уже этим пользователям можно раздавать права.

Соответственно wbinfo -u и -g должны возвращать списки пользователей обоих доменов. Со своими доменами. Дальще уже дело техники. В общем, настраивай winbind.

usermod
()

Возможно тебе поможет эта статья - https://docs.altlinux.org/ru-RU/domain/10.4/html/samba/install-AD-client.html .

Опять же возможно у тебя не работает это

Ограничения Samba Winbind:
   политики не управляются централизованно и должны распространяться вне группы;

И не понятно зачем тебе громоздкий winbind, если sssd работает в требованиях отсутствует NTLM, а это единственное из-за чего wb ещё живёт, а не удалён из дистров.

vtVitus ★★★★★
()
Последнее исправление: vtVitus (всего исправлений: 1)
Ответ на: комментарий от vtVitus

Добрый день!

  1. Касаемо Астры - это не важно. Пусть даже будет Дебиан - не суть.
  2. На самом деле с основным доменом, то есть доменом к которому подключена ОС - проблем нет. Проблемы с доверенным доменом.
  3. winbind используется.

На самом деле есть некоторые продвижения в этом вопросе: Добавил в конфиг kerberos зону второго домена и директиву «winbind scan trusted domains = Yes» в файл smb.conf и идентификация стала проходить успешно.

Но возникла другая проблема!

Необходимо добавить доменному пользователю группу sudo.

Саму группу через команду usermod -G sudo -a я добавил, но необходимо добавить этого пользователя в файл /etc/sudoers Такую же операцию я успешно проделывал с администратором основного домена.

Фишка в том, что в файл sudoers пользователь прописывается без домена. В случае с пользователями основного домена (того домена, который выступает по умолчанию) это работает. Но пользователя из доверенного домена система не распознаёт. Прописывать после имени пользователя второй домен @DOMAIN - результата не даёт.

Подскажите, пожалуйста, как позволить доменному пользователю доверенного домена работать с правами root?

Спасибо.

salder
() автор топика
Ответ на: комментарий от mx__

Не один из вариантов не работает - пишет, что пользователь не найден в файле.

Как писал выше, меня смущает тот момент, что для пользователя основного домена я этом файле вообще не указывал каких-либо указаний на домен - просто имя: %администратор И этого достаточно.

Вероятно, он из (откуда?) конфига самбы или кербероса или еще откуда-то берет домен по умолчанию, а второй домен таковым не является.

Я пробовал в krb5, smb.conf в realm дописывать второй домен (или вторую запись realm), но это ломает вообще все.

salder
() автор топика
Ответ на: комментарий от mx__

default domain в самбе нет. В самбе есть realm = основной домен

В настройках керберос есть для зон такая строка. Ну, то есть зона (в секции [realms]) основного домена и зона дополнительно. идентичные директивы

А еще в krb5 есть директива default_realm = ОСНОВНОЙ ДОМЕН Но без этого параметра авторизация не работает.

salder
() автор топика
Ответ на: комментарий от mx__

Это конфиг кербероса:

[libdefaults]
default_realm = BASE_DOMAIN
kdc_timesync = 1
ccache_type = 4
forwardable = true
proxiable = true
[realms]
BASE_DOMAIN = {
kdc = FDC.base_domain
kdc = SDC.base_domain
admin_server = FDC.base_domain
default_domain = base_domain
auth_to_local = RULE:[1:$1@$0](^.*@BASE_DOMAIN$)s/@BASE_DOMAIN/@base_domain/
auth_to_local = DEFAULT
}
DOMAIN_TWO = {
kdc = bases.domain_two
admin_server = bases.domain_two
default_domain = domain_two
auth_to_local = RULE:[1:$1@$0](^.*@DOMAIN_TWO$)s/@DOMAIN_TWO/@domain_two/
auth_to_local = DEFAULT
}
[domain_realm]
.base_domain = BASE_DOMAIN
base_domain = BASE_DOMAIN
.domain_two = DOMAIN_TWO
domain_two = DOMAIN_TWO
[login]
krb4_convert = false
krb4_get_tickets = false

Конфиг самбы:

[global]
#В этом режиме Samba работает как член домена AD
security = ADS
#Устанавливает строку комментария к принтеру, которая будет видна в диспетчере печати и в сетевом окружении
server string=share Astra Linux
#Параметр указывает на принадлежность сервера к рабочей группе (домену)
workgroup = BASE_DOMAIN
#Указывается зона домена
realm = base_domain
#Для сопоставление локальных id пользователей и доменных, для домена по умолчанию (*) выберем режим tdb (который позволяет и писать и читать id в свою базу данных)
idmap config * : backend = tdb
#Диапазон id пользователей для нашего домена
idmap config * : range = 3000-7999
#Выберем для нашего домена режим RID, который работает в режиме «только чтение». Этот режим извлекает информацию об учетных записях и группах из контроллера домена
idmap config base_domain : backend = rid
#Диапазон id пользователей для нашего домена
idmap config base_domain : range = 10000-999999
#Отключаем режим работы мастер браузер домена
domain master = No
#Поддержка определенных системных вызовов, позволяющих приложениям видеть доменных пользователей
winbind enum groups = yes
#Тоже самое, но для групп
winbind enum users = yes
#Разрешим управлять пользователями без доменной части в имени пользователя
winbind use default domain = yes
#Включим поддержку вложенных групп
winbind nested groups = yes
#Укажем, что winbind должен обновлять билеты Kerberos
winbind refresh tickets = yes
# Кодировка компьютера на котором работает samba
unix charset = utf-8
#Укажем, что нужно переопределять кодировку для dos клиентов
dos charset = cp866
#Служба nmbd не будет предпочитаемым мастер браузером
preferred master = No
#Не будет локальным мастером браузером
local master = No
#Этот параметр управляет, могут ли сервером использоваться символические ссылки в файловой системе UNIX
wide links = yes
#Укажем, что нужно преобразовать права доступа unix в списки доступа Windows NT
nt acl support = yes
#В posix файловых системах, только владелец файла и суперпользователь может изменить разрешения и acl для файла. Этим параметром отменим это ограничение.
acl group control = yes
#Укажем, что нужно использовать расширенные атрибуты файлов
map acl inherit = yes
#Модуль позволит использовать acl Windows, то есть будет возможно редактировать права из Windows
vfs objects = acl_xattr
#Укажем, что нужно считывать DOS атрибуты (системный, скрытый, архивный, только для чтения)
store dos attributes = Yes
#Эта опция позволяет переопределить имя файла событий
log file = /home/log/samba/log.%m
#И максимальный размер файла событий.
max log size = 1000
#Заставим синхронизировать пароли unix с паролями smb
unix password sync = yes
#Оболочка по умолчанию для доменных пользователей
template shell = /bin/bash
#Домашний каталог для доменных пользователей
template homedir = /home/%U@%D
#Параметры определяют минимальную и максимальную версии протокола, используемую клиентом
client min protocol = SMB2
client max protocol = SMB3
#Для распознавания доверенного домена
winbind scan trusted domains = Yes
salder
() автор топика
Ответ на: комментарий от mx__

Вот sudo вполне успешно берет юзера из основного домена. Но не хочет брать его из доверенного домена. То есть идентификация проходит через su, а команды с sudo не работают.

Либо все таки есть какой-то особенный синтаксис написания, либо нужно попробовать убрать умолчание для основного домена.

Что касается файла sudoers, то пробовал такие варианты написания:

%администратор@DOMAIN_TWO ALL=(ALL) ALL
%администратор@domain_two ALL=(ALL) ALL
%DOMAIN_TWO\\администратор ALL=(ALL) ALL
%domain_two\\администратор ALL=(ALL) ALL
%DOMAIN_TWO\\администратор@domain_two ALL=(ALL) ALL
%domain_two\\администратор@domain_two ALL=(ALL) ALL
%DOMAIN_TWO\\domain_two^администратор ALL=(ALL) ALL
salder
() автор топика
Ответ на: комментарий от salder

И потом разве нужно разделять этих юзеров? Обычно делают кругом группу wheel и всех админов валят туда. соответственно в sudo просто:

%wheel        ALL=(ALL)       ALL

Еще советуют, с соблюдением всех пробелов и регистров.

%MYDOMAIN\\domain\ admins  ALL=(ALL) ALL

Тут 2ое domain это группа, там самая wheel к примеру.

mx__ ★★★★★
()
Последнее исправление: mx__ (всего исправлений: 2)