Смоленск 1.4 Экспорт каталога по NFS в ALD

kostia

New member
Сообщения
185
#1
Как подтверждено службой техподдержки, в домене ALD не работает привилегия игнорирования мандатной категории для пользователя на SMB ресурсе.
А тем не менее есть насущная потребность организовать файловый сервер с учетом именно этой привилегии. Есть еще один протокол совместного доступа к файловым ресурсам - NFS, возможно там эта привилегия будет работать. Но я нигде не нашел инструкцию как организовать экспорт каталога с сервера и монтирование его на клиенте по NFS в домене ALD для Astra-Linux 1.4
Уважаемые производители Астры, не могли бы вы разработать такую инструкцию? Для определенности описать как экспортировать с сервера каталог /opt/data и монтирование его на клиенте также в /opt/data
PS; я знаю что NFS не рекомендуется, но игнорирование категорий очень нужно!
 

fixyatina

New member
Сообщения
19
#2
Вам просто нужна общая сетевая папка для всех без учета мандатки, с разграничением прав по пользователям ALD? Или разграничение не требутеся?
 
Последнее редактирование:

kostia

New member
Сообщения
185
#3
Да, общая сетевая папка для всех с поддержкой мандатных атрибутов.
 

fixyatina

New member
Сообщения
19
#4
mkdir /share1
mkdir /share1/zero
mkdir /share1/dsp
mkdir /share1/secret
mkdir /share1/topsecret

по доке КСЗ1: (для 1.5, под рукой для 1.4 нет)
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

[global]
#Изменить имя группы
workgroup = da.net

