Установка и настройка серверной части 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 mkdir -p /home/nfs
sudo chmod -R 777 /home/nfs
После этого необходимо добавить в файл “/etc/exports’ информацию о предоставляемой шаре через NFS:
sudo nano /etc/exports
и добавляем строку:
/home/nfs 192.168.10.0/24(rw,sync,no_root_squash,no_all_squash)
При этом:
/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=111/tcp
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
firewall-cmd –reload
Готово! Установка и настройка NFS сервера на CentOS 7 завершена.
Установка и настройка клиента NFS
В завершении данной заметки рассмотрим процесс настройки клиента для подключения (работы) с развернутым ранее NFS сервером. В моем случае, чаще всего клиентом будет какой-либо хост виртуализации (например, VMware ESXi или Xen Server) и его установка и настройка не требуется. Только необходимо запустить мастер подключения и указать параметры подключения. Для других сервисов или серверов выполняем следующие команды:
sudo yum install nfs-utils nfs-utils-lib
Включаем сервис и активируем автозагрузку:
systemctl enable rpcbind
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/
Добавление автомонтирования при включение системы:
sudo nano /etc/fstab
# # /etc/fstab # Created by anaconda on Tue Aug 19 12:15:24 2014 # # Accessible filesystems, by reference, are maintained under '/dev/disk' # See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info # /dev/mapper/centos-root / xfs defaults 1 1 UUID=2ba8d78a-c420-4792-b381-5405d755e544 /boot xfs defaults 1 2 /dev/mapper/centos-swap swap swap defaults 0 0 192.168.1.101:/home/nfs/ /media/nfs_share/ nfs rw,sync,hard,intr 0 0
Проверяем, что все примонтировалось правильно:
mount -fav
firewall-cmd —permanent —add-port=111/tcp
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
для чего нужно открывать эти порты если и без них работает нормально?
В статье напроч отсутствует описание контекста безопасности и случаев использования сервиса в публичной сети интернет, в корпоративной сети или указания версии протокола. Так что набор команд для обертки firewalld имеет косметический смысл в данном случае.Более важным является момент привязки сервисов к IP адресу или работе через туннели.