Мережева файлова система (NFS) – протокол розподіленої файлової системи для організації загального доступу до файлів і папками. За основу в NFS узятий протокол віддалених процедур (ONC RPC). NFS дозволяє монтувати віддалені файлові системи по мережі мережу. На відміну від FTP, NFS дозволяє отримати доступ тільки до тих частин файлу, до яких звернувся процес. Майте на увазі, що дані в протоколі NFS за замовчуванням не шифруються, і аутентифікація клієнтів не виконується (доступ обмежується по IP).

NFS дуже простий в налаштуванні, як з боку сервера, так і з боку клієнта. У даній статті ми розглянемо установку і настройку NFS-сервера і після чого, підключимо NFS ресурс на клієнті. У цій статті для прикладу використання технології NFS ми використовуємо CentOS 8. У інших Linux дистрибутивах (RHEL, Fedora і т.д.) всі дії аналогічні.

  • Установка і настройка NFS-сервера в Linux CentOS
  • Налаштування клієнта NFS в CentOS

Установка і настройка NFS-сервера в Linux CentOS

За замовчуванням nfs вже встановлено в CentOS 8 з пакетом Standard. Якщо ви видалили компоненти NFS, або ставили сервер в режимі Minimal Install, можна встановити пакет NFS за допомогою пакетного менеджера yum (dnf):

Для CentOS 7

# yum install nfs-utils -y

Для CentOS 8

# dnf install nfs-utils -y

У мене пакет вже був встановлений:

centos установка пакета nfs-util

У поточній версії NFS сервера підтримуються версії протоколу NFSv3 і NFSv4. Версія NFS2 за замовчуванням відключена. Список підтримуваних версія NFS можна отримати командою:

cat /proc/fs/nfsd/versions

Після установки потрібних пакетів, потрібно запустити служби nfs-server і rpcbind, додайте їх в автозавантаження:

# systemctl enable rpcbind
# systemctl enable nfs-server
# systemctl start rpcbind
# systemctl start nfs-server

Якщо вам потрібен тільки NFSv4.1 / 4.2, служба rpcbind не потрібна.

Якщо у вас в системі встановлений брандмауер відкрийте необхідні порти:

# firewall-cmd --permanent --add-port=111/tcp
# firewall-cmd --permanent --add-port=20048/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

firewall-cmd nfs правила

Для тих, хто використовує iptables:

# iptables -t filter -A INPUT -p tcp --dport 111 -j ACCEPT
# iptables -t filter -A INPUT -p tcp --dport 2049 -j ACCEPT
# iptables -t filter -A INPUT -p tcp --dport 20048 -j ACCEPT
# service iptables save
# service iptables restart

Тепер створимо директорію, яка буде лунати вашим NFS сервером:

# mkdir -p /backup/nfs
# chmod -R 777 /backup/nfs

Тепер в файлі конфігурації з настройками NFS сервера (/ etc / exports) потрібно опублікувати даний каталог і призначити права доступу.

# nano /etc/exports

Додайте в файл наступний рядок для надання доступу до NFS всім хостам у зазначеній IP підмережі:

/backup/nfs 192.168.1.0/24 (rw,sync,no_root_squash,no_all_squash)

Або можна обмежити доступ для конкретного IP:

/backup/nfs 192.168.2.24 (rw,sync,no_root_squash,no_all_squash, anonuid=1000,anongid=1000) 192.168.3.100 (ro,async,no_subtree_check)

Розглянемо більш докладно формат надання прав до NFS каталогу:

  • rw – права на запис в каталозі, ro – доступ тільки на читання;
  • синхронізація – синхронний режим доступу. async – має на увазі, що не треба чекати підтвердження запису на диск (підвищує продуктивність NFS, але зменшує надійність);
  • no_root_squash – дозволяє root користувачеві з клієнта отримувати доступ до NFS каталогу (зазвичай не рекомендується);
  • no_all_squash – включення авторизації користувача. all_squash – доступ до ресурсів від анонімного користувача;
  • no_subtree_check – відключити перевірку, що користувач звертається в файлу в певному каталозі (subtree_check – використовується за умовчанням);
  • anonuid, anongid – зіставити NFS користувачеві / групу вказаною локальному користувачеві / групі (UID і GID).

Щоб застосувати нові настройки NFS каталогів, виконайте:

# exportfs -a

І перезапустите nfs-сервер:

# systemctl restart nfs-server

На цьому установка і настройка nfs-сервера закінчена і можна приступити до налаштування клієнта.

Налаштування клієнта NFS в CentOS

Для настройки NFS клієнта, потрібно також встановити пакет nfs-utils. Для CentOS 7:

# yum install nfs-utils -y

Для CentOS 8:

# dnf install nfs-utils -y Додаємо сервіси в автозавантаження і включаємо:

# systemctl enable rpcbind
# systemctl enable nfs-server
# systemctl start rpcbind
# systemctl start nfs-server

Тепер на клієнті, потрібно створити директорію, в яку ми змонтуємо nfs-каталог:

# mkdir /backup

Тепер можна змонтувати віддалене NFS-сховище командою:

# mount -t nfs 192.168.0.100:/backup/nfs/ /backup

можна примусово вказати версію NFS протоколу, яку потрібно використовувати

# mount -t nfs -o vers=4 192.168.0.100:/backup/nfs/ /backup

Де IP – це адреса NFS-сервера, який ви налаштували раніше.

підключення nfs каталогу через mount в fstab

Тепер Тепер в списку перемонтувати розділів диска відображається підключений NFS ресурс з віддаленого сервері. Ви можете читати дані з цього каталогу, або записувати в нього (в залежності від прав, які призначені для вашого IP на NFS сервері). Щоб NFS каталог автоматично монтувався при перезавантаженні, потрібно відкрити файл fstab:

# nano /etc/fstab

І додайте рядок:

192.168.0.100:/backup/nfs/ /backup/ nfs rw,sync,hard,intr 0 0

Після збереження файлу fstab, можна застосувати його командою:

# mount -a

Отже, ми налаштували і підключили віддалене NFS сховище, яке можна використовувати для прозорого мережевого доступу до загального ресурсу з різних хостів. Можна складати в NFS каталог бекапи, зберігати там файли ISO образів і т.д.

Leave a Reply

Your email address will not be published. Required fields are marked *