Android

Как установить и настроить сервер NFS на Centos 8

whatsaper ru Недетские анекдоты про Вовочку

whatsaper ru Недетские анекдоты про Вовочку

Оглавление:

Anonim

Сетевая файловая система (NFS) - это протокол распределенной файловой системы, который позволяет вам совместно использовать удаленные каталоги по сети. С помощью NFS вы можете монтировать удаленные каталоги в вашей системе и работать с файлами на удаленном компьютере, как если бы они были локальными файлами.

Протокол NFS по умолчанию не шифруется и, в отличие от Samba, не обеспечивает аутентификацию пользователя. Доступ к серверу ограничен IP-адресами клиентов или именами хостов.

В этом руководстве вы пройдете шаги, необходимые для настройки сервера NFSv4 в CentOS 8. Мы также покажем вам, как смонтировать файловую систему NFS на клиенте.

Предпосылки

Мы предполагаем, что у вас есть сервер под управлением CentOS 8, на котором мы настроим сервер NFS и другие машины, которые будут действовать как клиенты NFS. Сервер и клиенты должны иметь возможность общаться друг с другом через частную сеть. Если ваш хостинг-провайдер не предлагает частные IP-адреса, вы можете использовать общедоступные IP-адреса и настроить брандмауэр сервера так, чтобы трафик на порт 2049 только из надежных источников.

Машины в этом примере имеют следующие IP-адреса:

NFS Server IP: 192.168.33.148 NFS Clients IPs: From the 192.168.33.0/24 range

Настройте сервер NFS

В этом разделе объясняется, как установить необходимые пакеты, создать и экспортировать каталоги NFS и настроить брандмауэр.

Установка сервера NFS

Пакет «nfs-utils» предоставляет утилиты и демоны NFS для сервера NFS. Для его установки выполните следующую команду:

sudo dnf install nfs-utils

После завершения установки включите и запустите службу NFS, введя:

sudo systemctl enable --now nfs-server

По умолчанию в CentOS 8 NFS версии 3 и 4.x включены, версия 2 отключена. NFSv2 сейчас довольно старый, и нет никаких причин для его включения. Чтобы проверить это, выполните следующую команду cat :

sudo cat /proc/fs/nfsd/versions

-2 +3 +4 +4.1 +4.2

/etc/nfsmount.conf конфигурации сервера NFS задаются в /etc/nfsmount.conf и /etc/nfs.conf . Настройки по умолчанию достаточны для нашего урока.

Создание файловых систем

При настройке сервера NFSv4 рекомендуется использовать глобальный корневой каталог NFS и привязать фактические каталоги к точке подключения общего ресурса. В этом примере мы будем использовать директорию /srv/nfs4 качестве корня NFS.

Чтобы лучше объяснить, как можно настроить монтирование NFS, мы собираемся использовать две директории ( /var/www и /opt/backups ) с разными настройками конфигурации.

/var/www/ принадлежит пользователю, а группа apache и /opt/backups принадлежат пользователю root .

Создайте файловую систему экспорта с помощью команды mkdir :

sudo mkdir -p /srv/nfs4/{backups, www}

Смонтируйте фактические каталоги:

sudo mount --bind /opt/backups /srv/nfs4/backups sudo mount --bind /var/www /srv/nfs4/www

Чтобы сделать привязки монтируемыми, добавьте следующие записи в файл /etc/fstab :

sudo nano /etc/fstab / И т.д. / Fstab

/opt/backups /srv/nfs4/backups none bind 0 0 /var/www /srv/nfs4/www none bind 0 0

Экспорт файловых систем

Следующим шагом является определение файловых систем, которые будут экспортированы сервером NFS, параметров общего ресурса и клиентов, которым разрешен доступ к этим файловым системам. Для этого откройте файл /etc/exports :

sudo nano /etc/exports

Экспортируйте каталоги www и backups и разрешите доступ только клиентам в сети 192.168.33.0/24 :

/ и т.д. / экспорта

