- Настройка Samba
- Общие сведения
- Создание разделяемых файловых ресурсов
- Доступ к разделяемым файловым ресурсам
- Просмотр разделяемых файловых ресурсов
- Монтирование разделяемых файловых ресурсов
- Автоматическое монтирование ресурсов при входе пользователя с помощью pam_mount
- Пример:
- Особенности работы с разделяемыми файловыми ресурсами в версии ОС СН 1.3
- Особенности работы с разделяемыми файловыми ресурсами в версии ОС СН 1.4
- Настройка Samba server
Настройка Samba
Samba — это реализация сетевого протокола SMB/CIFS . Эта программа облегчает организацию общего доступа к файлам и принтерам из систем Linux и Windows и является альтернативой NFS .
Общие сведения
Операционная система специального назначения «Astra Linux Special Edition» (ОС СН) содержит в своем составе СЗФС CIFS, позволяющую создавать разделяемые файловые ресурсы (каталоги).
Существует возможность на серверах домашних каталогов (файл-серверах) заводить общие папки, доступные для пользователей. Для конфигурирования файл-сервера следует руководствоваться документацией и справкой по используемой ФС. Монтирование таких каталогов может быть выполнено при помощи команды mount или редактированием конфигурационного файла fstab. Автоматическое монтирование может быть обеспечено PAM-модулем pam_mount.
При необходимости работы с разделяемыми ресурсами с помощью стандартных утилит Samba (net, smbclient), в том числе с пользовательскими разделяемыми ресурсами (usershare), могут требоваться дополнительные настройки.
Создание разделяемых файловых ресурсов
Для создания разделяемого файлового ресурса (каталога) на компьютере должен быть установлен сервер Samba
При работе в ЕПП отдельный файловый сервер может быть организован средствами ALD, для этого предназначен пакет ald-client-fs . При установке этого пакета на компьютер также устанавливаются необходимые пакеты Samba и формируются конфигурационные файлы. При установке, инициализации, удалении или запуске/остановке службы ALD основные конфигурационные файлы различных служб могут быть перезаписаны на основе шаблонов, что может повлечь потерю внесенных вручную изменений. Во избежание этого, внесение изменений должно осуществляться не только в основные конфигурационные файлы, но и в их шаблоны, расположенные в каталоге /etc/ald/config-templates.
Для создание разделяемого файлового ресурса необходимы выполнить следующие действия:
Создать каталог, который будет являться разделяемым файловым ресурсом и установить желаемые права доступа, например:
Или группу каталогов с различным мандатным контекстом:
Установить желаемые дискретные атрибуты, например:
Разграничить мандатный доступ в соответствии с пунктом «4. МАНДАТНОЕ РАЗГРАНИЧЕНИЕ ДОСТУПА» документа «Руководство по КСЗ. Часть 1 РУСБ.10015-01 97 01-1″(ссылка):
pdpl-file 3:0:-1:ccnr /var/lib/samba/
pdpl-file 3:0:0:ccnr /var/lib/samba/share1
pdpl-file 1:0:0 /var/lib/samba/share1/dsp
pdpl-file 2:0:0 /var/lib/samba/share1/secret
pdpl-file 3:0:0 /var/lib/samba/share1/topsecret
Внести в конфигурационный файл Samba (/etc/samba/smb.conf и в соответствующий ему шаблон ALD) информацию о разделяемом файловом ресурсе (фрагмент smb.conf):
[share1] available = yes comment = Share for users browseable = yes case sensitive = yes ea support = yes fstype = Samba path = /var/lib/samba/share1 writable = yes smb encrypt = auto
Перезапустить службы Samba:
Описание конфигурационные параметры разделяемых файловых ресурсов приведено в руководстве man на конфигурационный файл smb.conf.
Доступ к разделяемым файловым ресурсам
Существует возможность использования различных схем организации доступа к разделяемым файловым ресурсам. В общем случае может быть использован доступ с аутентификацией средствами Samba. Для этого применяется собственная БД учетных записей Samba и утилита задания паролей smbpasswd , например вызов:
После этого для доступа может использована созданная учетная запись.
При использовании ЕПП применяется аутентификация Kerberos.
Дополнительные сведения приведены в руководстве man для утилит Samba.
Просмотр разделяемых файловых ресурсов
Просмотр доступных файловых ресурсов возможен с помощью утилит Samba:
поиск и просмотр дерева ресурсов:
Для указанных утилит необходимо задать имя пользователя с помощью опции -U. При этом будет запрошен пароль указанного пользователя.
При работе в ЕПП и использовании аутентификация Kerberos, указанные утилиты могут быть использованы с опцией -k. В этом случае для аутентификации используется текущий кэш билетов Kerberos (ограничения см. в Особенности работы с разделяемыми файловыми ресурсами в версии ОС СН 1.3 и 1.4 . ).
Для корректной работы с аутентификацией Kerberos в качестве имени сервера должно использоваться его полное доменное имя (FQDN), например fileserver1.org.net.
Дополнительные сведения приведены в руководстве man для утилит Samba.
Возможно использование утилиты smbnetfs :
Указанная утилита организует виртуальную файловую систему в указанной точке монтирования для доступа к разделяемым файловым ресурсам Samba. Доступ к тому или иному ресурсу выполняется обращением в указанную точку монтирования по пути вида «/точка_монтирования/сервер/ресурс», например:
Для использования утилиты smbnetfs пользователь должен быть членом системной группы fuse.
Утилита smbnetfs использует возможности утилит Samba smbtree и smbclient.
Дополнительные сведения приведены в руководстве man для smbnetfs .
Для отображения ресурса в файловом менеджере fly-fm, на сервере следует изменить в файле /etc/samba/smb.conf опцию в секции global на
Для отображения ресурсов в разделе «Сеть» менеджера файлов fly-fm: см Особенности работы с разделяемыми файловыми ресурсами в версии ОС СН 1.3 и 1.4.
Монтирование разделяемых файловых ресурсов
Монтирование разделяемого файлового ресурса выполняется командой mount с указанием соответствующего типа сетевой ФС, например:
mount.cifs //сервер/ресурс /точка_монтирования [-o опции]
mount -t cifs //сервер/ресурс /точка_монтирования [-o опции]
В качестве опций команде могут передаваться параметры монтирования, такие как имя пользователя, используемый тип аутентификации, кодировка, использование прав доступа и т.п. Полный список опций приведен в руководстве man для команд mount и mount.cifs . Без соответствующей записи в /etc/fstab пользователь может использовать команды монтирования только с помощью sudo (точка монтирования ~/share1 должна быть создана заранее):
Для возможности монтирования разделяемого файлового ресурса пользователем в конфигурационный файл /etc/fstab должна быть объявлена строка монтирования, например следующего вида:
//fileserver1.org.net/share1 /media/share1 cifs user,rw,noauto,iocharset=utf8,soft 0 0
Точка монтирования должна быть создана заранее и доступна пользователю, опция user предоставляет возможность монтирования указанного ресурса простому пользователю. Полный список опций приведен в руководстве man для команд mount и mount.cifs . Описание формата конфигурационного файла /etc/fstab приведено в руководстве man для fstab.
При использовании с аутентификацией Kerberos в ЕПП в строке опций должен быть указан параметр аутентификации sec=krb5i . В этом случае при монтировании будет использоваться текущий кэш Kerberos пользователя.
Автоматическое монтирование ресурсов при входе пользователя с помощью pam_mount
Для автоматического монтирования разделяемых файловых ресурсов при входе пользователя используется pam модуль pam_mount, предоставляемый пакетом libpam-mount, который может быть установлен следующим образом:
Настройка 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.
Для монтирования разделяемых файловых ресурсов СЗФС CIFS конфигурационный файл должен быть модифицирован следующим образом (в пределах тега pam_mount):
mount.cifs //%(SERVER)/%(VOLUME) %(MNTPT) -o %(OPTIONS)
При использовании с аутентификацией Kerberos в ЕПП в строке опций монтирования должен быть указан параметр аутентификации sec=krb5i . В этом случае при монтировании будет использоваться текущий кэш Kerberos пользователя.
Так же в строке опций монтирования должен присутствовать параметр 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 объявляет непосредственно параметры монтирования разделяемого файлового ресурса. Пользователь должен существовать в БД учетных записей Samba и иметь соответствующий пароль.
Пример:
В примере рассматривается стенд из 2 машин:
srv.ex.ru — контроллер домена ALD и сервер Samba;
Выставляем максимальный уровень и флаг CCNR для каждой папки в пути /var/lib/samba/ald_share.
Путь расположения шары на сервере может быть изменен в скрипте, см. Описание скрипта. В папке /var/lib/samba/ald_share создаем количество папок равных количеству уровней с которыми планируется работать пользователям. Для удобства называйте их соответствующими именами, например /lvl0, /lvl1, /lvl2, /lvl3 . Этим папкам необходимо присвоить соответствующий уровень и флаг CCNR.
Выставляем максимальный уровень и флаг CCNR для каждой папки в пути монтирования, по умолчанию это /media.
Перезапускаем сервис samba на srv.ex.ru. Теперь можно заходить пользователем ALD на clt.ex.ru и в /media/ald_share будет доступна смонтированная шара.
Особенности работы с разделяемыми файловыми ресурсами в версии ОС СН 1.3
Для работы с разделяемыми файловыми ресурсами в менеджера файлов fly-fm ОС СН версии 1.3 необходимо установить пакеты libqca2-plugin-ossl , gnome-keyring :
После этого с помощью раздела «Сеть» менеджера файлов fly-fm появиться возможность работы с разделяемыми файловыми ресурсами.
При доступе к разделяемому файловому ресурсу будут запрошены имя пользователя и пароль.
В ОС СН версии 1.3 не поддерживается работа с разделяемыми файловыми ресурсами при использовании аутентификации по Kerberos (в случае работы в ЕПП) с помощью утилит smbclient и менеджера файлов fly-fm. В этом случае следует использовать монтирование таких ресурсов средствами mount ( mount.cifs ).
Особенности работы с разделяемыми файловыми ресурсами в версии ОС СН 1.4
Для работы с разделяемыми файловыми ресурсами в менеджера файлов fly-fm ОС СН версии 1.4 необходимо установить пакеты libqca2-qt5-plugin-ossl , fly-secretsservice :
После этого с помощью раздела «Сеть» менеджера файлов fly-fm появиться возможность работы с разделяемыми файловыми ресурсами.
При доступе к разделяемому файловому ресурсу будут запрошены имя пользователя и пароль.
В случае работы в ЕПП для доступа к разделяемому файловому ресурсу используется текущий кэш Kerberos пользователя.
Настройка Samba server
1. Обновляем информацию о репозиториях и устанавливаем обновления для существующих пакетов в системе:
apt-get update && apt-get upgrade
2.Устанавливаем пакет Samba:
apt-get install -y samba samba-client
3.Создадим директории для файлов, например в каталоге /media:
4.Создаем каталог для всех пользователей:
5.Изменим права доступа к каталогу:
sudo chmod -R 777 /media/samba/public
6.С помощью системных инструментов создадим группу пользователей:
7.Добавляем пользователей Samba:
8.Созданных пользователей добавляем в группу:
usermod -aG smbgrp superuser
9.С помощью инструментов Samba создадим пароль для добавленного пользователя:
10. С помощью текстового редактора, например, nano, редактируем конфигурационный файл samba:
Удаляем все строки из файла. Вставляем следующие:
11. Проверяем настройки с помощью команды:
13. Настроим межсетевой экран. Для этого в правилах откроем TCP-порты 139 и 445, а также UDP-порты 137 и 138, но только для тех подсетей, которым доверяете. Для указания собственного диапазона адресов, замените значение после ключа “-s”:
iptables -A INPUT -p tcp -m tcp --dport 445 -s 192.168.1.0/24 -j ACCEPT
iptables -A INPUT -p tcp -m tcp --dport 139 -s 192.168.1.0/24 -j ACCEPT
iptables -A INPUT -p udp -m udp --dport 137 -s 192.168.1.0/24 -j ACCEPT
iptables -A INPUT -p udp -m udp --dport 138 -s 192.168.1.0/24 -j ACCEPT
14.Для сохранения правил и применения их после перезагрузки сервера следует воспользоваться пакетом iptables-persistent. Установим его:
apt-get install iptables-persistent
Входе установки пакета, программа предложит запомнить существующие правила iptables. Подтверждаем это действие.
15.Для проверки существующих правил используем:
Настройка на АРМ пользователя клиента.
1. Для подключения к общим папкам из среды Linux требуется установка отдельного программного обеспечения — smbclient. Установим:
sudo apt-get install smbclient
2.Для подключения к серверу добавляем новое место в сети:
3. Вносим данные для подключения:
4. Если настроено все по инструкции должно получиться вот так: