- Введение
- Исходные данные
- Настройка сервера
- Подготовка
- Корректировка настроек пакета
- Конфигурация
- Экспорт разделяемого ресурса
- Безопасный экспорт разделяемых ресурсов
- Настройка клиента
- Монтируем ресурс
- Автоматическое монтирование ресурса при загрузке
- Автоматическое монтирование ресурса по запросу
- Решение проблемы зависания графических приложений
- Astra Linux при монтировании NFS ошибка «mount.nfs: Operation not permitted» при nfsvers=3
- Как смонтировать общий ресурс NFS в Linux
- Установка клиентских пакетов NFS
- Монтирование файловых систем NFS вручную
- Автоматическое монтирование файловых систем NFS с помощью /etc/fstab
- Размонтирование файловых систем NFS
- Выводы
Введение
Защищенной сетевой файловой системой для работы с информацией ограниченного доступа в Astra Linux Special Edition является Samba SMB/CIFS.
При работе в Astra Linux Special Edition с включенной политикой мандатного управления доступом (МРД) и обработкой информации ограниченного доступа применять сетевую файловую систему NFS для хранения данных в общем случае не рекомендуется.
NFS (сокращение от Network File System, Сетевая Файловая Система) — сервис, обеспечивающий общий доступ к файлам и каталогам систем *nix / Linux. Файловая система NFS позволяет монтировать удалённые разделяемые файлы подобно локальным. Существует в двух вариантах:
- вариант nfs-kernel -server , работающий на уровне ядра (входит в состав Astra Linux)
- и вариант работающий на уровне пользовательских программ (в состав Astra Linux не входит)
В Astra Linux Special Edition для того, чтобы включить NFS v2, нужно добавить опцию «-V 2» в две переменные в файле /etc/default/nfs-kernel-server (второй переменной по умолчанию нет, её надо создавать):
Исходные данные
Пакеты nfs-kernel-server (сервер) и nfs-common (клиент) входят в стандартный дистрибутив Astra Linux Special Edition, и доступны в сетевом репозитории Astra Linux Common Edition. Поддержка файловой системы NFS интегрирована в ядро всех ОС Astra Linux.
По умолчанию пакет nfs-kernel-server не устанавливается. Установить сервер nfs и клиент nfs-common можно из графического менеджера пакетов (см. Графический менеджер пакетов synaptic) , или из командной строки.
При установке пакетов для работы с файловой системой NFS будет автоматически установлена служба rpcbind. Использование службы rpcbind несовместимо с работой на ненулевых уровнях конфиденциальности. Для работы с включенным МРД на ненулевых уровнях конфиденциальности следует использовать рекомендованную сетевую файловую систему Samba SMB/CIFS.
Установка сервера из командной строки:
Дополнительно, можно установить пакет «монтирования ресурсов NFS по запросу», позволяющий монтировать ресурсы только при обращениях к ним, см. Autofs монтирование по запросу.
Настройка сервера
Подготовка
Для развёртывания сервера NFS, как и любого другого сервера:
- рекомендуется назначить серверу постоянный IP-адрес;
- настроить разрешение имён клиентских компьютеров, или назначить им статические IP-адреса;
- выделить ресурс (каталог), который в дальнейшем станет разделяемым. Пример: создание каталога /srv/nfsshare и задание для него полного доступа на чтение и запись:
Корректировка настроек пакета
При работе в операционных системах Astra Linux, выпущенных ранее очередного обновления x.7, для нормального автоматического запуска службы nfs-kernel-server после перезагрузки компьютера внести изменения в его UNIT-файл /etc/systemd/system/multi-user.target.wants/nfs-server.service добавив следующие строки в секцию unit:
Указанные исправления обеспечат запуск службы nfs-server после службы rpcbind. После внесения изменений перезапустить службу:
При работе в Astra Linux Special Edition очередное обновление x.7 указанные действия не требуются.
Конфигурация
Основная конфигурация сервиса nfs хранится в файле /etc/exports . Кроме этого файла сервис использует файлы:
- /etc/fstab — записи обо всех файловых системах, включая nfs, автоматически монтируемых при загрузке системы.
- /etc/hosts.allow , /etc/hosts.deny — используется, чтобы решить, принять или отклонить подключения, приходящие с внешних IP-адресов
Экспорт разделяемого ресурса
Для экспорта созданного ранее разделяемого ресурса (каталога) /srv/nfsshare добавить в конфигурационный файл /etc/exports строку
- — постоянный IP-адрес компьютера-клиента (может быть использовано имя компьютера), или, для указания группы компьютеров, можно использовать адрес сети или подстановочный знак «*» (подробнее см. справку man exports);
Строк с записями о разделяемых ресурсах может быть добавлено несколько. После внесения изменений для того, чтобы они вступили в силу, нужно выполнить команду
Безопасный экспорт разделяемых ресурсов
- Протокол передачи данных NFS поддерживает защитное преобразование данных начиная с версии 4 (NFSv4).
А следующая строка файла/etc/exports, напротив, определяет для того же каталога компьютеру master.astralinux.ru разрешение только на чтение, а всем остальным разрешает не только чтение, но и запись
Отличие конфигураций состоит всего в одном пробеле после имени компьютера :
Чтобы избежать подобных ошибок,
проверяйте все настроенные общие ресурсы NFS с помощью команды showmount:
- Не рекомендуется использование параметра no_root_squash, так как потенциально создает угрозы безопасности, связанные с возможностью удаленного внедрения в файловую систему вредоносного ПО. По умолчанию, в общих ресурсах NFS пользователь root становится обычным пользователем nfsnobody. Таким образом, владельцем всех файлов, созданных root, становится пользователь nfsnobody, что предотвращает загрузку на сервер программ с установленным битом setuid.
Настройка клиента
После установки клиентского пакета nfs-common, на компьютере — клиенте следует примонтировать разделяемые ресурсы. Список доступных ресурсов можно проверить, выполнив команду:
sudo showmount -e 192.168.1.10
Export list for 192.168.1.10:
/srv/nfsshare 192.168.1.20
Монтируем ресурс
Чтобы примонтировать разделяемый ресурс на клиентской машине:
- Создать на клиентской машине точку монтирования, например, каталог /mnt/share:
Команда выдаст строку (строки) с информацией о примонтированном ресурсе (ресурсах). Кроме того, можно использовать команду проверки свободного места на всех примонтированных ресурсах:
Автоматическое монтирование ресурса при загрузке
Чтобы ресурс NFS монтировался автоматически при перезагрузки ОС, его нужно зарегистрировать в файле /etc/fstab добавив строчку вида
Автоматическое монтирование ресурса по запросу
Автоматическое монтирование ресурсов NFS можно выполнить с помощью пакета autofs.
Решение проблемы зависания графических приложений
При работе в сессии с ненулевой классификационной меткой с одновременным использованием файловых систем NFS и Samba возможна нештатная работа графических приложений. Нарушение работы приложения может проявляться, например, «в зависаниях» текстового редактора kate, и вызвано несовместимостью службы rpcbind с работой КСЗ Astra Linux Special Edition. Д ля устранения нарушений работы следует остановить и запретить службу rpcbind:
Для находящихся в эксплуатации систем Astra Linux следует использовать рекомендованную для работы с информацией ограниченного доступа сетевую файловую систему Samba SMB/CIFS.
Astra Linux при монтировании NFS ошибка «mount.nfs: Operation not permitted» при nfsvers=3
При попытке смонтировать NFS ресурс получаем сообщение вида:
mount -t nfs -o nfsvers=3,soft 192.168.0.1:/data /var/www mount.nfs: Operation not permitted
mount -t nfs -o soft 192.168.0.1:/data /var/www
прекрасно работает! Что делать? Причин может быть множество. Одна из них рассмотрена ниже:
добавляем ключик —verbose для получения подробностей:
mount --verbose -t nfs -o nfsvers=3,soft 192.168.0.1:/data /var/www mount.nfs: timeout set for Tue Feb 6 13:27:32 2018 mount.nfs: trying text-based options 'nfsvers=3,soft,addr=192.168.0.1' mount.nfs: prog 100003, trying vers=3, prot=6 mount.nfs: trying 192.168.0.1 prog 100003 vers 3 prot TCP port 2049 mount.nfs: prog 100005, trying vers=3, prot=17 mount.nfs: trying 192.168.0.1 prog 100005 vers 3 prot UDP port 49705 mount.nfs: portmap query retrying: RPC: Program/version mismatch mount.nfs: prog 100005, trying vers=3, prot=6 mount.nfs: trying 192.168.0.1 prog 100005 vers 3 prot TCP port 59451 mount.nfs: portmap query failed: RPC: Program/version mismatch mount.nfs: Operation not permitted
Ошибка приобретает более информативный характер. Но если NFS4 поддерживается и работает, а NFS3 нет, то это означает, что где-то запрещён протокол NFS3. Где же? А вот в этом файле: /etc/init.d/nfs-kernel-server в строке:
RPCMOUNTDOPTS="$RPCMOUNTDOPTS --no-nfs-version 3"
Уберите —no-nfs-version 3, выполните:
/etc/init.d/nfs-kernel-server restart
Как смонтировать общий ресурс NFS в Linux
Сетевая файловая система (NFS) — это протокол распределенной файловой системы, который позволяет вам обмениваться удаленными каталогами по сети. С помощью NFS вы можете монтировать удаленные каталоги в своей системе и работать с удаленными файлами, как если бы они были локальными файлами.
В операционных системах Linux и UNIX вы можете использовать команду mount для монтирования общего каталога NFS в определенной точке монтирования в локальном дереве каталогов.
В этом руководстве мы покажем вам, как вручную и автоматически смонтировать общий ресурс NFS на машинах Linux.
Установка клиентских пакетов NFS
Чтобы смонтировать общий ресурс NFS в системе Linux, сначала необходимо установить клиентский пакет NFS. Название пакета отличается в разных дистрибутивах Linux.
- Установка клиента NFS в Ubuntu и Debian:
sudo apt update
sudo apt install nfs-common
sudo yum install nfs-utils
Монтирование файловых систем NFS вручную
Подключение удаленного общего ресурса NFS аналогично монтированию обычных файловых систем.
Чтобы смонтировать файловую систему NFS в заданной точке монтирования, используйте команду mount в следующей форме:
mount [OPTION. ] NFS_SERVER:EXPORTED_DIRECTORY MOUNT_POINT
Выполните следующие действия, чтобы вручную смонтировать удаленный общий ресурс NFS в вашей системе Linux:
- Сначала создайте каталог, который будет точкой монтирования для удаленного общего ресурса NFS:
sudo mount -t nfs 10.10.0.10:/backups /var/backups
После монтирования общего ресурса точка монтирования становится корневым каталогом смонтированной файловой системы.
Когда вы монтируете общий ресурс вручную, подключение общего ресурса NFS не сохраняется после перезагрузки.
Автоматическое монтирование файловых систем NFS с помощью /etc/fstab
Как правило, вы хотите автоматически монтировать удаленный каталог NFS при загрузке системы.
Файл /etc/fstab содержит список записей, определяющих, где, как и какая файловая система будет монтироваться при запуске системы.
Чтобы автоматически монтировать общий ресурс NFS при запуске системы Linux, добавьте строку в файл /etc/fstab . Строка должна включать имя хоста или IP-адрес сервера NFS, экспортированный каталог и точку монтирования на локальном компьютере.
Используйте следующую процедуру для автоматического монтирования общего ресурса NFS в системах Linux:
- Настройте точку монтирования для удаленного общего ресурса NFS:
# 10.10.0.10:/backups /var/backups nfs defaults 0 0
mount /var/backups mount 10.10.0.10:/backups
Размонтирование файловых систем NFS
Команда umount отсоединяет (размонтирует) смонтированную файловую систему от дерева каталогов.
Чтобы отсоединить смонтированный общий ресурс NFS, используйте команду umount за которой следует либо каталог, в котором он был смонтирован, либо удаленный общий ресурс:
umount 10.10.0.10:/backups
umount /var/backups
Если для монтирования NFS есть запись в fstab , удалите ее.
Команда umount не сможет отсоединить общий ресурс, когда смонтированный том используется. Чтобы узнать, какие процессы обращаются к общему ресурсу NFS, используйте команду fuser :
Как только вы найдете процессы, вы можете остановить их с помощью команды kill и отключить общий ресурс NFS.
Если у вас все еще есть проблемы с —lazy ресурса, используйте параметр -l ( —lazy ), который позволяет вам отключать загруженную файловую систему, как только она больше не занята.
Если удаленная система NFS недоступна, используйте параметр -f ( —force ) для принудительного размонтирования.
Как правило, не рекомендуется использовать опцию принудительного выполнения, так как это может повредить данные в файловой системе.
Выводы
Мы показали вам, как подключать и отключать удаленный общий ресурс NFS. Те же команды применимы для любого дистрибутива Linux, включая Ubuntu, CentOS, RHEL, Debian и Linux Mint.
Не стесняйтесь оставлять комментарии, если у вас есть вопросы.