Подключение общего сетевого NFS каталога на Ubuntu 18.04

Категория: Utilities

Монтируем сетевой каталог между 2-мя серверами.

Сервер - который предоставляет доступ к диску для хранения файлов.

Клиент - на котором будем монтировать сетевой каталог.

Примечание

Коллега подсказал несколько моментов по настройке NFS:

  1. Когда NFS сетапишь нужно обязательно(!) закрывать порты RPC (111 основной) фаерволлом.
    Ферволлить нужно из-за этого: https://threatpost.com/reflection-ddos-attacks-abusing-rpc-portmapper/114318/
  2. Чтоб медленно не было, нужно обязательно включить async.

На обоих системах ставим:

sudo apt install nfs-kernel-server nfs-common

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

Посмотрите uid пользователя, который будет владельцем файлов:

cat /etc/passwd

На сервере разрешаем подключение к каталогу с определенных IP или сетей:

sudo nano /etc/exports
/data/cola   192.168.1.8(rw,insecure,nohide,all_squash,anonuid=1001,anongid=1001,no_subtree_check)

* Можно указать подсеть: 192.168.1.0/24.

Параметры:

rw                Чтение+запись или ro (только чтение)
insecure          Разрешить подключение с «небезопасного» диапазона портов >1024.
nohide            Показывать смонтированные нелокальные ресурсы NFS.
all_squash        Подразумевает, что все подключения будут выполнятся от анонимного пользователя.
anonuid=1000      Привязывает anon пользователя к «местному» пользователю.
anongid=1000      Привязывает анонимного пользователя к группе «местного» пользователя.
no_subtree_check  Отменить контроль доступа к подкаталогам (быстрее).
no_root_squash    Разрешаем пользователю root на клиентской машине доступ к разделяемой директории сервера.
sync              Синхронный режим доступа. Не ждем ответ сервера при записи на диск. Это быстрее но менее надежно.
noaccess          Запрещает доступ к указанной директории определенным хостам.

Перезапускаем сервис или только применяем изменения:

sudo /etc/init.d/nfs-kernel-server restart
sudo exportfs -a  ## Применить конфиг /etc/exports
showmount -e      ## Показать, какие NFS каталоги уже предоставляются (exports)

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

Проверим предоставляемые каталоги на сервере и на клиенте:

showmount -e 192.168.1.1  ## Экспортируемые каталоги сервера, можно смотреть на клиенте
showmount -a              ## На клиенте, --all

* Утилита showmount иногда может не показывать смонтированный NFS каталог, если он отваливался.. не разобрался как исправить

Создаем каталог:

mkdir -p /media/data/cola

Монтируем вручную (проверьте uid пользователя):

sudo mount -t nfs -O uid=1000,iocharset=utf-8 192.168.1.1:/data/cola /media/data/cola
sudo umount /media/data/cola

Добавляем запись в /etc/fstab для автоматического монтирования:

sudo nano /etc/fstab
192.168.1.1:/data/cola /media/data/cola nfs user,rw 0 0

После добавления записи с правилами монтирования в /etc/fstab, в дальнейшем можно монтировать просто:

sudo mount /data/cola

* Добавьте noauto если не нужно монтировать каталог при старте системы.

* На ноуте nfs каталог лучше монтируйте через autofs. Иначе при отсутствии сети вы не сможете выключить ноут.

#nfs, #mount remote directory, #mount directory, #mount network directory

категория: Utilities