Linux nfs server centos

Установка и настройка 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

Читайте также:  Как переустановить mac os через терминал

Теперь на клиенте, нужно создать директорию, в которую мы смонтируем 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 вы можете монтировать удаленные каталоги в вашей системе и работать с файлами на удаленном компьютере, как если бы они были локальными файлами.

Читайте также:  Командные файлы windows задержка

Протокол 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.

Читайте также:  Autocad 2007 установить windows 10

Конфигурация брандмауэра

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 зашифрован по умолчанию и намного проще в настройке и использовании.

Источник

Оцените статью