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

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

Ключ

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

Оглавление


Информация
titleДанная статья применима к:
  • Astra Linux Special Edition РУСБ.10015-01 (очередное обновление 1.7)

  • Astra Linux Special Edition РУСБ.10152-02 (очередное обновление 4.7)
  • Astra Linux Special Edition РУСБ.10015-01 (очередное обновление 1.6)
  • Astra Linux Special Edition РУСБ.10015-01 (очередное обновление 1.5)
  • Astra Linux Special Edition РУСБ.10015-16 исп. 1 и исп. 2
  • Astra Linux Special Edition РУСБ.10265-01 (очередное обновление 8.1)



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

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

  • Astra Linux Special Edition РУСБ.10015-01 (очередное обновление 1.6)
  • Astra Linux Special Edition РУСБ.10015-01 (очередное обновление 1.5)
  • Astra Linux Special Edition РУСБ.10015-16 исп. 1 и исп. 2
  • , предоставляемыми с помощью 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 РУСБ.10265-01 (очередное обновление 8.1
    1. )

      Информация
      Для Astra Linux Special Edition
    РУСБ.10015-01 (
    1. очередное обновление
    1
    1. x.7
    )
    1. применение указанных ниже
    ограничений
    1. настроек параметров подключения не требуется
    .Подключение, корректно работающее с конфиденциальной информацией, работает только с версией протокола vers=1
    1. .
    В этих ОС для корректной работы механизма создания мандатных домашних каталогов необходимо:
    1. Подключение выполнять с параметрам sec=krb5i,vers=1.0, дополнительно установив параметр сервера server signing = required

      ;Подключение

      и подключение выполнять к специальному ресурсу homes

      , с другими ресурсами механизм не работает.
    В указанных ОС для настройки механизма создания мандатных домашних каталогов в обязательном порядке
    1. . Для настройки:

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

      Настроить
      1. Включить на файловом сервере

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

        Блок кода
        server max protocol = NT1
      use socket MAC label = YES
      1. 
        server signing = required

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

        Command
        sudo net conf setparm global "server max protocol" "NT1
      "
      sudo net conf setparm global "use socket MAC label"
      1. "
      Yes"

      1. sudo net conf setparm global "server signing" "required"

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

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

      Command
      sudo smbcontrol all reload-config




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

    Выполняя действия, описанные в этой статье, следует помнить, что предоставление доступа к серверу через сетевые подключения неизбежно снижает защищённость этого сервера.



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

    Стандарт передачи данных по сети не поддерживает передачу меток целостности, поэтому работа с примонтированными каталогами возможна только на нулевом уровне целостности. Домашние каталоги при этом должны иметь нулевой уровень целостности.

    Предупреждение
    Монтирование домашнего каталога с ненулевым уровнем целостности пользователем с ненулевым уровнем целостности ведёт к краху системы.

    Во избежание аварийных ситуаций следует запретить использовать ненулевые уровни целостности тем пользователям, которым позволено удалённо монтировать свои домашние каталоги.


    Описание стенда

    • Сервер, на котором совмещены FreeIPA и Samba. Порядок установки и настройки см. Samba + FreeIPA аутентификация пользователей Samba в Kerberos.
      В промышленной эксплуатации службу Samba рекомендуется размещать на отдельном сервере. Порядок настройки отдельной службы на отдельном сервере см. также в статье Samba + FreeIPA аутентификация пользователей Samba в Kerberos. Параметры сервера FreeIPA + Samba, используемые далее:
      • имя сервера ipa0.ipadomain.ru;
      • администратор домена admin;
      • пользователь домена с возможностью входа с ненулевой меткой конфиденциальности - ipauser;

    • Компьютер - клиент FreeIPA. Инструкцию по вводу компьютера в домен см. в статье FreeIPA;

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



    Настройка сервера


    Информация
    Далее в примерах предполагается, что конфигурация samba находится в реестре samba.

    Создать конфигурации разделяемых ресурсов импортировать их в конфигурацию samba. Создаваемые ресурсы:

    1. Ресурс для монтирования домашних каталогов при работе с нулевой меткой конфиденциальности - ресурс homes (стандартный ресурс samba);

    2. Только для Astra Linux Special Edition. Ресурс для монтирования домашний каталогов при работе с ненулевой меткой конфиденциальности. Имя ресурса может быть произвольным, в примере используется имя pdp_homes. Данный ресурс требуется только для Astra Linux Special Edition.

    Конфигурации ресурсов сохраняются в файлах homes.txt и pdp_homes.txt, далее импортируются в конфигурацию samba. Команды:

    1. Сохранение конфигурации в файлах homes.txt и pdp_в файле homes.txt:

      1. Для Astra Linux Common Edition, Astra Linux Special Edition с выключенным МРД, Astra Linux Special Edition без использования конфиденциальных данных:

        Command

        cat << EOT > homes.txt
        [homes]
           comment = Home Directories
           read only = No
           valid users = %S
        EOT


      2. Для Astra Linux Special Edition с включенным МРД для работы с конфиденциальными данными следует использовать каталог /home/.pdp/<имя_пользователя>:

        Command

        cat << EOT > homes.txt
        [homes]
           browseable = No
           comment = Home Directories
           create mask = 0600
           directory mask = 0700
           follow symlinks = yes
           path = /home/.pdp/%U
           read only = No
           valid users = %S
        EOT


    2. Импорт в конфигурацию samba созданного на предыдущем шаге файла homes.txt:

      Command

      sudo net conf import homes.txt homes


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

    Command
    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" "%U"
    и т.д.

    Дополнительно:

    1. При использовании в параметрах разделяемого ресурса домашних каталогов значения follow symlinks = yes установить глобальный параметр:

      Command
      sudo net conf setparm global "allow insecure wide links" yes

      Подробнее см. man samba.conf;

    2. При совместном использовании параметров sec=krb5i и vers=1.0 (актуально для очередных обновлений, выпущенных ранее очередного обновления x.7) установить в секции [global] параметр server signing=required:

      Command
      sudo net conf setparm global "server signing" required


    Настройки пользовательских каталогов для Astra Linux Special Edition

    Созданный в примере выше специальный ресурс homes  будет предоставлять для монтирования:

    • в варианте для работы с не конфиденциальными данными без использования конфиденциальных данных - каталог /home/<имя_пользователя> (параметр path = /home/%U в конфигурации ресурсаконфигурация специального ресурса homes, принятая по умолчанию);
    • в варианте для работы с конфиденциальными данными - каталог /home/.pdp/<имя_пользователя>/<классификационная_метка> (параметр path = /home/.pdp/%U в конфигурации ресурса);

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

    • при работе в Astra Linux Special Edition в варианте для работы с конфиденциальными данными каталоги будут создаваться автоматически по мере подключения к ресурсу home. Это обеспечивается специальными доработками службы samba, действует только для специального ресурса home, и каталоги создаются со всеми необходимыми параметрами меток безопасности;
    • для других (отличных от home) ресурсов разделяемые каталоги должны быть созданы вручную и должны:
      • принадлежать пользователю;
      • иметь низкий уровень целостности, иначе запись в него из сетевого подключения будет невозможна;
      • иметь метку конфиденциальности не ниже максимально допустимой для пользователя;
      • иметь флаг CCNR, позволяющий создавать в каталоге подкаталоги с меньшими метками конфиденциальности.

    Пример создания каталогов для пользователя ipauser:

    Command

    sudo mkdir /share/ipauser /home/ipauser
    sudo chown ipauser:ipauser /share/ipauser /home/ipauser
    sudo pdpl-file 3:0:-1:CCNRA CCNR /share/ipauser

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

    Настройка клиента

    Клиент должен быть введён в домен FreeIPA. Инструкцию по вводу компьютера в домен см. с статье FreeIPA.

    Далее, в зависимости от задач, можно выбрать один из вариантов настройки автоматического монтирования домашних каталогов:

    1. Монтирование с помощью pam_mount (более применимо в Astra Linux Common Edition, так как предоставляет простой стандартный способ монтирования);
    2. Монтирование с помощью собственного сценария (более применимо в Astra Linux Special Edition, так как позволяет гибко настраивать монтирование каталогов с ненулевыми метками конфиденциальности).

    Эти варианты при необходимости могут применяться совместно, дополняя друг друга.


    Использование модуля pam_mount

    Установка пакетов

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

    Command
    sudo apt install cifs-utils libpam-mount

    Настройка модуля pam_mount

    В конфигурации модуля pam_mount (файл /etc/security/pam_mount.conf.xml) задать параметры подключаемых сетевых ресурсов (могут быть одновременно заданы несколько подключаемых ресурсов.). Примеры конфигурации (только части конфигурационного файла, непосредственно относящиеся к ресурсам):

    1. Для Astra Linux Common Edition, Astra Linux Special Edition с выключенным МРД, Astra Linux Special Edition без использования конфиденциальных данных монтирование можно осуществлять непосредственно в домашний каталог пользователя (каталог /home/<имя_пользователя>):

      Блок кода
      titleРесурс homes - монтирование домашних каталогов
      <volume 
        fstype="cifs"
        server="ipa0.ipadomain.ru"
        path="%(USER)"
        mountpoint="/home/%(USER)"
        options="user=%(USER),cruid=%(USER),nosharesock,sec=krb5i"
      />
      


    2. Для Astra Linux Special Edition с выключенным МРД с использованием конфиденциальных данных монтирование следует осуществлять в специальный каталог /home/.pdp/<bvz><имя_пользователя>:

      Блок кода
      titleТолько для Astra Linux Special Edition - ресурс pdp_homes для монтирования домашних каталогов с ненулевой меткой конфиденциальности
      <volume 
        fstype="cifs"
        server="ipa0.ipadomain.ru"
        path="%(USER)"
        mountpoint="/home/.pdp/%(USER)"
        options="user=%(USER),cruid=%(USER),uid=%(USERUID),gid=%(USERGID),nosharesock,sec=krb5i"
      />
      


    Дополнительно разрешить использование применяемых параметров, например:

    Блок кода
    <mntoptions allow="nosuid,nodev,loop,encryption,fsck,nonempty,allow_root,allow_other,uid,gid,nosharesock,vers" />

    Если не срабатывает автоматическое размонтирование каталогов при выходе из сессии, то использовать задержку размонтирования (wait, миллисекунды) или параметры hup="yes", term="yes" или  kill="yes" для передачи сигналов завершения "зависшим" процессам:

    Блок кода
    <logout wait="0" hup="no" term="no" kill="yes" />

    Настройка pam-стека в Astra Linux с выключенным МРД

    В Astra Linux Common Edition или Astra Linux Special Edition с выключенным МРД можно без изменений использовать стандартную настройку PAM-стека. Опционально перед вызовом session pam_mount в файле /etc/pam.d/common-session можно  добавить запрет вызова pam_mount для локальных пользователей:

    Command
    session [success=1 default=ignore] pam_localuser.so
    session optional pam_mount.so

    Настройка pam-стека в Astra Linux Special Edition с включенным МРД

    Удалить (закомментировать) вызов модуля pam_mount в файле /etc/pam.d/common-session:

    Command
    sudo sed -i "s/\(session[[:space:]]\+optional[[:space:]]\+pam_mount.so\)/#\1/" /etc/pam.d/common-session

    В файлах /etc/pam.d/login и /etc/pam.d/fly-dm после первого вызова модуля session required pam_parsec_mac uдобавить две строки: проверку, является ли пользователь локальным (pam_localuser.so), и вызов модуля монтирования (pam_mount.so):

    Блок кода
    ...
    session required pam_parsec_mac.so ...
    session [success=1 default=ignore] pam_localuser.so
    session optional pam_mount.so
    ...

    Использование собственных сценариев монтирования

    Установка пакетов

    При использовании этого варианта достаточно установить пакет cifs-utils:

    Command
    sudo apt install cifs-utils

    Настройка

    Вызывать собственные сценарии монтирования можно с помощью модуля pam_exec.

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

    Чтобы пример ниже работал корректно с конфиденциальной информацией на сервере ресурс homes должен использовать путь /home/.pdp/%U:

    Блок кода
    path = /home/.pdp/%U


    Например:

    Для Astra Linux Special Edition с включенным МРД сценарий, монтирующий домашний пользовательский каталог, имеющий ненулевую мандатную метку, соответствующую мандатной метке пользовательской сессии непосредственно в локальный домашний каталог пользователя:

    Блок кода
    title/etc/pam.d/pdp_home.sh
    #!/bin/bash
    pdp_home=/home/.pdp/$PAM_USER
    label="l`pdp-id -l`i`pdp-id -i`c`pdp-id -c`t0x0"
    echo "Begin mounting PDP_HOME for user \"$PAM_USER\" with label \"$label\""
    mount //ipa0.ipadomain0.ru/$PAM_USER $pdp_home -o user=$PAM_USER,sec=krb5i,rw,setuids,perm,soft,iocharset=utf8,nosharesock,cruid=$PAM_USER
    mount --bind $pdp_home/$label /home/$PAM_USER

    В отличие от вызова pam_mount в примерах с использованием модуля pam_mount, сценарий должен вызываться после последнего вызова pam-модуля session pam_parsec_mac в файлах /etc/pam.d/login и /etc/pam.d/fly-dm.  Если сценарий размещен в исполняемом файле /etc/pam.d/pdp_home.sh, его вызов в pam-стеке может выглядеть так:

    Блок кода
    title/etc/pam.d/pdp_home.sh
    session required pam_parsec_mac.so
    session [success=1 default=ignore] pam_localuser.so
    session optional pam_exec.so debug log=/dev/tty /etc/pam.d/pdp_home.sh
    Где debug - необязательный параметр включения отладки, а log=/dev/tty - необязательный параметр вывода на терминал (также может быть полезен для отладки).

    Типичные ошибки монтирования и расширенная диагностика

    Неизвестная ошибка 524

    Возникает при одновременном использовании параметров монтирования sec=krb5i и vers=1.0 если на сервере samba не включен параметр server signing = required.
    Для устранения ошибки - добавить параметр в конфигурацию и перезапустить сервер.

    Ошибка mount error(126): Required key not available

    Не найден билет Kerberos. Для диагностики проверить сообщения cifs.upcall в системном журнале:

    Command
    grep cifs.upcall /var/log/syslog

    Для устранения ошибки указать верный идентификатор пользователя в параметре cruid=UID (числовой ID пользователя или просто имя пользователя).

    Включение расширенной диагностики на сервере

    Уровень диагностики на сервере задаётся конфигурационным параметром log level, например:

    Блок кода
    log level = 5

    Диагностические сообщения выводятся в файлы в каталоге /var/log/samba/ (см. параметр конфигурации log file).

    Включение расширенной диагностики на клиенте

    Расширенная диагностика операций монтирования на клиенте может быть включена командами:

    Command
    sudo -s
    modprobe cifs
    echo 'module cifs +p' > /sys/kernel/debug/dynamic_debug/control
    echo 'file fs/cifs/* +p' > /sys/kernel/debug/dynamic_debug/control
    echo 7 > /proc/fs/cifs/cifsFYI
    exit

    Диагностические сообщения выводятся в журнал ядра, посмотреть их можно командой:

    Command
    sudo dmesg

    Выключение расширенной диагностики выполняется командами:

    Command

    sudo -s
    echo 0 > /proc/fs/cifs/cifsFYI
    exit