whatsaper ru ÐедеÑÑкие анекдоÑÑ Ð¿Ñо ÐовоÑкÑ
Оглавление:
- Предпосылки
- Настройте сервер NFS
- Установка сервера NFS
- Создание файловых систем
- Экспорт файловых систем
- Конфигурация брандмауэра
- Настройка клиентов NFS
- Установка клиента NFS
- Монтирование файловых систем
- Тестирование NFS Access
- Размонтирование файловой системы NFS
- Вывод
Сетевая файловая система (NFS) - это протокол распределенной файловой системы, который позволяет вам совместно использовать удаленные каталоги по сети. С помощью NFS вы можете монтировать удаленные каталоги в вашей системе и работать с файлами на удаленном компьютере, как если бы они были локальными файлами.
Протокол NFS по умолчанию не шифруется и, в отличие от Samba, не обеспечивает аутентификацию пользователя. Доступ к серверу ограничен IP-адресами клиентов или именами хостов.
В этом уроке мы рассмотрим, как настроить сервер NFSv4 в Ubuntu 18.04. Мы также покажем вам, как смонтировать файловую систему NFS на клиенте.
Предпосылки
В этом примере предполагается, что один сервер работает под управлением Ubuntu 18.04, а другой - под любым другим дистрибутивом Linux. Сервер и клиенты должны иметь возможность общаться друг с другом через частную сеть. Если ваш хостинг-провайдер не предлагает частные IP-адреса, вы можете использовать общедоступные IP-адреса и настроить брандмауэр сервера так, чтобы трафик на порт
2049
только из надежных источников.
Машины в этом примере имеют следующие IP-адреса:
NFS Server IP: 192.168.33.10 NFS Clients IPs: From the 192.168.33.0/24 range
Настройте сервер NFS
Начнем с установки и настройки сервера NFS.
Установка сервера NFS
Обновите индекс пакетов и установите пакет NFS-сервера:
sudo apt update
sudo apt install nfs-kernel-server
После завершения установки службы NFS запустятся автоматически.
По умолчанию в Ubuntu 18.04 NFS версии 2 отключена. Версии 3 и 4 включены. Вы можете убедиться в этом, выполнив следующую команду
cat
:
sudo cat /proc/fs/nfsd/versions
-2 +3 +4 +4.1 +4.2
NFSv2 сейчас довольно старый, и нет никаких причин для его включения.
Параметры конфигурации сервера NFS задаются в
/etc/default/nfs-kernel-server
и
/etc/default/nfs-common
. В нашем случае достаточно настроек по умолчанию.
Создание файловых систем
При настройке сервера NFSv4 рекомендуется использовать глобальный корневой каталог NFS и связать подключенные фактические каталоги с точкой подключения общего ресурса. В этом примере мы будем использовать директорию
/srv/nfs4
качестве корня NFS.
Мы собираемся совместно использовать две директории (
/var/www
и
/opt/backups
) с различными настройками конфигурации, чтобы лучше объяснить, как можно настроить монтирование NFS.
/var/www/
принадлежит пользователю и группе
www-data
а
/opt/backups
принадлежит
root
.
Создайте файловую систему экспорта с помощью команды
mkdir
:
sudo mkdir -p /srv/nfs4/backups
sudo mkdir -p /srv/nfs4/www
Смонтируйте фактические каталоги:
sudo mount --bind /opt/backups /srv/nfs4/backups
sudo mount --bind /var/www /srv/nfs4/www
Чтобы сделать монтирование bind постоянным, откройте файл
/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
Файл
/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(rw, wdelay, root_squash, no_subtree_check, sec=sys, rw, secure, root_squash, no_all_squash) /srv/nfs4/www 192.168.33.110(rw, wdelay, root_squash, no_subtree_check, sec=sys, rw, secure, root_squash, no_all_squash) /srv/nfs4 192.168.33.0/24(rw, wdelay, crossmnt, root_squash, no_subtree_check, fsid=0, sec=sys, rw, secure, root_squash, no_all_squash) /srv/nfs4/backups 192.168.33.0/24(ro, wdelay, root_squash, no_subtree_check, sec=sys, ro, secure, root_squash, no_all_squash)
В Ubuntu
root_squash
включен по умолчанию. Это один из наиболее важных параметров безопасности NFS. Он не позволяет корневым пользователям, подключенным с клиентов, иметь права root на подключенных общих ресурсах. Он сопоставит
UID
и
GID
root
nobody
/
nogroup
UID
/
GID
.
Чтобы пользователи на клиентских компьютерах имели доступ, NFS ожидает, что идентификаторы пользователя и группы клиента совпадают с идентификаторами на сервере. Другой вариант - использовать функцию отображения NFSv4, которая переводит идентификаторы пользователей и групп в имена и наоборот.
Вот и все. На этом этапе вы настроили сервер NFS на вашем сервере Ubuntu. Теперь вы можете перейти к следующему шагу, настроить клиентов и подключиться к серверу NFS.
Конфигурация брандмауэра
Предполагая, что вы используете
UFW
для управления брандмауэром, чтобы разрешить доступ из подсети
192.168.33.0/24
вам нужно выполнить следующую команду:
sudo ufw allow from 192.168.33.0/24 to any port nfs
Чтобы проверить изменения, выполните:
sudo ufw status
Выходные данные должны показать, что трафик через порт
2049
разрешен:
To Action From -- ------ ---- 2049 ALLOW 192.168.33.0/24 22/tcp ALLOW Anywhere 22/tcp (v6) ALLOW Anywhere (v6)
Настройка клиентов 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.10:/backups /backups
sudo mount -t nfs -o vers=4 192.168.33.10:/www /srv/www
Где
192.168.33.10
- IP-адрес сервера NFS. Вы также можете использовать имя хоста вместо IP-адреса, но оно должно быть разрешено клиентским компьютером. Обычно это делается путем сопоставления имени хоста с IP в
/etc/hosts
.
При монтировании файловой системы NFSv4 вам нужно пропустить корневой каталог NFS, поэтому вместо
/srv/nfs4/backups
вам нужно использовать
/backups
.
Убедитесь, что удаленные файловые системы успешно смонтированы, используя команду mount или
df
:
df -h
Команда напечатает все смонтированные файловые системы. Последние две строки являются смонтированными долями:
Filesystem Size Used Avail Use% Mounted on /dev/mapper/VolGroup00-LogVol00 38G 1.7G 36G 5% / devtmpfs 236M 0 236M 0% /dev tmpfs 244M 0 244M 0% /dev/shm tmpfs 244M 4.5M 240M 2% /run tmpfs 244M 0 244M 0% /sys/fs/cgroup /dev/sda2 1014M 87M 928M 9% /boot tmpfs 49M 0 49M 0% /run/user/1000 192.168.33.10:/backups 9.7G 1.2G 8.5G 13% /backups 192.168.33.10:/www 9.7G 1.2G 8.5G 13% /srv/www
Чтобы сделать монтирование постоянным при перезагрузке, откройте файл
/etc/fstab
:
sudo nano /etc/fstab
и добавьте следующие строки:
/ И т.д. / Fstab
192.168.33.10:/backups /backups nfs defaults, timeo=900, retrans=5, _netdev 0 0 192.168.33.10:/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
Предполагая, что вы используете
www-data
на клиентском компьютере с теми же
UID
и
GID
что и на удаленном сервере (что должно быть в случае, если, например, вы установили nginx на обоих компьютерах), вы можете протестировать, чтобы создать файл как пользователь
www-data
с:
sudo -u www-data touch /srv/www/test.txt
Команда не будет отображать вывод, что означает, что файл был успешно создан.
Для проверки перечислите файлы в каталоге
/srv/www
:
ls -la /srv/www
Выходные данные должны показать вновь созданный файл:
drwxr-xr-x 3 www-data www-data 4096 Jun 23 22:18. drwxr-xr-x 3 root root 4096 Jun 23 22:29.. -rw-r--r-- 1 www-data www-data 0 Jun 23 21:58 index.html -rw-r--r-- 1 www-data www-data 0 Jun 23 22:18 test.txt
Размонтирование файловой системы NFS
sudo umount /backups
Если точка монтирования определена в
/etc/fstab
, обязательно удалите строку или закомментируйте ее, добавив
#
в начале строки.
Вывод
В этом руководстве мы показали, как настроить сервер NFS и как монтировать удаленные файловые системы на клиентских компьютерах. Если вы внедряете NFS в производство и делитесь разумными данными, рекомендуется включить аутентификацию Kerberos.
В качестве альтернативы NFS вы можете использовать SSHFS для монтирования удаленных каталогов через SSH-соединение. SSHFS зашифрован по умолчанию и намного проще в настройке и использовании.
Не стесняйтесь оставлять комментарии, если у вас есть какие-либо вопросы.
терминал монтирования ubuntu nfsКак установить и настроить сервер NFS на Centos 8
В этом руководстве вы пройдете шаги, необходимые для настройки сервера NFSv4 в CentOS 8. Мы также покажем вам, как смонтировать файловую систему NFS на клиенте.
Как установить и настроить прокси-сервер Squid в Ubuntu 18.04
Squid - полнофункциональный кеширующий прокси, поддерживающий популярные сетевые протоколы, такие как HTTP, HTTPS, FTP и другие. Из этого туториала вы узнаете, как настроить прокси-сервер Squid в Ubuntu 18.04.
Как настроить сервер openvpn в Ubuntu 18.04
VPN позволяет вам подключаться к удаленным VPN-серверам, делая ваше соединение зашифрованным и безопасным, и анонимно просматривая веб-страницы, сохраняя конфиденциальность данных вашего трафика. Из этого туториала вы узнаете, как настроить собственный VPN-сервер, установив и настроив OpenVPN.