...
Информация |
---|
NFS (сокращение от Network File System, Сетевая Файловая Системa): NFS позволяет монтировать удалённые разделяемые файлы подобно локальным. Существует в двух вариантах:
|
...
Установить сервер nfs и клиент nfs-common можно из графического менеджера пакетов, или из командной строки.
Сервер::
Информацияcommand |
---|
apt install nfs-kernel-server |
Клиент:
Информацияcommand |
---|
apt install nfs-common |
Дополнительно, можно установить пакет "монтирования ресурсов NFS по запросу", позволяющий монтировать ресурсы только при обращениях к ним:
Информацияcommand |
---|
apt install autofs |
Настройка сервера
...
И нужно выделить ресурс, который в дальнейшем станет разделяемым.
Для примера создадим каталог /nfsshare и выставим для него полный доступ на чтение и запись:
Информацияcommand |
---|
mkdir /nfsshare && chmod 777 /nfsshare |
...
Для нормального запуска и возобновления работы сервиса после перезагрузки компьютера
после установки пакета нужно внести изменения в его UNIT-файл
/etc/systemd/system/multi-user.target.wants/nfs-server.service
добавив следующие строки в секцию unit:
Информацияcommand |
---|
[Unit] |
...
После чего перезапустить сервис:
Информацияcommand |
---|
service nfs-kernel-server restart |
...
- (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 |
---|
exportfs -ra |
(подробности по возможностям команды см. man exportfs)
...
Предупреждение | ||
---|---|---|
проверяйте все настроенные общие ресурсы NFS с помощью команды showmount:
|
- Не используйте параметр no_root_squash. По умолчанию, в общих ресурсах NFS пользователь root становится обычным пользователем nfsnobody.
Таким образом, владельцем всех файлов, созданных root, становится nfsnobody, что предотвращает загрузку на сервер программ с установленным битом setuid.
Если указан параметр no_root_squash, удалённые пользователи root могут изменить любой файл в разделяемой файловой системе и оставить для других пользователей троянские приложения.
...
Список доступных ресурсов можно проверить, выполнив команду:
Информацияcommand |
---|
showmount -e 192.168.1.10 Export list for 192.168.1.10: |
...
Чтобы примонтировать разделяемый ресурс, создадим на клиентской машине каталог /share:
Информацияcommand |
---|
mkdir /mnt/share |
И используем команду mount для монтирования разделяемого каталога /nfsshare с сервера NFS (192.168.1.10) в каталог /mnt/share на клиантском компьютере:
Информацияcommand |
---|
mount 192.168.1.10:/nfsshare /mnt/share |
Для проверки монтирования можно использовать команду
Информацияcommand |
---|
mount | grep nfs |
которая выдаст строку (строки) с информацией о примонтированном ресурсе (ресурсах).
Кроме того, можно использовать команду проверки свободного места на всех примонтированных ресурсах:
Информацияcommand |
---|
df |
Автоматически монтируем ресурс
...