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

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

Ключ

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

Оглавление


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

Статья не для публикации.

note



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

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

  • 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 РУСБ.10015-01 (очередное обновление 1.7) применение указаных ниже ограничений параметров подключения не требуются.


Подключение, корректно работающее с конфиденциальной информацией, работает только с версией протокола vers=1. В этих ОС для

того чтобы сработал механизм

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

  1. Подключение выполнять с параметрам sec=krb5i,vers=1.0;
  2. Подключение выполнять к специальному ресурсу homes, c другими ресурсами механизм не работает.
Для этого

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

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

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

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

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

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

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

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

    Command
    sudo smbcontrol all reload-config

Оглавление

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


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

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



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

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

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

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


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

    • Сервер, на котором совмещены 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.

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

    Command

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

    cat << EOT > pdp_homes.txt
    [pdp_homes]
       browseable = No
       comment = pdp homes share
       create mask = 0600
       directory mask = 0700
       path = /home/.pdp/%U
       read only = No
       valid users = %U
    EOT

    sudo net conf import homes.txt homes
    sudo net conf import pdp_homes.txt pdp_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"
    и т.д.

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

    Ресурс pdp_homes будет предоставлять для монтирования путь /home/.pdp/<имя_пользователя"> (параметр path = /home/.pdp/%U в конфигурации). Если такого каталога нет, то с помощью подключения через samba (т.е. действиями со стороны клиентской машины) создать его невозможно, поэтому на момент подключения пользователя пользовательский подкаталог должен быть уже создан. При этом каталог должен:

    1. Принадлежать пользователю;
    2. Иметь низкий уровень целостности, иначе запись в него из сетевого подключения будет невозможна;
    3. каталог должен иметь Иметь метку конфиденциальности не ниже максимально допустимой для пользователя;
    4. Иметь флаг CCNRA, позволяющий создавать в каталоге подкаталоги с меньшими метками конфиденциальности.

    Для пользователя ipauser:

    Command

    sudo mkdir /home/.pdp/ipauser
    sudo chown ipauser:ipauser /home/.pdp/ipauser
    sudo pdpl-file 3:0:-1:CCNRA /home/.pdp/ipauser

    В приведенном выше примере прадполагается, что максимальный иерархический уровень конфиденциальности для пользователя равн трем, и пользователю разрешены все неиерархические категории конфиденциальности (сокращенное обозначение -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) задать параметры подключаемых сетевых ресурсов (могут быть одовременно заданы несколько подключаемых ресурсов.). Примеры конфигурации (только частьчасти конфигурационного файла, непосредственно относящаяся относящиеся к ресурсам):

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


    Блок кода
    titleТолько для Astra Linux Special Edition - ресурс pdp_homes для монтирования домашних каталогов с ненулевой меткой конфиденциальности
    <volume 
    fstype="cifs"
    server="ipa0.ipadomain.ru"
    path="pdp_homes"
    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 Common Edition

    В Astra Linux Common Edition можно использовать стандартную настройку. Опционально перед вызовом 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 заменить на:

    Блок кода
    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-модуля session pam_parsec_mac.  Если сценарий размещён в исполняемом файле /etc/pam.d/pdp_home.sh, его вызов в pam-стеке может выглядеть так:

    Блок кода
    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 = 3

    Диагностические сообщения выводятся в файлы в каталоге /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