/srv/nfs4 192.168.33.0/24(rw, sync, no_subtree_check, crossmnt, fsid=0) /srv/nfs4/backups 192.168.33.0/24(ro, sync, no_subtree_check) 192.168.33.3(rw, sync, no_subtree_check) /srv/nfs4/www 192.168.33.110(rw, sync, no_subtree_check)

Первая строка содержит 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 в вашем терминале.

Сохраните файл и экспортируйте общие ресурсы:

sudo exportfs -ra

Вы должны запускать приведенную выше команду каждый раз, когда вы изменяете файл /etc/exports . Если есть какие-либо ошибки или предупреждения, они будут показаны на терминале.

Чтобы просмотреть текущий активный экспорт и его состояние, используйте:

sudo exportfs -v

Вывод будет включать все акции с их опциями. Как видите, есть также опции, которые мы не определили в /etc/exports . Это параметры по умолчанию, и если вы хотите изменить их, вам нужно явно установить эти параметры.

/srv/nfs4/backups 192.168.33.3(sync, wdelay, hide, no_subtree_check, sec=sys, rw, secure, root_squash, no_all_squash) /srv/nfs4/www 192.168.33.110(sync, wdelay, hide, no_subtree_check, sec=sys, rw, secure, root_squash, no_all_squash) /srv/nfs4 192.168.33.0/24(sync, wdelay, hide, crossmnt, no_subtree_check, fsid=0, sec=sys, rw, secure, root_squash, no_all_squash) /srv/nfs4/backups 192.168.33.0/24(sync, wdelay, hide, no_subtree_check, sec=sys, ro, secure, root_squash, no_all_squash)

root_squash является одним из наиболее важных параметров безопасности NFS. Он не позволяет корневым пользователям, подключенным с клиентов, иметь права root на подключенных общих ресурсах. Он сопоставит UID и GID root nobody / nogroup UID / GID .

Чтобы пользователи на клиентских компьютерах имели доступ, NFS ожидает, что идентификаторы пользователя и группы клиента совпадают с идентификаторами на сервере. Другой вариант - использовать функцию отображения NFSv4, которая переводит идентификаторы пользователей и групп в имена и наоборот.

Вот и все. На этом этапе вы настроили сервер NFS на вашем сервере CentOS. Теперь вы можете перейти к следующему шагу, настроить клиентов и подключиться к серверу NFS.

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

FirewallD является решением брандмауэра по умолчанию в Centos 8.

Служба NFS включает в себя предопределенные правила для доступа к серверу NFS.

Следующие команды будут постоянно разрешать доступ из подсети 192.168.33.0/24 :

sudo firewall-cmd --new-zone=nfs --permanent sudo firewall-cmd --zone=nfs --add-service=nfs --permanent sudo firewall-cmd --zone=nfs --add-source=192.168.33.0/24 --permanent sudo firewall-cmd --reload

Настройка клиентов NFS

Теперь, когда сервер NFS настроен и общие ресурсы экспортированы, на следующем шаге настройте клиенты и подключите удаленные файловые системы.

Вы также можете смонтировать общий ресурс NFS на компьютерах MacOS и Windows, но мы сосредоточимся на системах Linux.

Установка клиента NFS

На клиентских компьютерах установите инструменты, необходимые для монтирования удаленных файловых систем NFS.

  • Установите клиент NFS в Debian и Ubuntu

    Имя пакета, включающего программы для монтирования файловых систем NFS в дистрибутивах на основе Debian, является nfs-common . Чтобы установить его, запустите:

    sudo apt update sudo apt install nfs-common

    Установите клиент NFS в CentOS и Fedora

    В Red Hat и ее производных установите пакет nfs-utils :

    sudo yum install nfs-utils

Монтирование файловых систем

Мы будем работать на клиентском компьютере с IP 192.168.33.110 , который имеет доступ для чтения и записи к файловой системе /srv/nfs4/www и доступ только для чтения к файловой системе /srv/nfs4/backups .

Создайте две новые директории для точек монтирования. Вы можете создавать эти каталоги в любом месте, которое вы хотите.

sudo mkdir -p /backups sudo mkdir -p /srv/www