[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
#Сделать видимым для netbios
disable netbios = no
#Доступно всем
guest ok = yes
map to guest = Bad User

service samba restart

Тестировать командой sudo mount -t cifs //fileserver1.org.net/share1 ~/share1 -o user=пользователь,rw,noauto,iocharset=utf8,soft,sec=krb5i
Потом сделать через fstab
//fileserver1.org.net/share1 /media/share1 cifs user,rw,noauto,iocharset=utf8,soft,sec=krb5i 0 0

В общем случае как-то так.
Кроме монтирования через fstab можно использовать libpam-mount:
apt-get install libpam-mount

/etc/security/pam_mount.conf.xml
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE pam_mount SYSTEM "pam_mount.conf.xml.dtd">

<pam_mount>

<logout wait="500000" 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="share" mountpoint="/media/share"
options="user=%(USER),rw,setuids,perm,soft,iocharset=utf8,
sec=krb5i,cruid=%(USERUID)" />

</pam_mount>

и fly-fm если нужна графика.
 

kostia

New member
Сообщения
185
#5
Еще раз. По самбе НЕ РАБОТАЕТ привилегия игнорирования мандатных категорий! Самба не подходит. Поэтому есть желание организовать общую сетевую папку по NFS. Не хватает инструкции.
 

kostia

New member
Сообщения
185
#6
Еще поясню. Для пользователя есть возможность выставить привилегию - игнорирование мандатных категорий ign_mac_cat. На локальной файловой системе такая привилегия работает, пользователь имеет доступ к файлам с любой мандатной категорией. Но для сетевого самбового ресурса это не срабатывает, а очень нужно.
 

fixyatina

New member
Сообщения
19
#7
Да, общая сетевая папка для всех с поддержкой мандатных атрибутов.
Так нужно разграничение по мандатным меткам или нет? Анонимная шара не вариант? Можно просто навесить флаг ehole на шару...
Может привилегия и не работает, я описал вам как все настраивается примерно

Вопрос в наличии инструкции для nfs и только?

Для сервера:
apt-get install nfs-kernel-server

Для клиента:
apt-get install nfs-common

cp /etc/default/nfs-kernel-server.before_ald /etc/default/nfs-kernel-server
cp /etc/default/nfs-common.before_ald /etc/default/nfs-common

В /etc/exports добавить строку:
/srv/nfs4/rootfs *(sync,ro,no_root_squash,no_all_squash,no_subtree_check)

И закомментировать в этом же файле следующую строчку:

#/ald_export_home *(sec=krb5i,rw,root_squash,sync,fsid=0,no_subtree_check)

service nfs-kernel-server restart

exportfs -rv #перечитываем таблицу для NFS
showmount -e 11.11.11.100 #смотрим доступные директории


mount.nfs4 11.11.11.100:/srv/nfs4/rootfs /nfs_mount
 

kostia

New member
Сообщения
185
#8
Да! Нужно разграничивать по мандатным меткам! Нужно разграничивать по ACL. Пользователи должны быть в домене. Анонимная шара не вариант!
Привилегия игнорирования мандатных категорий не может быть, а точно не работает. То как вы расписали не будет работать, проверяли, знаем, там есть ошибка в параметрах монтирования в pam_mount.conf (и не только), ошибки эти дублируются еще из документации включенной в дистрибутив. Еще pam_mount каждый раз пытается создавать и удалять каталог для монтирования, что тоже вызывает затруднения (но решаемые).

Нужна инструкция по организации файлового сервера с каталогом коллективного доступа в ALD по протоколу NFS, с поддержкой мандатного и дискретного разграничения доступа, с поддержкой привилегии для определенного пользователя(лей) на игнорирование мандатной категории файлов и каталогов.
 

fixyatina

New member
Сообщения
19
#9
То как вы расписали не будет работать
Тогда давайте разибраться в чем проблема
nfs не поддерживает мандатные метки

с поддержкой привилегии для определенного пользователя(лей) на игнорирование мандатной категории файлов и каталогов.
Вот это уже интересено, надо подумать.
Пользователь сидя под макс уровнем будет читать файлы всех уровней ниже, но писать он сможет только в папке под своим уровнем

Речь я веду все так же про самбу
 
Последнее редактирование:

kostia

New member
Сообщения
185
#11
Тогда давайте разибраться в чем проблема
да хотябы вот в чем, у вас в pam_mount.conf.xml указана опция монтирования perm, с этой опцией не корректно работает дискретное разграничение доступа к ресурсу. Накладываются локальные и серверные ACL друг на друга. Нужно монтировать с опцией noperm тогда будут отрабатывать только серверные ACL.
 

fixyatina

New member
Сообщения
19
#12
Да, в этом вы правы, я поэтому и написал, что это "в общем случае".
 

kostia

New member
Сообщения
185
#13
А этот "общий случай" у вас в официальной документации. Вот делаешь всё по доке, а не работает как должно. Кучу времени отнимает поиск таких нюансов.
И вот с этой привилегией игнорирования. Были уверены что работает, локально проверили, софт заархитектурили с учетом этого. А как развертывать в сетевом окружении начали, так и всё, ПРОБЛЕМА!
 

kostia

New member
Сообщения
185
#14
Пользователь сидя под макс уровнем будет читать файлы всех уровней ниже, но писать он сможет только в папке под своим уровнем

Речь я веду все так же про самбу
Проблема не в уровнях, проблема в категориях. Ну смотрите, есть каталог, допустим /opt/data на него навешаны pdp-flbl 1:0:-1:ccnr Т.е. в этот каталог можно писать до первого уровня включительно и с любой мандатной категорией. Есть две группы пользователей, в первой группе у каждого пользователя своя мандатная КАТЕГОРИЯ. Пользователи из первой группы готовят промежуточные данные и сваливают их в этот общий каталог. Пользователи из первой группы не должны иметь доступ к файлам, подготовленными другими пользователями из этой же группы. Пользователи из второй группы, на основе подготовленных общих данных, должны готовить итоговый документ, т.е. они должны иметь доступ ко всем файлам, созданными пользователями из первой группы, поэтому навешиваем на них привилегию игнорирования мандатных категорий. Казалось бы, можно как то извратиться и организовать это посредством ACL (хотя я и сомневаюсь что получится), но тут еще одна особенность. Пользователи из первой группы не только готовят данные в виде файлов, но и одновременно пишут данные в Postgres в общую таблицу и там такие-же требования по разграничению взаимного доступа на основе категорий. Локально всё это работает. Но если общий каталог разместить на сетевой шаре, то пользователи из второй группы не видят файлы с установленными мандатными категориями. Игнорирование категорий не работает (а в постгресе работает).
 

bl33d

Administrator
Team Astra Linux
Сообщения
73
#15
А этот "общий случай" у вас в официальной документации. Вот делаешь всё по доке, а не работает как должно. Кучу времени отнимает поиск таких нюансов.
И вот с этой привилегией игнорирования. Были уверены что работает, локально проверили, софт заархитектурили с учетом этого. А как развертывать в сетевом окружении начали, так и всё, ПРОБЛЕМА!
Ошибка mount.cifs, не корректная работа с ACL. Слышал, что в свежей версии, которая должна быть включена в состав 1.6 исправлено, но не стану утверждать, т.к. не проверял лично.
Документацию для сертифицированной версии уже нет возможности поправить.
 

ulv

Moderator
Team Astra Linux
Сообщения
26
#16
Проблема не в уровнях, проблема в категориях. Ну смотрите, есть каталог, допустим /opt/data на него навешаны pdp-flbl 1:0:-1:ccnr Т.е. в этот каталог можно писать до первого уровня включительно и с любой мандатной категорией. Есть две группы пользователей, в первой группе у каждого пользователя своя мандатная КАТЕГОРИЯ. Пользователи из первой группы готовят промежуточные данные и сваливают их в этот общий каталог. Пользователи из первой группы не должны иметь доступ к файлам, подготовленными другими пользователями из этой же группы. Пользователи из второй группы, на основе подготовленных общих данных, должны готовить итоговый документ, т.е. они должны иметь доступ ко всем файлам, созданными пользователями из первой группы, поэтому навешиваем на них привилегию игнорирования мандатных категорий. Казалось бы, можно как то извратиться и организовать это посредством ACL (хотя я и сомневаюсь что получится), но тут еще одна особенность. Пользователи из первой группы не только готовят данные в виде файлов, но и одновременно пишут данные в Postgres в общую таблицу и там такие-же требования по разграничению взаимного доступа на основе категорий. Локально всё это работает. Но если общий каталог разместить на сетевой шаре, то пользователи из второй группы не видят файлы с установленными мандатными категориями. Игнорирование категорий не работает (а в постгресе работает).
А если навесить пользователям из второй группы, которые должны читать все документы, набор категорий всех пользователей из первой группы и заходить под ним? Без игнорирования естественно.

По теме треда: nfs не поддерживает расширенные атрибуты доступа. Мандатные атрибуты хранятся именно там.
Построить сетевую шару на nfs с метками нельзя.
 

kostia

New member
Сообщения
185
#17
А если навесить пользователям из второй группы, которые должны читать все документы, набор категорий всех пользователей из первой группы и заходить под ним? Без игнорирования естественно.
Сейчас так и делаем, но это очень не удобно. При добавлении пользователя с персональной категорией в первую группу, приходится выставлять эту категорию для всех пользователей из второй группы. Да попутно возникают проблемы с файлами, создаваемыми пользователями из второй категории, они же создаются мандатными метками, соответствующими сеансу. Дикая путаница возникает.
 

ulv

Moderator
Team Astra Linux
Сообщения
26
#18
Сейчас так и делаем, но это очень не удобно. При добавлении пользователя с персональной категорией в первую группу, приходится выставлять эту категорию для всех пользователей из второй группы. Да попутно возникают проблемы с файлами, создаваемыми пользователями из второй категории, они же создаются мандатными метками, соответствующими сеансу. Дикая путаница возникает.
Можно попробовать отказаться от категорий и пользоваться acl. При монтировании самбы использовать noperm опцию.
Только acl с группами криво работает с mount.cifs, поэтому надо использовать только имена пользователей. Если пользователей много, то это еще сложнее чем через категории.
 

kostia

New member
Сообщения
185
#19
Только acl с группами криво работает с mount.cifs,
А можно подробнее про это? А то мы используем группы в ACL и монтируем через pam_mount. Проблем именно с ACL (с параметром noperm) не замечали, но может не достаточно внимательно проверяли?

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

bl33d

Administrator
Team Astra Linux
Сообщения
73
#20
А можно подробнее про это? А то мы используем группы в ACL и монтируем через pam_mount. Проблем именно с ACL (с параметром noperm) не замечали, но может не достаточно внимательно проверяли?
С noperm не должно быть проблем, если на локальной системе, куда монтируется smb шара вас устраивает полное игнорирование прав доступа (на стороне клиента) на точке монтирования.

С noperm у вас вообще любой пользователь системы может писать в /opt/data, при этом делать он это будет от лица того, кто эту smb шару монтировал.