- Установка и настройка NFS-сервера и клиента в CentOS/RHEL
- Установка и настройка NFS-сервера в Linux CentOS
- Настройка клиента NFS в CentOS
- Монтирование директорий используя NFS в CentOS
- Шаг 1. Установка NFS
- Шаг 2. Настройка
- Шаг 3. Настройка клиента
- Шаг 4. Монтирование директорий
- Как установить и настроить сервер NFS в CentOS 8
- How to Install and Configure an NFS Server on CentOS 8
- В этой статье вы найдете руководство по настройке сервера NFSv4 в CentOS 8, а также узнаете, как смонтировать файловую систему NFS на клиенте.
- Настройте сервер NFS
- Установка сервера NFS
- Создание файловых систем
- Экспорт файловых систем
- Конфигурация брандмауэра
- Настройка клиентов NFS
- Установка клиента NFS
- Монтирование файловых систем
- Тестирование NFS Access
- Размонтирование файловой системы NFS
- Вывод
Установка и настройка NFS-сервера и клиента в CentOS/RHEL
Network File System (NFS) – протокол распределенной файловой системы для организации общего доступа к файлам и папками. За основу в NFS взят протокол удаленных процедур (ONC RPC). NFS позволяет монтировать удаленные файловые системы по сети сеть. В отличии от FTP, NFS позволяет получить доступ только к тем частям файла, к которым обратился процесс. Имейте в виду, что данные в протоколе NFS по умолчанию не шифруются, и аутентификация клиентов не выполняется (доступ ограничивается по IP).
NFS очень прост в настройке, как со стороны сервера, так и со стороны клиента. В данной статье мы рассмотрим установку и настройку NFS-сервера и после чего, подключим NFS ресурс на клиенте. В этой статье для примера использования технологии NFS мы используем CentOS 8. В других Linux дистрибутивах (RHEL, Fedora и т.д.) все действия аналогичны.
Установка и настройка NFS-сервера в Linux CentOS
По умолчанию nfs уже установлен в CentOS 8 с пакетом Standard. Если вы удалили компоненты NFS, или ставили сервер в режиме Minimal Install, можно установить пакет NFS с помощью пакетного менеджера yum (dnf):
# yum install nfs-utils -y
# dnf install nfs-utils -y
У меня пакет уже был установлен:
После установки нужных пакетов, нужно запустить службы nfs-server и rpcbind, добавьте их в автозагрузку:
Если у вас в системе установлен firewalld откройте необходимые порты:
# firewall-cmd —permanent —add-port=111/tcp
# firewall-cmd —permanent —add-port=20048/tcp
# firewall-cmd —permanent —zone=public —add-service=nfs
# firewall-cmd —permanent —zone=public —add-service=mountd
# firewall-cmd —permanent —zone=public —add-service=rpc-bind
# firewall-cmd —reload
# iptables -t filter -A INPUT -p tcp —dport 111 -j ACCEPT
# iptables -t filter -A INPUT -p tcp —dport 2049 -j ACCEPT
# iptables -t filter -A INPUT -p tcp —dport 20048 -j ACCEPT
# service iptables save
# service iptables restart
Теперь создадим директорию, которая будет раздаваться вашим NFS сервером:
# mkdir -p /backup/nfs
# chmod -R 777 /backup/nfs
Теперь в конфигурационном файле с настройками NFS сервера (/etc/exports) нужно опубликовать данный каталог и назначить права доступа.
Добавьте в файл следующую строку для предоставления доступа к NFS всем хостам в указанной IP подсети:
Или можно ограничить доступ для конкретного IP:
Рассмотрим более подробно формат предоставления прав к NFS каталогу:
- rw – права на запись в каталоге, ro – доступ только на чтение;
- sync – синхронный режим доступа. async – подразумевает, что не нужно ожидать подтверждения записи на диск (повышает производительность NFS, но уменьшает надежность);
- no_root_squash – разрешает root пользователю с клиента получать доступ к NFS каталогу (обычно не рекомендуется);
- no_all_squash — включение авторизации пользователя. all_squash – доступ к ресурсам от анонимного пользователя;
- no_subtree_check – отключить проверку, что пользователь обращается в файлу в определенном каталоге (subtree_check – используется по умолчанию);
- anonuid, anongid – сопоставить NFS пользователю/группу указанному локальному пользователю/группе(UID и GID).
Чтобы применить новые настройки NFS каталогов, выполните:
И перезапустите nfs-сервер:
# systemctl restart nfs-server
На этом установка и настройка nfs-сервера закончена и можно приступить к настройке клиента.
Настройка клиента NFS в CentOS
Для настройки NFS клиента, нужно также установить пакет nfs-utils. Для CentOS 7:
# yum install nfs-utils -y
# dnf install nfs-utils -y Добавляем сервисы в автозагрузку и включаем:
# systemctl enable rpcbind
# systemctl enable nfs-server
# systemctl start rpcbind
# systemctl start nfs-server
Теперь на клиенте, нужно создать директорию, в которую мы смонтируем nfs-каталог:
Теперь можно смонтировать удаленное NFS-хранилище командой:
# mount -t nfs 192.168.0.100:/backup/nfs/ /backup
можно принудительно указать версию NFS протокола, которую нужно использовать
# mount -t nfs -o vers=4 192.168.0.100:/backup/nfs/ /backup
Где IP — это адрес NFS-сервера, который вы настроили ранее.
Теперь Теперь в списке перемонтированных разделов диска отображается подключенный NFS ресурс с удаленного сервере. Вы можете читать данные из этого каталога, или записывать в него (в зависимости от прав, которые назначены для вашего IP на NFS сервере). Чтобы NFS каталог автоматически монтировался при перезагрузке, нужно открыть файл fstab:
И добавьте строку:
После сохранения файла fstab, можно применить его командой:
Итак, мы настроили и подключили удаленное NFS хранилище, которое можно использовать для прозрачного сетевого доступа к общему ресурсу с различных хостов. Можно складывать в NFS каталог бэкапы, хранить там файлы ISO образов и т.д.
Источник
Монтирование директорий используя NFS в CentOS
Монтирование файловых систем по NFS, что позволяет расшаривать директории нескольких серверов между друг другом.
Шаг 1. Установка NFS
Master Server: 192.168.2.1
Client Server: 192.168.2.10
Установим необходимые пакеты:
Добавим в автозагрузку и запустим:
Шаг 2. Настройка
Определим какую директорию будем расшаривать на клиентский сервер и указываем её в файле /etc/exports
Например мы хотим расшарить папку /storage
rw : Данная опция позволяет производить чтение и запись в выбранный каталог
sync : Синхронный режим работы, ответы на запросы происходят только после того, как данные надежно будут
записаны на диск. Надежность выше, производительность меньше.
no_subtree_check : Если экспортируется подкаталог файловой системы, но не вся файловая система, сервер проверяет, находится ли запрошенный файл в экспортированном подкаталоге. Отключение проверки уменьшает безопасность, но увеличивает скорость передачи данных.
no_root_squash : — root (uid0) на стороне клиента, выглядит как nobody (uid 65534) на стороне сервера, это называется смещением root т.к. позволяет защитить файлы, владельцом которых является root от изменений клиентами NFS. Опция no_root_squash : отменяет такое поведение, и позволяет пользователю root (на стороне клиента) иметь доверенный полный доступ к разделу. Данная опция может использоваться только в случае доверия.
Также (опционально):
async — Асинхронный режим работы, ответы на запросы происходят сразу, не дожидаясь записи на диск. Надежность ниже, производительность больше.
proto=(tcp|udp) — выбор протокола, по умолчанию — первый доступный из /etc/netconfig .
ro — Права только на чтение. Можно и не указывать, так как она установлена по умолчанию.
После того, как были внесены изменения запускаем команду:
Шаг 3. Настройка клиента
Установим дополнительные пакеты:
Шаг 4. Монтирование директорий
Создаем папку для монтируемой директории:
Выполним df -h для проверки маунта
Используем команду mount для проверки примонтированных директорий.
Для автоматического монтирования после перезагрузки, добавим запись в /etc/fstab
Источник
Как установить и настроить сервер NFS в CentOS 8
How to Install and Configure an NFS Server on CentOS 8
В этой статье вы найдете руководство по настройке сервера NFSv4 в CentOS 8, а также узнаете, как смонтировать файловую систему NFS на клиенте.
Сетевая файловая система (NFS) — это протокол распределенной файловой системы, который позволяет вам совместно использовать удаленные каталоги по сети. С помощью NFS вы можете монтировать удаленные каталоги в вашей системе и работать с файлами на удаленном компьютере, как если бы они были локальными файлами.
Протокол NFS по умолчанию не шифруется и, в отличие от Samba, не обеспечивает аутентификацию пользователя. Доступ к серверу ограничен IP-адресами клиентов или именами хостов.
На сервере под управлением CentOS 8 мы настроим сервер NFS и другие машины, которые будут действовать как клиенты NFS. Сервер и клиенты должны иметь возможность общаться друг с другом через частную сеть. Если ваш хостинг-провайдер не предлагает частные IP-адреса, вы можете использовать общедоступные IP-адреса и настроить брандмауэр сервера так, чтобы трафик на порт 2049 передавался только из надежных источников.
Машины в этом примере имеют следующие IP-адреса:
Настройте сервер NFS
Теперь рассмотрим, как установить необходимые пакеты, создать и экспортировать каталоги NFS и настроить брандмауэр.
Установка сервера NFS
Пакет «nfs-utils» предоставляет утилиты и демоны NFS для сервера NFS. Для его установки выполните следующую команду:
После завершения установки включите и запустите службу NFS, введя:
По умолчанию в CentOS 8 NFS версии 3 и 4.x включены, версия 2 отключена. NFSv2 сейчас довольно старый, и нет никаких причин для его включения. Чтобы проверить это, выполните следующую cat команду:
Параметры конфигурации сервера NFS установлены в /etc/nfsmount.conf и /etc/nfs.conf файлы. На данном этапе подойдут настройки по умолчанию.
Создание файловых систем
При настройке сервера NFSv4 рекомендуется использовать глобальный корневой каталог NFS и привязать фактические каталоги к точке подключения общего ресурса. В этом примере мы будем использовать /srv/nfs4 директор в качестве корня NFS.
Чтобы лучше объяснить, как можно настроить монтирование NFS, мы собираемся использовать два каталога ( /var/www и /opt/backups ) с разными настройками конфигурации.
Это /var/www/ принадлежит пользователю и группе apache и /opt/backups принадлежит root .
Создайте файловую систему экспорта с помощью mkdir команды:
Смонтируйте фактические каталоги:
Чтобы сделать привязку монтируемой постоянной, добавьте в /etc/fstab файл следующие записи :
Экспорт файловых систем
Следующим шагом является определение файловых систем, которые будут экспортированы сервером NFS, параметров общего ресурса и клиентов, которым разрешен доступ к этим файловым системам. Для этого откройте /etc/exports файл:
Экспорт www и backups каталогов и разрешить доступ только от клиентов по 192.168.33.0/24 сети:
Первая строка содержит fsid=0 каталог, определяющий корневой каталог NFS /srv/nfs . Доступ к этому тому NFS разрешен только клиентам из 192.168.33.0/24 подсети. Этот crossmnt параметр необходим для совместного использования каталогов, которые являются подкаталогами экспортируемого каталога.
Во второй строке показано, как задать несколько правил экспорта для одной файловой системы. Он экспортирует /srv/nfs4/backups каталог и предоставляет доступ только для чтения ко всему 192.168.33.0/24 диапазону, а также для чтения и записи 192.168.33.3 . Опция sync сообщает NFS на изменения записи на диск , прежде чем ответить.
Последняя строка должна быть понятной. Для получения дополнительной информации обо всех доступных опциях введите man exports свой терминал.
Сохраните файл и экспортируйте общие ресурсы:
Вам нужно запускать команду выше каждый раз, когда вы изменяете /etc/exports файл. Если есть какие-либо ошибки или предупреждения, они будут показаны на терминале.
Чтобы просмотреть текущий активный экспорт и его состояние, используйте:
Вывод будет включать все действия с их опциями. Как вы можете видеть, есть также опции, которые мы не определили в /etc/exports файле. Это параметры по умолчанию, и если вы хотите изменить их, вам нужно явно установить эти параметры.
root_squash является одним из наиболее важных параметров безопасности NFS. Он не позволяет корневым пользователям, подключенным с клиентов, иметь права root на подключенных общих ресурсах. Он будет отображать корень UID и GID в nobody / nogroup UID / GID .
Чтобы пользователи на клиентских компьютерах имели доступ, NFS ожидает, что идентификаторы пользователя и группы клиента совпадают с идентификаторами на сервере. Другой вариант — использовать функцию отображения NFSv4, которая переводит идентификаторы пользователей и групп в имена и наоборот.
Вот и все. На этом этапе вы настроили сервер NFS на вашем сервере CentOS. Теперь вы можете перейти к следующему шагу, настроить клиенты и подключиться к серверу NFS.
Конфигурация брандмауэра
FirewallD является решением брандмауэра по умолчанию в Centos 8 .
Служба NFS включает в себя предопределенные правила для доступа к серверу NFS.
Следующие команды будут постоянно разрешать доступ из 192.168.33.0/24 подсети:
Настройка клиентов NFS
Теперь, когда сервер NFS настроен и общие ресурсы экспортированы, на следующем шаге настройте клиенты и подключите удаленные файловые системы.
Вы также можете смонтировать общий ресурс NFS на компьютерах MacOS и Windows, но мы сосредоточимся на системах Linux.
Установка клиента NFS
На клиентских компьютерах установите инструменты, необходимые для монтирования удаленных файловых систем NFS.
Установите клиент NFS в Debian и Ubuntu
Название пакета, включающего программы для монтирования файловых систем NFS в дистрибутивах на основе Debian, — nfs-common . Чтобы установить его, запустите:
Установите клиент NFS в CentOS и Fedora
На Red Hat и ее производных установите nfs-utils пакет:
Монтирование файловых систем
Мы будем работать на клиентском компьютере с IP-адресом 192.168.33.110 , который имеет доступ для чтения и записи к /srv/nfs4/www файловой системе и доступ только для чтения к /srv/nfs4/backups файловой системе.
Создайте две новые директории для точек монтирования. Вы можете создавать эти каталоги в любом месте, которое вы хотите.
Смонтируйте экспортированные файловые системы с помощью mount команды:
Где 192.168.33.148 находится IP-адрес сервера NFS. Вы также можете использовать имя хоста вместо IP-адреса, но оно должно быть разрешено клиентским компьютером. Обычно это делается путем сопоставления имени хоста с IP в /etc/hosts файле.
При монтировании файловой системы NFSv4 вам нужно пропустить корневой каталог NFS, поэтому вместо /srv/nfs4/backups него нужно использовать /backups .
Убедитесь, что удаленные файловые системы успешно смонтированы, используя команду mount или df :
Команда напечатает все смонтированные файловые системы. Последние две строки являются смонтированными долями:
Чтобы сделать монтирование постоянным при перезагрузке, откройте /etc/fstab файл:
и добавьте следующие строки:
Чтобы узнать больше информации о доступных опциях при монтировании файловой системы NFS, введите man nfs свой терминал.
Другой вариант для монтирования удаленных файловых систем — использовать autofs инструмент или создать системный модуль.
Тестирование NFS Access
Давайте проверим доступ к общим ресурсам, создав новый файл в каждом из них.
Сначала попробуйте создать тестовый файл в /backups каталоге с помощью touch команды:
/backup файловая система экспортируется только для чтения, и, как ожидается , вы увидите Permission denied сообщение об ошибке:
Далее попробуйте создать тестовый файл в /srv/www каталоге как корень, используя sudo команду:
Опять вы увидите Permission denied сообщение.
/var/www каталог принадлежат к apache пользователю, и эта доля имеет root_squash вариант набор, который отображает привилегированный пользователь к nobody пользователю и nogroup группе , которая не имеет права записи на удаленный ресурс.
Предполагая, что пользователь apache существует на клиентском компьютере с тем же UID и GID на удаленном сервере (что должно быть в случае, если, например, вы установили apache на обоих компьютерах), вы можете протестировать создание файла как пользователя apache с:
Команда не будет отображать вывод, что означает, что файл был успешно создан.
Для проверки перечислите файлы в /srv/www каталоге:
Выходные данные должны показать вновь созданный файл:
Размонтирование файловой системы NFS
Если вам больше не нужен удаленный общий ресурс NFS, вы можете размонтировать его, как любую другую смонтированную файловую систему, с помощью команды umount. Например, чтобы размонтировать /backup ресурс, который вы запустите:
Если точка монтирования определена в /etc/fstab файле, убедитесь, что вы удалили строку или закомментировали ее, добавив # в начале строки.
Вывод
В этой статье мы показали, как настроить сервер NFS и как монтировать удаленные файловые системы на клиентских компьютерах. Если вы внедряете NFS в производство и делитесь разумными данными, рекомендуется включить аутентификацию Kerberos.
В качестве альтернативы NFS вы можете использовать SSHFS для монтирования удаленных каталогов через SSH-соединение. SSHFS зашифрован по умолчанию и намного проще в настройке и использовании.
Источник