Смонтируйте экспортированные файловые системы с помощью команды mount :

sudo mount -t nfs -o vers=4 192.168.33.148:/backups /backups sudo mount -t nfs -o vers=4 192.168.33.148:/www /srv/www

Где 192.168.33.148 - IP-адрес сервера NFS. Вы также можете использовать имя хоста вместо IP-адреса, но оно должно быть разрешено клиентским компьютером. Обычно это делается путем сопоставления имени хоста с IP в /etc/hosts .

При монтировании файловой системы NFSv4 вам нужно пропустить корневой каталог NFS, поэтому вместо /srv/nfs4/backups вам нужно использовать /backups .

Убедитесь, что удаленные файловые системы успешно смонтированы, используя команду mount или df :

df -h

Команда напечатает все смонтированные файловые системы. Последние две строки являются смонтированными долями:

… 192.168.33.148:/backups 9.7G 1.2G 8.5G 13% /backups 192.168.33.148:/www 9.7G 1.2G 8.5G 13% /srv/www

Чтобы сделать монтирование постоянным при перезагрузке, откройте файл /etc/fstab :

sudo nano /etc/fstab

и добавьте следующие строки:

/ И т.д. / Fstab

192.168.33.148:/backups /backups nfs defaults, timeo=900, retrans=5, _netdev 0 0 192.168.33.148:/www /srv/www nfs defaults, timeo=900, retrans=5, _netdev 0 0

Чтобы узнать больше информации о доступных опциях при монтировании файловой системы NFS, введите man nfs в своем терминале.

Другой вариант для монтирования удаленных файловых систем - использовать инструмент autofs или создать системный модуль.

Тестирование NFS Access

Давайте проверим доступ к общим ресурсам, создав новый файл в каждом из них.

Сначала попробуйте создать тестовый файл в каталоге /backups с помощью touch команды:

sudo touch /backups/test.txt

Файловая система /backup экспортируется только для чтения, и, как ожидается, вы увидите сообщение об ошибке « Permission denied доступе»:

touch: cannot touch '/backups/test': Permission denied

Затем попробуйте создать тестовый файл в каталоге /srv/www как root с помощью команды sudo :

sudo touch /srv/www/test.txt

Снова вы увидите сообщение « Permission denied доступе».

touch: cannot touch '/srv/www': Permission denied

Каталог /var/www принадлежит пользователю apache , и в этом общем ресурсе установлена ​​опция root_squash , которая отображает пользователя root в группу nobody и nogroup , у которой нет прав на запись в удаленный общий ресурс.

Предполагая, что пользовательский apache существует на клиентском компьютере с теми же UID и GID что и на удаленном сервере (что должно быть в случае, если, например, вы установили apache на обеих машинах), вы можете протестировать создание файла в качестве пользовательского apache с:

sudo -u apache touch /srv/www/test.txt

Команда не будет отображать вывод, что означает, что файл был успешно создан.

Для проверки перечислите файлы в каталоге /srv/www :

ls -la /srv/www

Выходные данные должны показать вновь созданный файл:

drwxr-xr-x 3 apache apache 4096 Jun 23 22:18. drwxr-xr-x 3 root root 4096 Jun 23 22:29.. -rw-r--r-- 1 apache apache 0 Jun 23 21:58 index.html -rw-r--r-- 1 apache apache 0 Jun 23 22:18 test.txt

Размонтирование файловой системы NFS

sudo umount /backups

Если точка монтирования определена в /etc/fstab , обязательно удалите строку или закомментируйте ее, добавив # в начале строки.

Вывод

В этом руководстве мы показали, как настроить сервер NFS и как монтировать удаленные файловые системы на клиентских компьютерах. Если вы внедряете NFS в производство и делитесь разумными данными, рекомендуется включить аутентификацию Kerberos.

В качестве альтернативы NFS вы можете использовать SSHFS для монтирования удаленных каталогов через SSH-соединение. SSHFS зашифрован по умолчанию и намного проще в настройке и использовании.

Не стесняйтесь оставлять комментарии, если у вас есть какие-либо вопросы.

терминал для установки Centos NFS