Дерево страниц

Сравнение версий

Ключ

  • Эта строка добавлена.
  • Эта строка удалена.
  • Изменено форматирование.



Оглавление


Информация
titleДанная статья применима к:
ОС ОН Орёл 2.12
  • Astra Linux Special Edition РУСБ.10015-01 (очередное обновление 1.7)
  • Astra Linux Special Edition РУСБ.10015-10 (кроме мандатного разграничения доступа)
  • ОС СН Смоленск 1.6
  • ОС СН Ленинград 8.1
    • Astra Linux Special Edition РУСБ.10015-17
    • Astra Linux Special Edition РУСБ.10015-37 (очередное обновление 7.7)
    • Astra Linux Special Edition РУСБ.10015-03 (очередное обновление 7.6)
    • Astra Linux Special Edition РУСБ.10152-02 (очередное обновление 4.7)
    • Astra Linux Special Edition РУСБ.10015-01 (очередное обновление 1.6)
    • Astra Linux Special Edition РУСБ.10015-16 исп. 1
    • Astra Linux Special Edition РУСБ.10015-16 исп. 2
    • Astra Linux Special Edition РУСБ.10265-01 (очередное обновление 8.1)
    • Astra Linux Common Edition 2.12 (кроме мандатного разграничения доступа)

    См. также: Монтирование домашних каталогов клиентов FreeIPA с ненулевой классификационной меткой


    Предупреждение

    При работе в операционных Astra Linux Special Edition с конфиденциальными данными, предоставляемыми с помощью samba, в обязательном порядке:

    1. Установить параметр сервера Samba:

      Блок кода
      use socket MAC label = YES

      В используемой в данной статье конфигурации (когда конфигурация samba хранится в реестре samba) это можно сделать из командной строки. Команда:

      Command
      sudo net conf setparm global "use socket MAC label" "Yes"


    2. В очередных обновлениях Astra Linux Special Edition выпущенных до очередного обновления x.7 установить корректную версию протокола передачи данных (SMB/CIFS)

      Информация
      Для Astra Linux Special Edition очередное обновление x.7 применение указанных ниже настроек параметров подключения не требуется.

      Подключение выполнять с параметрам sec=krb5i,vers=1.0, дополнительно установив параметр сервера server signing = required и подключение выполнять к специальному ресурсу homes. Для настройки:

      1. Установить на файловом сервере все доступные оперативные обновления;

      2. Включить на файловом сервере нужную версию протокола, для чего установить в конфигурации samba в секции [global] параметры:

        Блок кода
        server max protocol = NT1
        server signing = required

        В используемой в данной статье конфигурации (когда конфигурация samba хранится в реестре samba) это можно сделать из командной строки. Команды:

        Command
        sudo net conf setparm global "server max protocol" "NT1"
        sudo net conf setparm global "server signing" "required"

        Если конфигурация хранится в файле /etc/samba/smb.conf, то внести изменения в файл;

    3. Независимо от используемой ОС и от того, где хранится конфигурация (в файле или в реестре), после изменения параметров перезагрузить конфигурацию:

      Command
      sudo smbcontrol all reload-config



    Введение

    Стенд:

    • Компьютер-сервер разделяемых ресурсов Samba. В качестве сервера использовался сервер FreeIPA с настройками по умолчанию, т.е. использовалась служба samba, установленная при установке сервера FreeIPA (установка к ключом --setup-adtrust). Если установка FreeIPA выполнялась без этого ключа то добавить службу samba можно по инструкции Samba + FreeIPA аутентификация пользователей Samba в Kerberos.
      В примерах далее для этого сервера используется доменное имя ipa0.ipadomain.ru.
    • Компьютер-клиент. В качестве клиента использовался компьютер, введённый в домен FreeIPA.

    Установка samba

    При необходимости установить samba отдельно можно воспользоваться общей статьей по настройке Samba

    Создание каталогов для общего доступа

    Создать каталоги на сервере, которые будут содержать разделяемые файловые ресурсы и установить желаемые права мандатного и дискретного доступа, например:

    Одиночный каталог:

    Command
    borderColor#c2e6ff
    bgColor#e2f3ff

    sudo mkdir /share1


    Или, для ОС Astra Linux Special Edition, группу каталогов с различным мандатным контекстом:

    Command

    sudo mkdir -p /share1/{zero,dsp,secret,topsecret}


    Установить желаемые дискретные атрибуты, например:

    Command

    sudo chmod 777 /share1 -R


    Разграничить мандатный доступ в соответствии с пунктом "4. МАНДАТНОЕ РАЗГРАНИЧЕНИЕ ДОСТУПА" документа "Руководство по КСЗ. Часть 1 РУСБ.10015-01 97 01-1"(ссылка):

    Command

    sudo pdpl-file 3:0:-1:ccnr /share1/
    sudo pdpl-file 1:0:0 /share1/dsp
    sudo pdpl-file 2:0:0 /share1/secret
    sudo pdpl-file 3:0:0 /share1/topsecret

    Конфигурация сервера samba

    Внести в конфигурационный файл /etc/samba/smb.conf информацию о разделяемом файловом ресурсе:

    Блок кода
    iconfalse
    languagebash
    title/etc/samba/smb.conf
    [global]
    # По необходимости изменить имя группы
    workgroup = WORKGROUP
    # Сделать видимым для netbios
    disable netbios = no
    # убедиться, что это параметр выставлен, чтобы разделяемые ресурсы обнаруживались в сети
    map to guest = Bad User
    
    [share1]
    comment = For all doc's 
    # Доступно всем
    guest ok = yes
    path = /share1
    read only = no
    available = yes
    browseable = yes
    case sensitive = yes	
    ea support = yes
    fstype = Samba
    smb encrypt = auto
    


    Примечание

    Для того, чтобы разделяемые samba-ресурсы отображались в разделе "Сеть" файлового менеджера fly-fm с нулевой классификационной меткой через протокол NetBIOS
    в конфигурационном файле
    /etc/samba/smb.conf должна быть установлена опция "disable netbios = no" (установлена по умолчанию).

    Блок кода
    disable netbios = no


    После сохранения настроек проверить их корректность

    Command
    testparm

    Если команда testparm не находит ошибок, то перезапустить сервис Samba:

    Command
    sudo systemctl restart smbd

    Если всё сделано правильно, то команда


    Command

    smbtree

    покажет название разделяемого ресурса.

    Якорь
    sambahomes
    sambahomes
    Специальный файловый ресурс [homes] - домашние каталоги пользователей

    В конфигурации самба зарезервировано имя ресурса [homes] - специально обрабатываемое имя для подключения домашних каталогов пользователей.
    Специальная обработка позволяет подставлять имя пользователя в качестве имени разделяемого ресурса, что удобно для доступа к домашним каталогам.

    Хотя этот ресурс по умолчанию указан в конфигурационном файле, для того, чтобы это ресурс можно был использовать необходимо выполнить выполнить следующие подготовительные действия:

    • Добавить в секцию [global] конфигурационного файла параметр

      Информация
      passdb backend = smbpasswd


    • Перезапустить службу samba

      Command
      sudo systemctl restart smbd


    • Добавить пользователя в список пользователей samba:

      Command
      smbpasswd -a username


    Описание разделяемого ресурса [homes] в файле /etc/samba/smb.conf может выглядеть вот так:

    Информация

    [homes]
    comment = Home Directories
    valid users = %S
    # По умолчанию ресурс [homes] предоставляется как ресурс только для чтения (read only = yes).
    # Если требуется разрешить запись нужно явно указать read only = no
    read only = No
    create mask = 0700
    directory mask = 0700
    browseable = no
    guest ok = no

    При этом в описании ресурса может отсутствовать в явном виде указание самого разделяемого каталога, а обращение к такому ресурсу выполняется по имени пользователя (предполагается, что команда smbclient вызвана от имени пользователя username):

    Command
    smbclient //ipa0.ipadomain.ru/username

    Или можно явно задать имя пользователя, от имени которого должен вызываться ресурс:

    Информация
    smbclient //ipa0.ipadomain.ru/username -U username

    При каждом таком обращении samba сначала ищет имя запрошенного ресурса в списке разделяемых ресурсов, и если имя не найдено проверяет наличие в конфигурации секции [homes].
    Есть такая секция есть, то имя трактуется как имя пользователя, и проверяется по базе данных пользователей (например, /etc/passwd).
    Если имя найдено в базе данных пользователей, то samba предоставляет в качестве разделяемого ресурса домашний каталог этого пользователя.
    Каталог в простейшем случае берётся из файла /etc/passwd, но может быть изменен.


    В качестве дополнительной опции разделяемого ресурса [homes] можно задать параметр path, указывающий путь к корневому каталогу домашних каталогов пользователей, который будет использоваться вместо каталога /home, т.е. будет предоставляться ресурс не /home/username, а, например, /samba/users/username:
    Информация

    [homes]
    comment = Home Directories
    valid users = %S
    path = /samba/users/%S
    read only = No
    create mask = 0700
    directory mask = 0700
    browseable = no
    guest ok = no

    Якорь
    shares
    shares
    Подключение разделяемых ресурсов

    Подключение разделяемого ресурса samba в сессии с нулевой классификационной меткой

    Запустить менеджер файлов (fly-fm) и открыть раздел "Сеть", в котором отобразятся ресурсы Samba при условии включенного NetBIOS и его видимости:

    Image Added


    Если ресурс не виден для других и NetBIOS отключен, то его можно добавить самостоятельно, выбрав закладку "Сеть" или правым щелчком по разделу "Сеть":

    Image Added

    Предупреждение

    При входе с ненулевой классификационной меткой отображение сетевых ресурсов в файловом менеджере fly-fm недоступно.

    Монтирование разделяемых файловых ресурсов CIFS/Samba

    Для монтирования разделяемых файловых ресурсов на компьютере-клиенте должен быть установлен пакет cifs-utils:

    Command
    sudo apt install cifs-utils

    Монтирование разделяемого файлового ресурса выполняется командой mount с указанием соответствующего типа сетевой ФС, например:

    Command
    borderColor#c2e6ff
    bgColor#e2f3ff

    sudo mount.cifs //сервер/ресурс /точка_монтирования [-o опции]
    sudo mount -t cifs //сервер/ресурс /точка_монтирования [-o опции]

    В качестве опций команде могут передаваться параметры монтирования, такие как имя пользователя, используемый тип аутентификации, кодировка, использование прав доступа и т.п. При этом точка монтирования /media/share1 должна быть создана заранее и доступна пользователю, например:

    Command
    borderColor#c2e6ff
    bgColor#e2f3ff

    sudo mkdir /media/share1
    sudo chmod 777 /media/share1
    sudo mount -t cifs //fileserver1.org.net/share1 /media/share1 -o user=пользователь

    Без соответствующей записи в /etc/fstab пользователь может использовать команды монтирования только с помощью sudo.
    Для возможности монтирования разделяемого файлового ресурса пользователем в конфигурационном файле /etc/fstab должна быть объявлена строка монтирования, например следующего вида:

    Информация
    //fileserver1.org.net/share1 /media/share1 cifs user,rw,noauto,iocharset=utf8,soft 0 0

    Точка монтирования должна быть создана заранее и доступна пользователю для чтения/записи, опция user предоставляет возможность монтирования указанного ресурса простому пользователю.
    Пользователь при этом выполняет монтирование командой mount с указанием точки монтирования:

    Command
    mount /media/share1

    Полный список опций приведен в руководстве man для команд mount и mount.cifs. Описание формата конфигурационного файла /etc/fstab приведено в руководстве man для fstab.

    Для того чтобы пользователю были доступны каталоги при входе с ненулевой классификационной меткой нужно в файле /etc/fstab на компьютере клиента указать следующие параметры:

    Информация
    //fileserver1.org.net/share1 /media/share1 cifs user,rw,noauto,iocharset=utf8,nosharesock,vers=1.0,soft 0 0


    Примечание
    titleПримечание

    При использовании с аутентификацией Kerberos в ЕПП в строке опций должен быть указан параметр аутентификации sec=krb5i или sec=krb5. В этом случае при монтировании будет использоваться текущий кэш Kerberos пользователя.

    Предупреждение
    Для аутентификации через Kerberos должен быть настроен сервер Kerberos, например Контроллер ЕПП FreeIPA в Astra Linux.
    См. порядок действий по настройке сервера FreeIPA для предоставления разделяемых ресурсов через Kerberos.


    Автоматическое монтирование ресурсов при входе пользователя с помощью pam_mount

    Для автоматического монтирования разделяемых файловых ресурсов при входе пользователя используется PAM-модуль pam_mount, предоставляемый пакетом libpam-mount, то есть для автоматического монтирования разделяемых файловых ресурсов на компьютере-клиенте должны быть установлены пакет cifs-utils и libpam_mount:

    Command
    sudo apt install cifs-utils libpam-mount


    Информация

    При установке пакета libpam-mount может выдаваться предупреждение об изменении конфигурации PAM-стека.
    Можно согласиться с внесением изменений (после установки следует проверить изменения в каталоге /etc/pam.d/, и восстановить нужную конфигурацию).
    Можно отказаться от внесения изменений, тогда вызов модуля pam_mount нужно будет внести в PAM-стек самостоятельно.
    В приведенных далее примерах подразумевается, что аутентификация пользователей производится с помощью доменной службы Kerberos (см. Контроллер ЕПП FreeIPA в Astra Linux).

    Настройка модуля pam_mount осуществляется с помощью конфигурационного файла /etc/security/pam_mount.conf.xml.

    При установке пакета libpam_mount вызов модуля pam_mount автоматически вносится в соответствующие pam-сценарии (common-auth, common-session) в каталоге /etc/pam.d.

    Описание возможностей модуля pam_mount и формат его конфигурационного файла приведены в руководстве man для pam_mount и pam_mount.conf.

    Для монтирования с помощью pam-mount разделяемых файловых ресурсов в конфигурационном файле должны быть указаны параметры монтируемого тома, например:

    Блок кода
    languageactionscript3
    title/etc/security/pam_mount.conf.xml
    <?xml version="1.0" encoding="utf-8" ?>
    <!DOCTYPE pam_mount SYSTEM "pam_mount.conf.xml.dtd">
    <!--
        See pam_mount.conf(5) for a description.
    -->
    <pam_mount>
        <!-- debug should come before everything else,
             since this file is still processed in a single pass
             from top-to-bottom -->
        <debug enable="1" />
        <!-- Volume definitions -->
        <cifsmount>mount.cifs //%(SERVER)/%(VOLUME) %(MNTPT) -o %(OPTIONS) </cifsmount>
        <!-- pam_mount parameters: General tunables -->
        <!-- Описание тома, который должен монтироваться -->
        <volume 
            fstype="cifs"
            server="ipa0.ipadomain.ru"
            path="share1"
            mountpoint="/media/%(USER)"
            options="user=%(USER),cruid=%(USER),sec=krb5i,file_mode=0770,dir_mode=0770"
        />
    
        <!--
        <luserconf name=".pam_mount.conf.xml" />
        -->
    
        <!-- Note that commenting out mntoptions will give you the defaults.
             You will need to explicitly initialize it with the empty string
             to reset the defaults to nothing. -->
        <mntoptions allow="nosuid,nodev,loop,encryption,fsck,nonempty,allow_root,allow_other" />
        <!--
        <mntoptions deny="suid,dev" />
        <mntoptions allow="*" />
        <mntoptions deny="*" />
        -->
        <mntoptions require="nosuid,nodev" />
    
        <logout wait="50000" hup="1" term="1" kill="1" />
        <!-- <logout wait="0" hup="no" term="no" kill="no" /> -->
        <!-- pam_mount parameters: Volume-related -->
        <mkmountpoint enable="1" remove="true" />
    </pam_mount>


    Информация

    В приведенном выше примере разделяемый ресурс при входе любого пользователя монтируется в каталог /media/username. При этом выбраны опции монтирования, позволяющие осуществлять доступ к смонтированным данным в соответствии с правилами мандатного разграничения доступа. Если указать в параметрах тома mountpoint="/home/%(USER)/share1" то разделяемый ресурс будет монтироваться в подкаталог /share1/ домашнего каталога пользователя. В Astra Linux Special Edition для того, чтобы монтирование корректно выполнялось при входе с ненулевой меткой безопасности, нужно изменить PAM-стек, так, чтобы автоматическое монтирование с помощью pam_mount выполнялось после определения значений мандатных атрибутов пользователя и создания домашнего каталога. Для этого:

    1. Вызов модуля pam_mount удалить из файла /etc/pam.d/common-session;
    2. Добавить в файлы /etc/pam.d/login и /etc/pam.d/fly-dm после вызова соответствующих модулей Astra Linux:

    Для FreeIPA (добавленная строчка выделена жирным шрифтом):

    Информация

    session required pam_parsec_mac.so
    session optional pam_mount.so

    Для ALD (добавленная строчка выделена жирным шрифтом):

    Информация

    session required pam_parsec_mac.so
    session required pam_ald.so
    session optional pam_mount.so


    Вариант описания тома для монтирования домашних каталогов пользователей (предполагается, что на сервере samba настроен специальный ресурс home):

    Блок кода
    ...
    <volume 
            fstype="cifs"
            server="ipa0.ipadomain.ru"
            path="%(USER)"
            mountpoint="/home/%(USER)"
            options="user=%(USER),cruid=%(USER),sec=krb5i,file_mode=0770,dir_mode=0770"
    />
    ...


    •  При использовании с аутентификацией Kerberos в ЕПП в строке опций монтирования должен быть указан параметр аутентификации sec=krb5i (предпочтительно с точки зрения безопасности, но требует больше ресурсов) или sec=krb5. В этом случае при монтировании будет использоваться текущий кеш Kerberos пользователя.
    Предупреждение
    titleВнимание

    В строке опций монтирования должен присутствовать параметр cruid=%(USER), поскольку монтирование во время создания сессии выполняется от имени привилегированного пользователя.

    Для точки монтирования mountpoint должен быть указан отдельный каталог, например: /media/ald_share. Пример:

    Информация
    path="share" mountpoint="/media/ald_share" options="user=%(USER),rw,setuids,perm,soft,sec=krb5i,cruid=%(USERUID),file_mode=0770,dir_mode=0770,iocharset=utf8,vers=1.0" />


    Информация

    Тег logout определяет поведение в процессе размонтирования ФС. К этому времени все процессы должны освободить точку монтирования, в противном случае им посылаются соответствующие сигналы прерывания работы.

    Тег mkmountpoint отвечает за автоматическое создание и удаление точки монтирования.

    Тег cifsmount определяет команду, с помощью которой монтируется указанный тип ФС.

    Тег volume объявляет непосредственно параметры монтирования разделяемого файлового ресурса.

    Автоматическое монтирование домашних каталогов при входе пользователя с помощью pam_mount

    Для автоматического монтирования используем ресурс [homes], который будем монтировать в локальный домашний каталог пользователя /home/<имя_пользователя> . Модифицируем конфигурацию pam_mount:

    Блок кода
    languageactionscript3
    title/etc/security/pam_mount.conf.xml
    <?xml version="1.0" encoding="utf-8" ?>
    <!DOCTYPE pam_mount SYSTEM "pam_mount.conf.xml.dtd">
    <!--
            See pam_mount.conf(5) for a description.
    -->
    
    <pam_mount>
        <!-- debug should come before everything else,
             since this file is still processed in a single pass
             from top-to-bottom -->
        <debug enable="1" />
    
        <!-- Volume definitions -->
        <!-- обращаемся к ресурсу homes по имени пользователя -->
        <cifsmount>mount.cifs //%(SERVER)/%(USER) %(MNTPT) -o %(OPTIONS) </cifsmount>
        <!-- pam_mount parameters: General tunables -->
        <!-- Описание тома, который должен монтироваться -->
        <volume 
            fstype="cifs"
            server="ipa0.ipadomain.ru"
            path="%(USER)"
            mountpoint="/home/%(USER)"
            options="rw,user=%(USER),gid=%(USER),uid=%(USER),cruid=%(USER),sec=krb5i,file_mode=0770,dir_mode=0770"
        />
        <!--
            <luserconf name=".pam_mount.conf.xml" />
        -->
    
        <!-- Note that commenting out mntoptions will give you the defaults.
             You will need to explicitly initialize it with the empty string
             to reset the defaults to nothing. -->
        <mntoptions allow="nosuid,nodev,loop,encryption,fsck,nonempty,allow_root,allow_other" />
        <!--
        <mntoptions deny="suid,dev" />
        <mntoptions allow="*" />
        <mntoptions deny="*" />
        -->
        <mntoptions require="nosuid,nodev" />
    
        <logout wait="50000" hup="1" term="1" kill="1" />
    	<!-- <logout wait="0" hup="no" term="no" kill="no" /> -->
        <!-- pam_mount parameters: Volume-related -->
        <mkmountpoint enable="1" remove="true" />
    </pam_mount>


    Информация
    Для SAMBA AD при работе через winbind для корректного авто-монтирования в файле в опциях нужно использовать параметр user=%(DOMAIN_USER).

    Параметр монтирования luserconf

    При использовании pam_mount пользователям может быть предоставлена возможность самостоятельно определять дополнительные тома монтирования. Такие тома определяются в конфигурационном пользовательском файле, задаваемом параметром luserconf основного конфигурационного файла /etc/security/pam_mount.conf.xml модуля pam_mount. Синтаксис параметра:

    Блок кода
    luserconf name="<имя_конфигурационного_файла_пользователя>"

    например:

    Блок кода
    <luserconf name=".pam_mount.conf.xml" />

    Конфигурационный пользовательский файл располагается в домашнем каталоге пользователя и может редактироваться пользователем самостоятельно. Точки монтирования указываются относительно домашнего каталога пользователя. Таким образом, указанному непривилегированному пользователю разрешается монтировать любые заданные тома, получая при этом права владения локальными смонтированными ресурсами. Операции монтирования выполняются от имени и с правами суперпользователя. Применение этой возможности может повлечь серьёзные угрозы безопасности, поэтому по умолчанию возможность пользовательского монтирования отключена. Конфигурации пользователей обрабатываются после того, как смонтированы все заданные в глобальной конфигурации тома, включая домашние каталоги пользователей, что обеспечивает возможность дальнейшего монтирования томов, заданных с помощью параметра luserconf.

    Для управления доступными пользователям опциями монтирования применяются следующие параметры основного конфигурационного файла:

    • mntoptions allow - разрешенные пользователям опции монтирования, например:

      Блок кода
      <mntoptions allow="user,cruid,vers,sec,nosuid,nodev,loop,encryption,fsck,nonempty,allow_root,allow_other" />

      По умолчанию это опции nosuid и nodev, Значение, принятое по умолчанию заменяется значением из первого найденного указания параметра, последующие указания суммируются;

    • mntoptions deny - запрещенные пользователям опции монтирования. По умолчанию список пуст;
    • mntoptions require - обязательные опции монтирования для пользователей. По умолчанию это опции nosuid и nodev. Значение, принятое по умолчанию заменяется значением из первого найденного указания параметра, последующие указания суммируются;

    Настройка и монтирование разделяемых ресурсов DFS

    Настройка разделяемых ресурсов Distributed File System (DFS) выполнятся на серверах под управлением Microsoft Windows и в данной статье не рассматривается. Монтирование разделяемых ресурсов DFS, так же как разделяемых ресурсов samba, выполняется по протоколу cifs. 

    Для работы с ресурсами DFS требуется установить пакет keyutils:

    Command
    sudo apt install keyutils

    Для корректной работы с ресурсами DFS (в том числе, ресурсами, содержащими кириллицу в названиях), следует использовать версии ядра выше чем linux_5.4.0-110.astra35+ci1 и linux-5.10_5.10.0-1057.astra6+ci7.

    Монтирование разделяемых ресурсов DFS можно делать с указанием полного доменного имени сервера или с указанием только имени домена, например:

    Указание полного доменного имени сервера: 

    Command
    mount -t cifs //server1.active_directory.test/dfs1 ~/mnt -o cruid=user1,sec=krb5

    Указание имени домена:

    Command
    mount -t cifs //active_directory.test/dfs1 ~/mnt -o cruid=user1,sec=krb5

    Для монтирования ресурсов DFS по имени домена с использованием аутентификации Kerberos необходимо сделать дополнительные настройки:

    1. Рекомендованный вариант. Добавить к имени сервера псевдоним — имя домена. Это можно сделать выполнив на контроллере домена команду: SETSPN:

      Command
      SETSPN -s cifs/<имя_домена> <имя_сервера>

      Например:

      Command
      SETSPN -s cifs/ad12.loc w12


    2. При невозможности создания псевдонимов внести ключ "-t" в конфигурационный файл /etc/request-key.d/cifs.spnego.conf:

      Предупреждение
      Данный способ не является рекомендованным, так как ключ "-t" разрешает использовать сведения, предоставляемые DNS-сервером (доверять DNS-серверу), что снижает безопасность системы.


      Блок кода
      create cifs.spnego * * /usr/sbin/cifs.upcall -t %k


    В остальном, так как монтирование ресурсов DFS выполнятся так же, как и ресурсов samba, по протоколу CIFS,  для монтирования применимы приведенные выше настройки Подключение разделяемых ресурсов

    Известные проблемы

    Установка пакетов не завершается

    Если в ОС используется модуль pam_mount, то при установке некоторых пакетов выводится запрос:

    Блок кода
    reenter password for pam_mount

    На этом установка пакета останавливается и более не продолжается.

    Информация
    Если в ОС используется модуль pam_mount, то возникновение проблемы возможно при установке любого пакета, если в процессе установки происходит смена пользователя.

    Для устранения этой проблемы заменить в файле /etc/pam.d/common-session строку:

    Блок кода
    session optional pam_mount.so

    на строку:

    Блок кода
    session optional pam_mount.so disable_interactive

    Введение

    Стенд:

    • Компьютер-сервер разделяемых ресурсов Samba. В качестве сервера использовался сервер FreeIPA с настройками по умолчанию, т.е. использовалась служба samba, установленная при установке сервера FreeIPA.
    • Компьютер-клиент. В качестве клиента использовался компьютер, введённый в домен FreeIPA.

    Установка samba

    При необходимости установить samba отдельно можно воспользоваться общей статьёй по настройке Samba

    Создание каталогов для общего доступа

    Создать каталоги на сервере, которые будут содержать разделяемые файловые ресурсы и установить желаемые права мандатного и дискретного доступа, например:

    Одиночный каталог:

    Command
    borderColor#c2e6ff
    bgColor#e2f3ff

    mkdir /share1

    Или группу каталогов с различным мандатным контекстом:
    Command

    mkdir /share1
    mkdir /share1/zero
    mkdir /share1/dsp
    mkdir /share1/secret
    mkdir /share1/topsecret

    Установить желаемые дискретные атрибуты, например:
    Command

    chmod 777 /share1 -R

    Разграничить мандатный доступ в соответствии с пунктом "4. МАНДАТНОЕ РАЗГРАНИЧЕНИЕ ДОСТУПА" документа "Руководство по КСЗ. Часть 1 РУСБ.10015-01 97 01-1"(ссылка):
    Command

    pdpl-file 3:0:-1:ccnr /share1/
    pdpl-file 1:0:0 /share1/dsp
    pdpl-file 2:0:0 /share1/secret
    pdpl-file 3:0:0 /share1/topsecret

    Конфигурация Samba

    Внести в конфигурационный файл /etc/samba/smb.conf информацию о разделяемом файловом ресурсе:

    Блок кода
    iconfalse
    languagebash
    title/etc/samba/smb.conf
    [global]
    #Изменить имя группы
    workgroup = da.net
    #Сделать видимым для netbios
    disable netbios = no
    
    [share1]
    available = yes
    comment = For all doc's
    browseable = yes
    case sensitive = yes
    ea support = yes
    fstype = Samba
    path = /share1
    writable = yes
    smb encrypt = auto
    read only = no
    #Доступно всем
    guest ok = yes
    map to guest = Bad User
    Примечание

    Для того, чтобы разделяемые samba-ресурсы отображались ресурса в разделе сеть файлового менеджера fly-fm с нулевой классификационной меткой через протокол NetBIOS
    в конфигурационном файле
    /etc/samba/smb.conf должна быть установлена опция "disable netbios = no" (установлена по умолчанию).

    Блок кода
    disable netbios = no

    После сохранения настроек перезапустить сервис Samba:

    Command
    service smbd restart

    Подключение разделяемого samba-ресурса в сессии с нулевой классификационной меткой

    Запустить менеджер файлов (fly-fm) и открыть раздел "Сеть", в котором отобразятся ресурсы Samba при условии включенного NetBIOS и его видимости:

    Image Removed

    Если ресурс не виден для других и NetBIOS отключен, то его можно добавить самостоятельно, выбрав закладку "Сеть" или правым щелчком по разделу "Сеть":

    Image Removed

    Предупреждение

    При входе с ненулевой классификационной меткой отображение сетевых ресурсов в файловом менеджере fly-fm недоступно.

    Монтирование разделяемых файловых ресурсов

    Для монтирования разделяемых файловых ресурсов на компьютере-клиенте должен быть установлен пакет cifs-utils:

    Command
    apt install cifs-utils

    Монтирование разделяемого файлового ресурса выполняется командой mount с указанием соответствующего типа сетевой ФС, например:

    Command
    borderColor#c2e6ff
    bgColor#e2f3ff

    mount.cifs //сервер/ресурс /точка_монтирования [-o опции]
    mount -t cifs //сервер/ресурс /точка_монтирования [-o опции]

    В качестве опций команде могут передаваться параметры монтирования, такие как имя пользователя, используемый тип аутентификации, кодировка, использование прав доступа и т.п. При этом точка монтирования /media/share1 должна быть создана заранее и доступна пользователю, например:

    Command
    borderColor#c2e6ff
    bgColor#e2f3ff

    sudo mkdir /media/share1
    sudo chmod 777 /media/share1
    sudo mount -t cifs //fileserver1.org.net/share1 /media/share1 -o user=пользователь

     Без соответствующей записи в /etc/fstab пользователь может использовать команды монтирования только с помощью sudo.
    Для возможности монтирования разделяемого файлового ресурса пользователем в конфигурационном файле /etc/fstab должна быть объявлена строка монтирования, например следующего вида:

    Информация
    //fileserver1.org.net/share1 /media/share1 cifs user,rw,noauto,iocharset=utf8,soft 0 0

    Точка монтирования должна быть создана заранее и доступна пользователю для чтения/записи, опция user предоставляет возможность монтирования указанного ресурса простому пользователю.
    Пользователь при этом выполняет монтирование командой mount с указанием точки монтирования:

    Command
    mount /media/share1

    Полный список опций приведен в руководстве man для команд mount и mount.cifs. Описание формата конфигурационного файла /etc/fstab приведено в руководстве man для fstab.

    Для того чтобы были пользователю были доступны каталоги при входе с ненулевой классификационной меткой в файле /etct/fstab на компьютере клиента прописываем следующие параметры:

    Информация
    //fileserver1.org.net/share1 /media/share1    cifs    user,rw,noauto,iocharset=utf8,nosharesock,vers=1.0,soft        0       0
    Примечание
    titleПримечание
    При использовании с аутентификацией Kerberos в ЕПП в строке опций должен быть указан параметр аутентификации sec=krb5i. В этом случае при монтировании будет использоваться текущий кэш Kerberos пользователя.

    Автоматическое монтирование ресурсов при входе пользователя с помощью pam_mount

    Для автоматического монтирования разделяемых файловых ресурсов на компьютере-клиенте должен быть установлен пакет cifs-utils:

    Command
    apt install cifs-utils

    Для автоматического монтирования разделяемых файловых ресурсов при входе пользователя используется pam модуль pam_mount, предоставляемый пакетом libpam-mount, который может быть установлен следующим образом:

    Command
    borderColor#c2e6ff
    bgColor#e2f3ff
    apt-get install libpam-mount
    Информация

    При установке пакета libpam-mount может выдаваться предупреждение об изменении конфигурации PAM-стека.
    Можно согласиться с внесением изменений (после установки следует проверить изменения в каталоге /etc/pam.d/, и восстановить нужную конфигурацию).
    Можно отказаться от внесения изменений, тогда вызов модуля pam_mount нужно будет внести в pam-стек самостоятельно.

    Настройка pam модуля осуществляется с помощью конфигурационного файла /etc/security/pam_mount.conf.xml.

    Использование pam модуля указывается в соответствующих pam сценариях (common-auth, common-session) в каталоге /etc/pam.d.

    Описание возможностей pam модуля pam_mount и формат его конфигурационного файла приведены в руководстве man для pam_mount и pam_mount.conf.

    Для монтирования  с помощью pam-mount разделмых файловых ресурсов СЗФС CIFS, представляющих собой домашние каталоги пользователей, конфигурационный файл должен быть модифицирован следующим образом (в пределах тега pam_mount):

    Блок кода
    languageactionscript3
    title/etc/security/pam_mount.conf.xml
    <?xml version="1.0" encoding="utf-8" ?>
    <!DOCTYPE pam_mount SYSTEM "pam_mount.conf.xml.dtd"><pam_mount>
    
     <!-- Параметры отладки должны быть определены первыми так как файл настоек обрабатывается за один проход -->
    <debug enable="1" />
    
     <!-- Volume definitions -->
    <logout wait="50000" hup="1" term="1" kill="1" />
    <mkmountpoint enable="1" remove="true" />
    <cifsmount>mount.cifs //%(SERVER)/%(VOLUME) %(MNTPT) -o %(OPTIONS) </cifsmount>
    
    <volume
         fstype="cifs"
        server="fileserver1.org.net"
        path="share1"
        mountpoint="/media/%(USER)"
        options="user=%(USER),rw,setuids,perm,soft,iocharset=utf8,nosharesock,vers=1.0"
    />
     <!-- pam_mount parameters: General tunables -->
    
    <!-- <luserconf name=".pam_mount.conf.xml" /> -->
    
    <mntoptions allow="nosuid,nodev,loop,encryption,fsck,nonempty,allow_root,allow_other" />
    <mntoptions require="nosuid,nodev" />
    
    </pam_mount>
    Информация

    В приведённом выше примере разделяемый ресурс при входе любого пользователя монтируется в каталог /media/username. При этом выбраны опции монтирования, позволяющие осуществлять доступ к смонтированным данным в соответствии с правилами мандатного разграничения доступа. Если указать в параметрах тома mountpoint="/home/%(USER)/share1"  то разделяемый ресурс будет монтироваться в подкаталог /share1/ домашнего каталога пользователя. В ОС СН Смоленск/Ленинград для того, чтобы монтирование корректно выполнялось при входе с ненулевой классификационной меткой, нужно изменить PAM-стек, так, чтобы автоматическое монтирование  с помощью pam_mount выполнялось после определения значений мандатных атрибутов пользователя и создания домашнего каталога. Для этого вызов модуля pam_mount нужно удалить из файла /etc/pam.d/common-session и добавить в файлы /etc/pam.d/login и /etc/pam.d/fly-dm после вызова соответствующих модулей Astra Linux:

    Для FreeIPA:

    Информация

    session required pam_parsec_mac.so
    session optional pam_mount.so

    Для ALD:

    Информация

    session required pam_parsec_mac.so
    session required pam_ald.so
    session optional pam_mount.so

    При использовании с аутентификацией Kerberos в ЕПП в строке опций монтирования должен быть указан параметр аутентификации sec=krb5i. В этом случае при монтировании будет использоваться текущий кэш Kerberos пользователя.

    Предупреждение
    titleВнимание

    Так же в строке опций монтирования должен присутствовать параметр cruid=%(USERUID), поскольку монтирование во время создания сессии выполняется от имени привилегированного пользователя.

    Для точки монтирования mountpoint должен быть указан отдельный каталог, например: /media/ald_share

    Пример:

    path="share" mountpoint="/media/ald_share"
    options="user=%(USER),rw,setuids,perm,soft,sec=krb5i,cruid=%(USERUID),iocharset=utf8" />
    
    Информация

    Тег logout определяет поведение в процессе размонтирования ФС. К этому времени все процессы должны освободить точку монтирования, в противном случае им посылаются соответствующие сигналы прерывания работы.

    Тег mkmountpoint отвечает за автоматическое создание и удаление точки монтирования.

    Тег cifsmount определяет команду, с помощью которой монтируется указанный тип ФС.

    Тег volume объявляет непосредственно параметры монтирования разделяемого файлового ресурса.