Оглавление |
---|
Информация | ||
---|---|---|
| ||
|
Предупреждение |
---|
При работе в Astra Linux Special Edition с конфиденциальной информацией с включенным МРД применять NFS строго не рекомендуется. Рекомендованной сетевой файловой системой для работы с конфиденциальной информацией является Samba SMB/CIFS. |
Информация |
---|
NFS (сокращение от Network File System, Сетевая Файловая Система) - сервис, обеспечивающий общий доступ к файлам и каталогам систем *nix / Linux. Файловая система NFS позволяет монтировать удалённые разделяемые файлы подобно локальным. Существует в двух вариантах:
|
Информация | ||
---|---|---|
В Astra Linux Special Edition для того, чтобы включить NFS v2, нужно добавить опцию "-V 2" в две переменные в файле /etc/default/nfs-kernel-server (второй переменной по умолчанию нет, её надо создавать):
|
Исходные данные
- Сервер NFS - 192.168.1.10;
- Клиент NFS - 192.168.1.20.
Установка
Пакеты nfs (сервер) и nfs-common (клиент) входят в стандартный дистрибутив Astra Linux Special Edition, и доступны в сетевом репозитории Astra Linux Common Edition. Поддержка файловой системы NFS интегрирована в ядро всех ОС Astra Linux.
По умолчанию пакет nfs не устанавливается. Установить сервер nfs и клиент nfs-common можно из графического менеджера пакетов, или из командной строки.
Предупреждение |
---|
При установке пакетов для работы с файловой системой NFS будет автоматически установлена служба rpcbind. Использование службы rpcbind несовместимо с работой на ненулевых уровнях конфиденциальности. Для работы с включенным МРД на ненулевых уровнях конфиденциальности следует использовать рекомендованную сетевую файловую систему Samba SMB/CIFS. |
Сервер:
Command |
---|
sudo apt update |
Клиент:
Command |
---|
sudo apt update sudo apt install nfs-common |
Дополнительно, можно установить пакет "монтирования ресурсов NFS по запросу", позволяющий монтировать ресурсы только при обращениях к ним:
Command |
---|
sudo apt update sudo apt install autofs |
Настройка сервера
Подготовка
Для развёртывания сервера NFS, как и любого другого сервера:
- рекомендуется назначить серверу постоянный IP-адрес;
- настроить разрешение имён клиентских компьютеров, или назначить им статические IP-адреса;
- выделить ресурс (каталог), который в дальнейшем станет разделяемым. Пример: создание каталога /nfsshare и задание для него полного доступа на чтение и запись:
Command |
---|
sudo mkdir /srv/nfsshare sudo chmod 777 /srv/nfsshare |
Исправление ошибок в пакете
Предупреждение |
---|
Использование службы rpcbind несовместимо с работой на ненулевых уровнях конфиденциальности. Для работы с включенным МРД на ненулевых уровнях конфиденциальности следует использовать рекомендованную сетевую файловую систему Samba SMB/CIFS. |
При работе в Astra Linux Special Edition, выпущенных ранее очередного обновления x.7, для нормального запуска службы nfs-server после перезагрузки компьютера после установки пакета нужно внести изменения в его UNIT-файл /etc/systemd/system/multi-user.target.wants/nfs-server.service
добавив следующие строки в секцию unit:
Command |
---|
[Unit] |
Указанные исправления обеспечат запуск службы nfs-server после службы rpcbind. После внесения изменений перезапустить службу:
Command |
---|
sudo systemctl daemon-reload |
При работе в Astra Linux Special Edition очередное обновление x.7 указанные действия не требуются.
Конфигурация
Основная конфигурация сервиса nfs хранится в файле /etc/exports
. Кроме этого файла сервис использует файлы:
/etc/fstab
- записи обо всех файловых системах, включая nfs, автоматически монтируемых при загрузке системы./etc/hosts.allow
,/etc/hosts.deny
- используется, чтобы решить, принять или отклонить подключения, приходящие с внешних IP-адресов
Экспорт разделяемого ресурса
Для экспорта созданного ранее разделяемого ресурса (каталога) /nfsshare просто добавим в конфигурационный файл /etc/exports
строку
Информация |
---|
/srv/nfsshare <IP-адрес_клиента>(rw,nohide,all_squash,anonuid=1000,anongid=1000,no_subtree_check) |
Где:
- <IP-адрес_клиента> - постоянный IP-адрес компьютера-клиента (может быть использовано имя компьютера), или, для указания группы компьютеров, можно использовать адрес сети или подстановочный знак "*" (подробнее см. справку man exports);
- (rw,no_root_squash,sync) –набор опций, опции могут быть:
- rw –чтение запись (может принимать значение ro – только чтение);
- no_root_squash – по умолчанию в общих ресурсах NFS пользователь root становится обычным пользователем nfsnobody.
Таким образом, владельцем всех файлов, созданных root, становится nfsnobody, что предотвращает загрузку на сервер программ с установленным битом setuid.
Если указан параметр no_root_squash, удалённые пользователи root могут изменить любой файл в разделяемой файловой системе, и оставить для других пользователей троянские приложения.
В целях безопасности этот параметр лучше не использовать - nohide - NFS автоматически не показывает нелокальные ресурсы (например, примонтированные с помощью mount –bind), эта опция включает отображение таких ресурсов;
- sync – синхронный режим доступа (может принимать обратное значение- async). Значение sync указывает, что сервер должен отвечать на запросы только после записи на диск изменений, выполненных этими запросами.
Параметр async указывает серверу не ждать записи информации на диск, что повышает производительность, но понижает надежность, т.к. в случае обрыва соединения или отказа оборудования возможна потеря данных; - noaccess – запрещает доступ к указанной директории. Применяется, если доступ к определенной директории выдан всем пользователям сети , и необходимо ограничить доступ для некоторых пользователей;
- all_squash– подразумевает, что все подключения будут выполнятся от анонимного пользователя;
- subtree_check (no_subtree_check)- в некоторых случаях приходится экспортировать не весь раздел, а лишь его часть. При этом сервер NFS должен выполнять дополнительную проверку обращений клиентов, чтобы убедиться в том, что они предпринимают попытку доступа лишь к файлам, находящимся в соответствующих подкаталогах. Такой контроль поддерева (subtree checks) несколько замедляет взаимодействие с клиентами, но если отказаться от него, могут возникнуть проблемы с безопасностью системы.
Отменить контроль поддерева можно с помощью опции no_subtree_check. Опция subtree_check, включающая такой контроль, предполагается по умолчанию.
Контроль поддерева можно не выполнять в том случае, если экспортируемый каталог совпадает с разделом диска; - anonuid=1000– привязывает анонимного пользователя к «местному» пользователю;
- anongid=1000– привязывает анонимного пользователя к группе «местного» пользователя.
- rw –чтение запись (может принимать значение ro – только чтение);
Строк с записями о разделяемых ресурсах может быть добавлено несколько. После внесения изменений для того, чтобы они вступили в силу, нужно выполнить команду
Command |
---|
sudo exportfs -ra |
(подробности по возможностям команды см. man exportfs)
Безопасный экспорт разделяемых ресурсов
Протокол передачи данных NFS поддерживает защитное преобразование данных начиная с версии 4 (NFSv4).
Предупреждение Версии NFSv2 и NFSv3 защитное преобразование данных не поддерживают, и передают незащищённые данные. Сервер NFS определяет, какие файловые системы экспортировать и какие узлы получат к ним доступ с помощью файла /etc/exports.
Будьте внимательны и не добавляйте лишних пробелов, редактируя этот файл.
Например, следующая строка в файле /etc/exports предоставляет каталог /tmp/nfs/ для чтения/записи с компьютера master.astralinux.ru:Информация /tmp/nfs/ master.astralinux.ru(rw)
А следующая строка файла/etc/exports, напротив, определяет для того же каталога компьютеру master.astralinux.ru разрешение только на чтение, а всем остальным разрешает не только чтение, но и запись
Отличие конфигураций состоит всего в одном пробеле после имени компьютера:Предупреждение /tmp/nfs/ master.astralinux.ru (rw)
Чтобы избежать подобных ошибок,
Предупреждение | ||
---|---|---|
проверяйте все настроенные общие ресурсы NFS с помощью команды showmount:
|
- Не используйте параметр no_root_squash. По умолчанию, в общих ресурсах NFS пользователь root становится обычным пользователем nfsnobody.
Таким образом, владельцем всех файлов, созданных root, становится nfsnobody, что предотвращает загрузку на сервер программ с установленным битом setuid.
Если указан параметр no_root_squash, удалённые пользователи root могут изменить любой файл в разделяемой файловой системе и оставить для других пользователей троянские приложения.
Настройка клиента
После установки клиентского пакета nfs-common, на компьютере - клиенте следует примонтировать разделяемые ресурсы. Список доступных ресурсов можно проверить, выполнив команду:
Command |
---|
sudo showmount -e 192.168.1.10 Export list for 192.168.1.10: |
Монтируем ресурс
Чтобы примонтировать разделяемый ресурс на клиентской машине:
Создать на клиентской машине точку монтирования, например, каталог /mnt/share:
Command sudo mkdir /mnt/share Командой mount для примонтировать разделяемый каталог /nfsshare сервера NFS (192.168.1.10) в каталог /mnt/share на клиентском компьютере:
Command sudo mount 192.168.1.10:/srv/nfsshare /mnt/share Для проверки успешности монтирования можно использовать команду:
Command mount | grep nfs Команда выдаст строку (строки) с информацией о примонтированном ресурсе (ресурсах). Кроме того, можно использовать команду проверки свободного места на всех примонтированных ресурсах:
Command df
Автоматическое монтирование ресурса при загрузке
Чтобы ресурс NFS монтировался автоматически при перезагрузки ОС, его нужно зарегистрировать в файле /etc/fstab добавив строчку вида
Информация |
---|
<IP-адрес_сервера>:/srv/nfsshare/ /mnt/share nfs rw,sync,hard,intr 0 0 |
Автоматическое монтирование ресурса по запросу
Автоматическое монтирование ресурсов NFS можно выполнить с помощью пакета autofs.
Решение проблемы зависания графических приложений
При работе в сессии с ненулевой классификационной меткой с одновременным использованием файловых систем NFS и Samba возможна нештатная работа графических приложений. Нарушение работы приложения может проявляться, например, "в зависаниях" текстового редактора kate, и вызвано несовместимостью службы rpcbind с работой КСЗ Astra Linux Special Edition. Для устранения нарушений работы следует остановить и запретить службу rpcbind:
Command |
---|
sudo systemctl mask --now rpcbind |
Для находящихся в эксплуатации систем Astra Linux следует использовать рекомендованную для работы с конфиденциальной информацией сетевую файловую систему Samba SMB/CIFS.