Astra linux samba freeipa

Исходные данные

Предполагается, что уже установлен сервер 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:

Читайте также:  Основы безопасности операционной системы astra linux special edition управление доступом

В конфигурационном файле сервиса 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»

Читайте также:  Linux узнать загруженность процессора

После внесения изменений в registry изменения применяются автоматически, и, в отличие от работы с конфигурационным файлом, службу samba перезапускать не нужно.

Создание домашних каталогов

Для тестирования можно создать на сервере условный домашний каталог пользователя admin (т.е. администратора FreeIPA, создаваемого «по умолчанию»):

sudo mkhomedir_helper admin

Подключение/монтирование ресурса с клиентской доменной машины

После выполнения указанных выше действий ресурс (в данном примере — автоматически монтируемый домашний каталог пользователя см. специальный ресурс homes) будет доступен на клиентской машине после получения билета Kerberos:

Монтирование разделяемых ресурсов а аутентификацией Kerberos также будет доступно при наличии билета Kerberos (опции монтирования cruid, user, sec):

Для использования опции монтирования sec=krb5i на сервере должен быть задан параметр:

Отдельный сервер samba

В примере выше сервер samba запускается непосредственно на контроллере домена. Далее рассматриваются действия по запуску файлового сервера samba с аутентификацией через доменную службу Kerberos на отдельном компьютере, введенном в домен FreeIPA.

    Действия на контроллере домена:

      Если при установке контроллера домена не была выполнена установка и настройка службы 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 ---------------------------------
    • в Astra Linux Special Edition x.7 достаточно использовать основной репозиторий;
    • в Astra Linux Special Edition РУСБ.10015-01 (очередное обновление 1.6) необходимо подключить репозиторий диска со средствами разработки.

    Установка пакета freeipa-admintools не является обязательной, но, если пакет установлен, то операции по регистрации службы samba могут быть выполнены на клиенте;

    ipa permission-add «CIFS server can read user passwords» —attrs= —type=user —right= —bindtype=permission
    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 (на контроллере домена или на клиенте) на любом компьютере, входящем в домен, должна успешно последовательность команд:

      Получить билет любого доменного пользователя:

    Ошибки и предупреждения

    • Ошибка соединения NT_STATUS_BAD_NETWORK_NAME при попытке доступа к ресурсу говорит о том, что забыли создать на сервере каталог (при доступе к ресурсу homes — домашний каталог пользователя);

    или сделать так, чтобы этот каталог создавался автоматически при загрузке, для чего в файле /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

    • Сообщение «open_internal_pipe: Could not connect to dssetup pipe: NT_STATUS_RPC_INTERFACE_NOT_FOUND» является некритичным предупреждением и на работоспособность службы winbind не влияет;
    • Сообщение «Unable to initialize messaging context» на работоспособность клиента samba не влияет;

    Источник

Оцените статью
Adblock
detector