Монтирование NFS

Монтирование NFS


Классическая сетевая файловая система - NFS (расшифровывается как Network File System). Это протокол, разработанный Sun для UNIX в начале 1980-х годов, и он всегда был доступен в Linux. Его цель - сделать возможным монтировать удаленные файловые системы в иерархию локальной файловой системы.

Общий ресурс NFS экспортируется сервером NFS. Формат общего ресурса: server-name:/sharename. Таким образом, если на сервере ipa.example.com каталог /data являются общими, клиент NFS может подключить их как ipa.example.com:/data. Полная команда для временного монтирования общего ресурса в каталоге /mnt в этом случае - mount ipa.example.com:/data /mnt.

В CentOS 7 NFS 4 является версией NFS по умолчанию. Эта версия NFS предоставляет функцию, известную как псевдо-корневое монтирование. Это лучше всего объяснить на примере. Итак, предположим, что сервер NFS labipa.example.com экспортирует три разных каталога: /data, /srv и /home. Далее предположим, что у вас есть права доступа ко всем трем. Если это так, вы можете смонтировать все три из них по отдельности. Однако псевдо-корневое монтирование позволяет вам монтировать корневой каталог на NFS-сервере, что даст доступ ко всем трем экспортируемым общим ресурсам.

Команда для монтирования псевдо-корня: mount ipa.example.com:/ / mnt. Таким образом, вы должны смонтировать корневой каталог, даже если он не был специально открыт для общего доступа.

Параметры безопасности NFS

По умолчанию безопасность NFS ограничена. На общем ресурсе NFS безопасность разрешена или запрещена на основе имени хоста, который хочет получить доступ к общему ресурсу. Если имя хоста разрешено, общий ресурс может быть смонтирован и доступен пользователям из клиента NFS. Когда клиент получает доступ к общему ресурсу NFS, сервер NFS по умолчанию сопоставляет UID пользователя клиента с тем же UID на сервере NFS. Это может привести к неожиданным результатам.

Если на сервере NFS у пользователя user1 есть UID 505, а на клиенте пользователя user2 есть UID 505, например, user2 получит доступ к общему ресурсу NFS как UID 505, который сопоставлен с UID user1 на сервере. Таким образом, user2 будет иметь доступ ко всем файлам, к которым user1 имеет доступ на сервере.

Чтобы избежать неожиданных сюрпризов, когда NFS используется для обеспечения доступа пользователей к файлам, рекомендуется использовать центральный механизм для обеспечения проверки подлинности. Это может быть сервер LDAP, такой как служба FreeIPA. Если все серверы, являющиеся частью конфигурации NFS, используют один и тот же сервер LDAP, вы точно знаете, что проблемы с отображением UID предотвращены.

Чтобы указать, как обрабатывается защита, при монтировании можно использовать разные параметры безопасности, используя опцию монтирования sec=method.

В таблице приведены параметры безопасности по умолчанию.
none


Доступ к файлам является анонимным и сопоставляется с UID и GID пользователя nfsnobody. Запись разрешена только в том случае, если nfsnobody имеет доступ для записи.
sys


Доступ к файлу основан на значениях UID и GID на клиенте и их сопоставлении с идентификаторами, используемыми на сервере. Это значение по умолчанию.
krb5Клиенты должны подтвердить свою личность, используя Kerberos. После этого применяются разрешения Linux.

krb5iПодобно krb5, но добавляет гарантию, что данные в запросе не были подделаны.

krb5pПодобно krb5i, но добавляет шифрование к каждому запросу. Это имеет самый высокий уровень защиты, но оказывает негативное влияние на производительность.


Требования Kerberos

Для настройки монтирования Kerberos необходимы некоторые дополнительные сервисы:
  • Файл keytab с именем /etc/krb5.keytab. Этот файл содержит учетные данные клиента, которые клиент NFS может использовать для присоединения к среде Kerberos. Эта таблица ключей должна быть настроена для клиента и содержать основной узел, основной NFS или, что еще лучше, оба.
  • На клиенте должна быть запущена служба nfs-secure.

Монтирование NFS

Чтобы смонтировать общий ресурс NFS, сначала нужно найти имена общих ресурсов. Эта информация может быть предоставлена администратором, но это также можно узнать самостоятельно. Чтобы узнать, какие шары доступны, у вас есть несколько вариантов:
  • Если на сервере используется NFSv4, вы можете использовать root-монтирование. Это означает, что вы просто монтируете корневой каталог NFS-сервера, а в точке монтирования вы увидите только те общие ресурсы, к которым у вас есть доступ.
  • Используйте netstat -an | grep your.nfs.server.ip:port для проверки доступности монтирования.
  • Используйте команду showmount -e nfsserver, чтобы узнать, какие общие ресурсы доступны.


1. На сервере используйте yum install -y nfs-utils, чтобы установить пакет RPM, содержащий утилиту showmount.
2. Введите showmount -e IP_ADDRESS. Если на сервере включен брандмауэр, то скорее всего вы получите сообщение об ошибке "port mapper failure - Unable to receive: errno 113 (No route to host)".
3. Войдите как root на сервер, где находятся расшаренные директории. Наберите systemctl stop firewalld и повторите шаг 2. Обратите внимание, что теперь у вас есть доступ. Введите systemctl start firewalld снова, чтобы включить брандмауэр.
4. Теперь введите mount IP_ADDRESS:/ /mnt. (Обратите внимание на расстояние между слешами в команде.) При этом выполняется псевдо-корневое монтирование NFSv4 всех общих ресурсов NFS.
5. Введите mount | grep 122, чтобы проверить, что монтирование прошло успешно.


Монтирование общих ресурсов NFS через fstab

Как вы должны знать, файл /etc/fstab используется для монтирования файловых систем, которые необходимо монтировать автоматически при перезапуске сервера. Только пользователь root может добавлять монтирования в этот файл конфигурации, предоставляя таким образом общие ресурсы, которые будут доступны для всех пользователей. Файл /etc/fstab можно использовать для монтирования файловой системы NFS, а также Samba. Чтобы смонтировать файловую систему NFS через /etc/fstab, убедитесь, что включена следующая строка:

При выполнении монтирования NFS через fstab у вас есть несколько вариантов:
В первом столбце необходимо указать сервер и имя общего ресурса. Используйте двоеточие после имени сервера, чтобы идентифицировать монтирование как общий ресурс NFS.

Второй столбец содержит файловую систему, в которую вы хотите выполнить монтирование; это ничем не отличается от любого обычного монтирования.

Третий столбец содержит тип файловой системы NFS.

Четвертый столбец, используемый для указания параметров монтирования, включает параметр синхронизации. Это гарантирует, что измененные файлы будут немедленно переданы в удаленную файловую систему и не будут помещены в буферы записи первыми (что увеличит риск потери данных).

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

Шестой столбец также содержит ноль, чтобы указать, что в этой файловой системе не нужно выполнять fsck при загрузке для проверки целостности файловой системы. Целостность файловой системы должна проверяться на сервере, а не на клиенте.

Добавить комментарий