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

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

Ключ

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

...

Информация

NFS (сокращение от Network File System, Сетевая Файловая Системa):
сервис, обеспечивающий общий доступ к файлам и каталогам систем *nix / Linux.

NFS позволяет монтировать удалённые разделяемые файлы подобно локальным.

Существует в двух вариантах:

  • nfs-server-kernel, работающий на уровне ядра (входит в Astra Linux)
  • и вариант работающий на уровне пользовательских программ (в Astra Linux не входит)
  • Установка

Пакет nfs входит Пакеты nfs (сервер) и nfs-common (клиент) входят в стандартный дистрибутив ОССН Смоленск, и доступны в сетевом репозитории ОСОН Орёл и ОССН Смоленск, и поддержка пакета встроена в ядра ОС.
Поддержка nfs интегрирована в ядро как ОССН, так и ОСОН.
По умолчанию пакет nfs не устанавливается.

Установить сервер nfs и клиент nfs-common можно из графического  менеджера пакетов, или из командной строки.

Сервер::

Информация
apt install nfs-server-kernel

Клиент:

Информация
apt install nfs-common

Дополнительно, можно установить пакет "монтирования ресурсов NFS по запросу", позволяющий монтировать ресурсы только при обращениях к ним:

Информация
apt install autofs

Настройка сервера

Подготовка

Для развёртывания сервера NFS, как и любого другого сервера, желательно назначить ему постоянный IP-адрес.
Далее в примерах считаем, что это адрес 192.168.1.10

Должно быть настроено разрешение имён клиентских компьютеров, или им должны быть назначены статические IP-адреса.

...

Для экспорта созданного ранее разделяемого ресурса (каталога) /nfsshare
просто добавим в конфигурационный файл /etc/exportexports строку 

Информация

/nfsshare 192.168.1.20/255.255.255.0(rw,nohide,all_squash,anonuid=1000,anongid=1000,no_subtree_check)

...

  • (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 – запрещает доступ к указанной директории. Может быть полезной
      Применяется, если перед этим вы задали доступ доступ к определенной директории выдан всем пользователям сети к определенной директории , и теперь хотите необходимо ограничить доступ в поддиректории лишь некоторым пользователямдля некоторых пользователей.
    • FIXME Необходимо добавить описание опций.
    • all_squash– подразумевает, что все подключения будут выполнятся от анонимного пользователя
    • subtree_check (no_subtree_check)- в некоторых случаях приходится экспортировать не весь раздел, а лишь его часть.
      При этом сервер NFS должен выполнять дополнительную проверку обращений клиентов, чтобы убедиться в том, что они предпринимают попытку доступа лишь к файлам, находящимся в соответствующих подкаталогах.
      Такой контроль поддерева (subtree checks) несколько замедляет взаимодействие с клиентами, но если отказаться от него, могут возникнуть проблемы с безопасностью системы.
      Отменить контроль поддерева можно с помощью опции no_subtree_check. Опция subtree_check, включающая такой контроль, предполагается по умолчанию.
      Контроль поддерева можно не выполнять в том случае, если экспортируемый каталог совпадает с разделом диска;
    • anonuid=1000– привязывает анонимного пользователя к «местному» пользователю;
    • anongid=1000– привязывает анонимного пользователя к группе «местного» пользователя.

 

no_root_squash : By default, any file created by the user root on the client machine is treated as “nobody” on the server. If no_root_squash is set, then root on the client machine will have the same level of access to files, as root on the server.

no_subtree_check : If only part of a volume is exported, a routine called subtree checking verifies that a file that is requested by the client is in the appropriate part of the volume. If the entire volume is exported, disable it with no_subtree_check; this will speed up transfers.

You can get to know all the option on the man page (man exports) or here.

Use the below command to export the shared directories.

exportfs -ra

Verify the exported share using below command.

showmount -e 127.0.0.1

The command showmount -e lists the available shares on your local machine (NFS Server). The out

Output:

Строк с записями о разделяемых ресурсов может быть добавлено несколько.

После внесения изменений, чтобы они вступили в силу, нужно выполнить команду 

Информация
exportfs -ra

(подробности по возможностям команды см. man exportfs)

Настройка клиента

После установки клиентского пакета nfs-common, на компьютере - клиенте следует примонтировать разделяемые ресурсы.

Список доступных ресурсов можно проверить, выполнив команду:

Информация

showmount -e 192.168.1.10

Export list for 192.168.1.10:
/nfsshare 192.168.1.20

Монтируем ресурс

Чтобы примонтировать разделяемый ресурс, создадим на клиентской машине каталог /share:

Информация
mkdir /mnt/share

И используем команду mount для монтирования разделяемого каталога /nfsshare с сервера NFS (192.168.1.10) в каталог /mnt/share на клиантском компьютере:

Информация
mount 192.168.1.10:/nfsshare /mnt/share

Для проверки монтирования можно использовать команду 

Информация
mount | grep nfs

которая выдаст строку (строки) с информацией о примонтированном ресурсе (ресурсах).

Кроме того, можно использовать команду проверки свободного места на всех примонтированных ресурсах:

Информация
df

Автоматически монтируем ресурс

Чтобы ресурс NFS монтировался автоматически после каждой перезагрузки, его нужно зарегистрировать в файле /etc/fstab
добавив строчку вида

Информация
192.168.1.10:/nfsshare/    /mnt/share nfs rw,sync,hard,intr 0 0

Автоматически монтируем ресурс по запросу

Конфигурация автоматического монтирования хранится в файле /etc/auto.master

Монтируем с использованием autofs ресурс из предыдущего примера 192.168.1.10:/nfsshare/ в ранее созданную точку монтирования /mnt/share

Добавим в конец файла /etc/auto.master строку: 

Информация
/mnt /etc/auto.nfs --timeout=60

timeout указывать не обязательно, таймаут в autofs по умолчанию 300 секунд (5 минут), то есть ресурс будет автоматически отмонтирован после 5 минут бездействия.

Создадим файл /etc/auto.nfs.
Этоn файл должен содержать отдельную строку для каждого ресурса NFS
Формат строки:  {точка_монтирования} [{опции_монитирования}] {адрес_ресурса}.
Точки монтирования будут размещаться в катклоге, указанном в /etc/auto.master:


Информация

share -fstype=nfs4,rw,soft,intr 192.168.1.10:/srv/homes

Где

  • share – точка монтирования (/mnt/share)
  • -fstype=nfs4,rw,soft,intr – опции монтирования
  • 192.168.1.10:/nfsshare– адрес ресурса

Это создаст новую точку автоматического монтирования /mnt/share/  для ресурса /srv/homts/, экспортируемого “192.168.1.10”

После внесения изменений перезапустить сервис:

Информация
systemctl restart autofs

...