- Установка и настройка NFS-сервера и клиента в CentOS/RHEL
- Установка и настройка NFS-сервера в Linux CentOS
- Настройка клиента NFS в CentOS
- Установка NFS сервера на CentOS 7
- Установка и настройка серверной части NFS service
- Установка и настройка клиента NFS
- Как установить и настроить сервер 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 7
Установка и настройка серверной части NFS service
В рамках данной заметки рассмотрим процесс установки NFS сервера в локальной сети на базе Linux CentOS 7. Данная файловая шара мне потребовалась для работы с XenServer 6.5 (установка ОС на виртуальные машины с ISO NFS library).
Выполняем к командной строке (нужны привилегии супер пользователя) следующие операции. Сначала устанавливает требуемые пакеты:
sudo yum install nfs-utils nfs-utils-lib
Затем включаем установленную службу:
sudo systemctl enable rpcbind
sudo systemctl enable nfs-server
sudo systemctl enable nfs-lock
sudo systemctl enable nfs-idmap
sudo systemctl start rpcbind
sudo systemctl start nfs-server
sudo systemctl start nfs-lock
sudo systemctl start nfs-idmap
После этого переходим к настройке каталога, которые будет использоваться для раздачи контента нашим NFS сервером. Рекомендуется делать NFS шару в “/var/nfs_name”, чтобы не иметь проблем с записью файлов и назначением прав доступа. В моей ситуации по определенным причинам используется каталог “/home/nfs”. Итак, создаем папку и назначаем права доступа:
sudo chmod -R 777 /home/nfs
После этого необходимо добавить в файл “/etc/exports’ информацию о предоставляемой шаре через NFS:
и добавляем строку:
/home/nfs – расшариваемая директория
192.168.10.0/24 – IP адрес клиента (или, как в моем случае, возможность подключения для всей подсети)
rw – разрешение на запись
sync – синхронизация указанной директории
no_root_squash – включение root привилегий
no_all_squash – включение пользовательской авторизации
Выполняем в командной строке exportfs -a ,чтобы подключить этот каталог в список экспортируемых. В завершение настройки NFS сервера перезапускаем его:
sudo systemctl restart nfs-server
Теперь добавляем (открываем) порты NFS сервера в брандмауэре (firewalld) для корректной работы в сети:
firewall-cmd –permanent –add-port=54302/tcp
firewall-cmd –permanent –add-port=20048/tcp
firewall-cmd –permanent –add-port=2049/tcp
firewall-cmd –permanent –add-port=46666/tcp
firewall-cmd –permanent –add-port=42955/tcp
firewall-cmd –permanent –add-port=875/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
Готово! Установка и настройка NFS сервера на CentOS 7 завершена.
Установка и настройка клиента NFS
В завершении данной заметки рассмотрим процесс настройки клиента для подключения (работы) с развернутым ранее NFS сервером. В моем случае, чаще всего клиентом будет какой-либо хост виртуализации (например, VMware ESXi или Xen Server) и его установка и настройка не требуется. Только необходимо запустить мастер подключения и указать параметры подключения. Для других сервисов или серверов выполняем следующие команды:
sudo yum install nfs-utils nfs-utils-lib
Включаем сервис и активируем автозагрузку:
systemctl enable nfs-server
systemctl enable nfs-lock
systemctl enable nfs-idmap
systemctl start rpcbind
systemctl start nfs-server
systemctl start nfs-lock
systemctl start nfs-idmap
Создаем каталог, куда будем монтировать шару:
sudo mkdir /media/nfs_share
mount -t nfs 192.168.10.101:/home/nfs/ /media/nfs_share/
Добавление автомонтирования при включение системы:
Проверяем, что все примонтировалось правильно:
Нашли ошибку в тексте? Выделите фрагмент текста и нажмите Ctrl+Enter
Источник
Как установить и настроить сервер 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 зашифрован по умолчанию и намного проще в настройке и использовании.
Источник