- Исходные данные
- Установка samba при инициализации сервера FreeIPA
- Доустановка samba после инициализации сервера FreeIPA
- Особенности работы связки FreeIPA — samba
- Подключение/монтирование ресурса с клиентской доменной машины
- Отдельный сервер samba
- Разграничение доступа к разделяемым ресурсам в домене
- Простые проверки
- Ошибки и предупреждения
Исходные данные
Предполагается, что уже установлен сервер FreeIPA (контроллер домена). При стандартной установке на таком сервере уже установлены службы samba и winbind.
Данная статья применима к:
- Astra Linux Special Edition РУСБ.10015-01 (очередное обновление 1.7) с установленным обновлением БЮЛЛЕТЕНЬ № 2022-0819SE17 (оперативное обновление 1.7.2)
- Astra Linux Special Edition РУСБ.10152-02 (очередное обновление 4.7) с установленным обновлением 4.7.2
- Astra Linux Special Edition РУСБ.10015-01 (очередное обновление 1.6) с установленным обновлением БЮЛЛЕТЕНЬ № 20220829SE16 (оперативное обновление 11)
- Astra Linux Common Edition 2.12.45
Установка samba при инициализации сервера FreeIPA
Установка и настройка службы samba может быть выполнена при инициализации сервера FreeIPA. Для этого используется:
- при инициализации первого сервера FreeIPA в домене командой astra-freeipa-server — опция -s;
- при установке реплик командой astra-freeipa-replica — опция —setup-adtrust .
При установке и настройке службы Samba также выполняется установка и настройка компонент для работы с Windows AD, но настраивать при этом доверительные отношения с доменом Windows AD не обязательно.
Доустановка samba после инициализации сервера FreeIPA
Если при инициализации сервера (реплики) FreeIPA не была применена опция установки и настройки samba, то это можно сделать после инициализации:
- Получить для суперпользователя билет Kerberos администратора домена:
Особенности работы связки FreeIPA — samba
- samba получит роль ROLE_DOMAIN_PDC;
- Сервис samba будет переведён под управление FreeIPA;
- Будет создана и зарегистрирована доменная служба CIFS.
Отдельно выполнять команду добавления службы «ipa service-add . «, как рекомендуется во многих Интернет-инструкциях, не нужно: служба добавится автоматически.
После установки ipa-adtrust-install чтение конфигурации samba на сервере будет доступно только суперпользователю.
Монтирование и авторизация через samba на сервере для простых пользователей работать не будут.
Монтировать разделяемые ресурсы следует только с компьютеров-клиентов.
Службы samba и winbind теперь будут управляться командой ipactl, в списке служб, выводимом этой командой, появится службы smb и winbind:
В конфигурационном файле сервиса samba /etc/samba/smb.conf останется только отсылка в БД «registry», куда будут перенесены все конфигурационные параметры:
### Added by IPA Installer ###
[global]
debug pid = yes
config backend = registry
Опция «config backend = registry» указывает, что все конфигурационные параметры хранятся в БД registry. Параметры, указанные в файле /etc/samba/smb.conf после этой опции игнорируются.
Можно создать комбинированную конфигурацию, заменив «config backend = registry» на «include = registry», что позволит задавать параметры в файле /etc/samba/smb.conf.
Проверить правильность конфигурации можно стандартной командой testparm, однако теперь только от имени суперпользователя:
Перед редактированием БД «registry» рекомендуется сохранить текущую конфигурацию (вывод команды sudo testparm), чтобы иметь возможность восстановить конфигурацию в случае ошибок.
Редактировать БД «registry» можно с помощью специальной утилиты samba-regedit (устанавливается автоматически при установке пакета samba):
Все секции конфигурации samba (в том числе разделяемые ресурсы, включая специальный ресурс homes) могут быть указаны в этой ветке. Все параметры имеют одинаковый тип REG_SZ.
При этом конфигурационные данные можно импортировать в registry из файлов с синтаксисом конфигурационного файла samba с помощью команды net. Например, для создания разделяемых ресурсов homes и share:
- Создать в любом текстовом редакторе файл homes.txt с описанием ресурса homes:
[homes]
browseable = no
comment = Home Directories
create mask = 0600
directory mask = 0700
valid users = %S
# По умолчанию ресурс [homes] предоставляется как ресурс только для чтения (read only = yes).
# Если требуется разрешить запись нужно явно указать read only = no
read only = No
guest ok = no
[share]
comment = anonymous share
create mask = 0666
directory mask = 0777
guest ok = yes
guest only = yes
path = /srv/share
read only = no
Эти же действия можно выполнить командами без использования файлов для сохранения данных, например, для создания разделяемого ресурса homes:
sudo net conf addshare «homes» «/home/%U» «writeable=y» «guest_ok=N» «Home Directories»
sudo net conf setparm «homes» «browseable» «No»
sudo net conf setparm «homes» «valid users» «%S»
После внесения изменений в registry изменения применяются автоматически, и, в отличие от работы с конфигурационным файлом, службу samba перезапускать не нужно.
Создание домашних каталогов
Для тестирования можно создать на сервере условный домашний каталог пользователя admin (т.е. администратора FreeIPA, создаваемого «по умолчанию»):
sudo mkhomedir_helper admin
Подключение/монтирование ресурса с клиентской доменной машины
После выполнения указанных выше действий ресурс (в данном примере — автоматически монтируемый домашний каталог пользователя см. специальный ресурс homes) будет доступен на клиентской машине после получения билета Kerberos:
Монтирование разделяемых ресурсов а аутентификацией Kerberos также будет доступно при наличии билета Kerberos (опции монтирования cruid, user, sec):
Для использования опции монтирования sec=krb5i на сервере должен быть задан параметр:
Отдельный сервер samba
В примере выше сервер samba запускается непосредственно на контроллере домена. Далее рассматриваются действия по запуску файлового сервера samba с аутентификацией через доменную службу Kerberos на отдельном компьютере, введенном в домен FreeIPA.
- Действия на контроллере домена:
- в Astra Linux Special Edition x.7 достаточно использовать основной репозиторий;
- в Astra Linux Special Edition РУСБ.10015-01 (очередное обновление 1.6) необходимо подключить репозиторий диска со средствами разработки.
- Ошибка соединения NT_STATUS_BAD_NETWORK_NAME при попытке доступа к ресурсу говорит о том, что забыли создать на сервере каталог (при доступе к ресурсу homes — домашний каталог пользователя);
- Сообщение «open_internal_pipe: Could not connect to dssetup pipe: NT_STATUS_RPC_INTERFACE_NOT_FOUND» является некритичным предупреждением и на работоспособность службы winbind не влияет;
- Сообщение «Unable to initialize messaging context» на работоспособность клиента samba не влияет;
- Если при установке контроллера домена не была выполнена установка и настройка службы samba, то установить необходимые компоненты, выполнив на контроллере домена следующие команды:
SID for local machine IPA0 is: S-1-5-21-2933183829-3187441131-1463459236 SID for domain IPADOMAIN is: S-1-5-21-2933183829-3187441131-1463459236
--------------- 1 range matched --------------- cn: IPADOMAIN.RU_id_range ipabaseid: 72000 ipaidrangesize: 1000000 ipabaserid: 1000 ipasecondarybaserid: 100000000 iparangetype: ipa-local --------------------------------- Количество возвращённых записей 1 ---------------------------------
Установка пакета freeipa-admintools не является обязательной, но, если пакет установлен, то операции по регистрации службы samba могут быть выполнены на клиенте;
ipa permission-add «CIFS server can read user passwords» —attrs=
ipa privilege-add «CIFS server privilege»
ipa privilege-add-permission «CIFS server privilege» —permission=»CIFS server can read user passwords»
ipa role-add «CIFS server»
ipa role-add-privilege «CIFS server» —privilege=»CIFS server privilege»
sudo kinit admin
sudo ipa-getkeytab -s ipa0.ipadomain.ru -p cifs/samba.ipadomain.ru -k /etc/samba/samba.keytab
где:
— ipa0.ipadomain.ru — имя контроллера домена, у которого запрашиваются ключи;
— cifs/samba.ipadomain.ru — имя службы, для которой запрашиваются ключи;
— /etc/samba/samba.keytab — имя файла, в котором будут сохранены полученные ключи;
[global]
dedicated keytab file = /etc/samba/samba.keytab
kerberos method = dedicated keytab
log file = /var/log/samba/log.%m
realm = IPADOMAIN.RU
security = ads
workgroup = IPADOMAIN
idmap config IPADOMAIN : range = —
idmap config IPADOMAIN : backend = sss
idmap config * : range = 0 — 0 [homes]
browsable = no
writable = yes [shared]
path = /srv/share
writable = yes
browseable = yes
где:
— realm = IPADOMAIN.RU — название области Kerberos, имя домена заглавными буквами;
— workgroup = IPADOMAIN — имя рабочей группы, первая часть (до точки) имени области Kerberos;
— в параметре idmap config IPADOMAIN : range чрез тире указываются ранее вычисленные первое и последнее значения диапазона идентификаторов FreeIPA;
— секции [homes] и [shared] определяют разделяемые ресурсы и приведены для примере (при этом секция [homes] имеет специальное назначение, см. Автоматическое монтирование разделяемых ресурсов Samba);
Разграничение доступа к разделяемым ресурсам в домене
Для того, чтобы ограничить доступ доменных пользователей к разделяемому ресурсу samba можно использовать следующую процедуру:
- Получить билет администратора домена:
Простые проверки
Независимо от места размещения сервера samba (на контроллере домена или на клиенте) на любом компьютере, входящем в домен, должна успешно последовательность команд:
- Получить билет любого доменного пользователя:
Ошибки и предупреждения
или сделать так, чтобы этот каталог создавался автоматически при загрузке, для чего в файле /usr/lib/tmpfiles.d/samba.conf строчку «d /run/samba 0755 root root -» заменить на строчку «d /run/samba/msg.lock 0755 root root -«:
sudo sed -i «s~^\s*d\s*/run/samba\s*0755\s*root\s*root\s*-~d /run/samba/msg.lock 0755 root root -~» /usr/lib/tmpfiles.d/samba.conf