Как установить сервер и клиент NFS в Debian 12
NFS или сетевая файловая система — это сетевой протокол, который позволяет монтировать удаленную файловую систему по сети. Протокол NFS использует архитектуру клиент-сервер: сервер NFS предоставляет все каталоги или разделы, к которым возможен доступ, а клиенты получают доступ ко всем каталогам и файловым системам через внутреннее сетевое соединение с использованием протокола rpcbind.
Текущее состояние протокола сетевой файловой системы описано ниже.
- NFSv2 и NFSv3 по-прежнему поддерживаются основными операционными системами, но из соображений безопасности необходимо ограничить доступ к серверу NFS доверенной локальной сетью. NFSv2 и NFSv3 рекомендуются для развертываний малого и среднего размера.
- Протокол NFSv4 предоставляет базовые функции безопасности, такие как аутентификация и шифрование, но в этих целях используется Kerberos. Поэтому вам необходимо выполнить дополнительные настройки для использования NFSv4 с базовыми функциями безопасности.
В этом руководстве я покажу вам, как установить сервер и клиент NFS в Debian 12. Я установлю сервер NFS и настрою NFSv4, включая настройку экспорта fs через псевдофайловую систему. В конце вы настраиваете клиент Debian на монтирование NFS-сервера только через NFSv4 и настраиваете автоматическое монтирование через файл /etc/fstab.
Предварительные условия
Чтобы завершить работу с этим руководством, убедитесь, что у вас есть следующее:
- Два сервера Debian 12. В этом случае сервер книжный червь с IP-адресом 192.168.10.15 будет использоваться в качестве сервера NFS, а сервер клиент1. > с IP 192.168.10.20 будет использоваться в качестве клиента NFS.
- Пользователь без полномочий root с правами sudo/администратора.
Установка NFS-сервера
NFS или сетевая файловая система — это протокол распределенного обмена файлами. В Linux, включая Debian, пакет NFS по умолчанию доступен в официальном репозитории. Выполните первый шаг ниже, чтобы установить пакет сервера NFS и узнать, как управлять службой сервера NFS.
Прежде чем перейти к установке, запустите приведенную ниже команду apt, чтобы обновить репозиторий Debian и получить последнюю информацию о пакете.
sudo apt update
Теперь установите пакет сервера NFS nfs-kernel-server, используя приведенную ниже команду apt. Введите y, чтобы подтвердить установку, и нажмите ENTER.
sudo apt install nfs-kernel-server nfs-common
После установки пакета nfs-kernel-server служба nfs-server создается, запускается и включается по умолчанию на вашем компьютере с Debian. Выполните следующие команды systemctl, чтобы проверить службу nfs-server и убедиться, что она включена и работает.
sudo systemctl is-enabled nfs-server
sudo systemctl status nfs-server
Вы должны получить включенный вывод, что означает, что nfs-сервер будет запускаться автоматически при загрузке системы. Во время работы вы должны увидеть сообщение активное (выход) или активное (работает).
Кроме того, вы можете использовать следующую команду для запуска, перезапуска и остановки службы nf-сервера.
sudo systemctl start nfs-server
sudo systemctl restart nfs-server
sudo systemctl stop nfs-server
Настройка NFSv4
На данный момент последней версией протокола NFS является v4, которая имеет повышенную безопасность и производительность. В следующем разделе вы узнаете, как настроить и включить NFSv4 на вашем сервере NFS.
Откройте конфигурацию NFS по умолчанию /etc/default/nfs-common с помощью команды редактора nano.
sudo nano /etc/default/nfs-common
Измените параметр NEED_STATD на нет и NEED_IDMAPD на да. Для NFSv4 требуется NEED_IDMAPD, который будет использоваться в качестве демона сопоставления идентификаторов и обеспечивает функциональность между сервером и клиентом.
NEED_STATD="no"
NEED_IDMAPD="yes"
Сохраните файл и выйдите из редактора, когда закончите.
Теперь откройте конфигурацию сервера NFS /etc/default/nfs-kernel-server с помощью приведенной ниже команды редактора nano.
sudo nano /etc/default/nfs-kernel-server
Добавьте следующую конфигурацию, чтобы отключить NFSv2 и NFSv3 при запуске службы nfs-server, а также отключить запросы на монтирование от клиентов как для NFSv2, так и для
RPCNFSDOPTS="-N 2 -N 3"
RPCMOUNTDOPTS="--manage-gids -N 2 -N 3"
Сохраните и выйдите из файла, когда закончите.
Наконец, выполните следующую команду, чтобы перезапустить службу nfs-сервера и применить изменения. При этом ваш сервер NFS будет принимать только протокол NFSv4.
sudo systemctl restart nfs-server
Настройка брандмауэра через UFW
Включение firewalld на вашем сервере NFS является обязательным. Вы можете ограничить внутренние сети, которые могут получить доступ к серверу NFS. Выполните этот шаг, чтобы настроить UFW (несложный брандмауэр) и защитить сервер NFS.
Если UFW не установлен, выполните приведенную ниже команду apt, чтобы установить его.
sudo apt install ufw -y
После установки UFW выполните приведенную ниже команду ufw, чтобы разрешить службу SSH и включить UFW. Введите y и нажмите ENTER, чтобы подтвердить и включить UFW.
sudo ufw allow ssh
sudo ufw enable
Вы должны получить вывод «Брандмауэр активен и включен при запуске системы», когда UFW запущен и включен.
Затем выполните следующую команду ufw, чтобы разрешить подсети вашей локальной сети доступ к серверу NFS. Следующая команда позволит 192.168.10.0/24 получить доступ к серверу NFS.
sudo ufw allow from 192.168.10.0/24 to any port nfs
Наконец, выполните следующую команду ufw, чтобы перезагрузить и проверить статус UFW.
sudo ufw reload
sudo ufw status
Вы должны увидеть порт NFS 2049, добавленный в UFW; только подсеть сети 192.168.10.0/24 может получить доступ к порту.
Настройка псевдофайловой системы и экспорт
Псевдофайловая система — это поддельная файловая система, которая позволяет вам настроить общий каталог NFS как единую файловую систему. Таким образом, вместо использования нескольких общих каталогов вы можете использовать одну псевдофайловую систему для всех ваших общих каталогов.
В следующем разделе вы настроите псевдофайловую систему на сервере NFS и будете использовать ее в качестве единой общей файловой системы для клиентов NFS.
Выполните следующую команду, чтобы создать новые каталоги /shared, /shared/data и /shared/documents. Затем измените владельца на <никто и nogroup через chown.
mkdir -p /shared/{data,documents}
sudo chown -R nobody:nogroup /shared
Теперь создайте другие каталоги /exports, /exports/home, /exports/data и /exports/documents. используя команду ниже. И обязательно измените владельца на nobody и nogroup.
mkdir -p /exports/{data,home,documents}
sudo chown -R nobody:nogroup /exports
Затем смонтируйте каталог /home как псевдофайловую систему в каталог /exports/home, общий каталог /shared/data в
sudo mount --bind /home /exports/home
sudo mount --bind /shared/data /exports/data
sudo mount --bind /shared/documents /exports/documents
Проверьте список смонтированных файловых систем с помощью команды df, приведенной ниже. Параметр -a используется для отображения всех доступных файловых систем, включая псевдофайловую систему.
sudo df -ah
Вы должны увидеть три доступные и смонтированные псевдофайловые системы.
Вы также можете настроить псевдофайловую систему на постоянной основе через файл /etc/fstab. Откройте файл /etc/fstab с помощью редактора nano.
sudo nano /etc/fstab
Добавьте в файл следующую конфигурацию:
/home /exports/home none bind
/shared/data /exports/data none bind
/shared/documents /exports/documents none bind
Сохраните и закройте файл после завершения.
Вы можете добавить экспортированный каталог /exports на сервер NFS в качестве псевдофайловой системы.
Откройте файл /etc/exports с помощью следующей команды редактора nano.
sudo nano /etc/exports
Добавьте в файл следующую строку.
/exports 192.168.10.0/255.255.255.0(rw,no_root_squash,no_subtree_check,crossmnt,fsid=0)
Сохраните и закройте файл по завершении.
Ниже приведены некоторые параметры NFS, используемые в этом случае:
- rw: разрешить доступ для чтения и записи к тому/каталогу как для NFS-сервера, так и для клиента.
- no_subtree_check: отключает проверку поддерева, что имеет небольшие последствия для безопасности, но в некоторых случаях может повысить надежность.
- no_root_sqash: отключить сжатие корня. Эта опция в основном полезна для бездисковых клиентов.
- fsid=0: для NFSv4 этот параметр используется для информирования сервера NFS о том, что этот экспорт является корневым для всех экспортируемых файловых систем.
Затем выполните следующую команду, чтобы перезапустить службу nfs-сервера и применить изменения. Затем проверьте nfs-server, чтобы убедиться, что служба работает.
sudo systemctl restart nfs-server
sudo systemctl status nfs-server
Вы должны отобразить такой вывод:
Наконец, выполните следующую команду, чтобы проверить экспортированный каталог и файловую систему на сервере NFS, используя следующую команду.
sudo showmount -e 192.168.10.15
sudo showmount -e
Если все пойдет хорошо, вы увидите, что каталог /exports экспортируется на сервер NFS.
Настройка клиента NFS
На этом этапе вы настроили сервер NFS с псевдофайловой системой и защитили сервер NFS через UFW. Теперь вы будете настраивать клиентский компьютер Debian и монтировать общую файловую систему сервера NFS.
Войдите на клиентский компьютер и обновите репозиторий Debian, чтобы получить самую свежую информацию о пакете. Затем установите пакет nfs-common с помощью приведенной ниже команды apt.
sudo apt update
sudo apt install nfs-common
После установки пакета выполните следующую команду, чтобы создать целевые каталоги монтирования /users, /data и /documents.
mkdir -p /users /data /documents
Затем выполните приведенные ниже команды mount.nfs4, чтобы смонтировать экспортированную псевдофайловую систему в целевой каталог. В этом случае псевдофайловая система /home монтируется в каталог /users, /data — в каталог /data . и /documents в каталог /documents.
sudo mount.nfs4 192.168.10.15:/home /users
sudo mount.nfs4 192.168.10.15:/data /data
sudo mount.nfs4 192.168.10.15:/documents /documents
Проверьте список смонтированных файловых систем с помощью команды df ниже.
sudo df -h
В случае успеха вы должны увидеть, что каждая псевдофайловая система с сервера NFS смонтирована в каждый целевой каталог следующим образом:
Кроме того, вы также можете смонтировать корень псевдофайловой системы следующим образом. Если вы проверите целевой каталог /nfs, вы увидите три разных каталога: /home, /data и /documents.
mkdir -p /nfs
sudo mount.nfs4 192.168.10.15:/ /nfs -o soft,intr,rsize=8192,wsize=8192
Подключите NFS-сервер через /etc/fstab
Вверху вы смонтировали сервер NFS с помощью команды mount.nfs4. В следующем разделе показано, как постоянно подключить сервер NFS с помощью файла /etc/fstab.
Сначала удалите сервер NFS с помощью приведенной ниже команды umount.
sudo umount /users /data /documents
Теперь откройте файл /etc/fstab с помощью следующей команды редактора nano.
sudo nano /etc/fstab
Добавьте в файл следующие строки.
192.168.10.15:/home /users nfs4 soft,intr,rsize=8192,wsize=8192
192.168.10.15:/data /data nfs4 soft,intr,rsize=8192,wsize=8192
192.168.10.15:/documents /documents nfs4 soft,intr,rsize=8192,wsize=8192
Сохраните файл и выйдите из редактора после завершения.
Затем выполните приведенную ниже команду systemctl, чтобы перезапустить менеджер systemd. Затем запустите команду mount, чтобы смонтировать все доступные файловые системы в файле /etc/fstab.
sudo systemctl daemon-reload
sudo mount -a
Затем проверьте список смонтированных файловых систем, используя следующую команду df. В случае успеха вы увидите, что сервер NFS подключен к каждому целевому каталогу.
sudo df -h
Вы также можете попробовать перезагрузить клиентский компьютер, чтобы увидеть эффект. Если все пойдет хорошо, сервер NFS должен быть смонтирован автоматически через файл /etc/fstab.
sudo reboot
Заключение
Вот и все! Вы завершили установку сервера и клиента NFS на серверах Debian 12. Вы также явно настроили NFSv4 и псевдофайловую систему на сервере NFS. Кроме того, вы защитили сервер NFS с помощью UFW (несложный брандмауэр).
Наконец, вы также завершили настройку клиента NFS на компьютере с Debian и успешно настроили автоматически монтируемый сервер NFS через файл /etc/fstab на вашем компьютере с Ubuntu. Теперь вы можете начать настраивать его в соответствии с вашими потребностями.