Android

Cum se instalează și se configurează un server nfs pe Centos 8

Installation et configuration de DNS sur CentOs 8

Installation et configuration de DNS sur CentOs 8

Cuprins:

Anonim

Network File System (NFS) este un protocol de sistem de fișiere distribuit care vă permite să partajați directoarele la distanță printr-o rețea. Cu NFS, puteți monta directoare la distanță pe sistemul dvs. și puteți lucra cu fișierele de pe mașina de la distanță, ca și cum ar fi fișiere locale.

Protocolul NFS nu este criptat în mod implicit și, spre deosebire de Samba, nu oferă autentificarea utilizatorului. Accesul la server este restricționat de adresele IP sau numele de gazdă ale clienților.

În acest tutorial, veți parcurge pașii necesari pentru a configura un server NFSv4 pe CentOS 8. Vă vom arăta, de asemenea, cum să montați un sistem de fișiere NFS pe client.

Cerințe preliminare

Presupunem că aveți un server care rulează CentOS 8 pe care vom configura serverul NFS și alte mașini care vor acționa ca clienți NFS. Serverul și clienții ar trebui să poată comunica între ei printr-o rețea privată. Dacă furnizorul dvs. de găzduire nu oferă adrese IP private, puteți utiliza adrese IP publice și configurați firewall-ul serverului pentru a permite traficul pe portul 2049 numai din surse de încredere.

Mașinile din acest exemplu au următoarele IP-uri:

NFS Server IP: 192.168.33.148 NFS Clients IPs: From the 192.168.33.0/24 range

Configurați serverul NFS

Această secțiune explică modul de instalare a pachetelor necesare, crearea și exportul directoarelor NFS și configurarea firewallului.

Instalarea serverului NFS

Pachetul „nfs-utils” oferă utilitățile și demoni NFS pentru serverul NFS. Pentru instalare, executați următoarea comandă:

sudo dnf install nfs-utils

După terminarea instalării, activați și porniți serviciul NFS tastând:

sudo systemctl enable --now nfs-server

În mod implicit, pe versiunile CentOS 8 NFS 3 și 4.x sunt activate, versiunea 2 este dezactivată. NFSv2 este destul de vechi acum și nu există niciun motiv pentru a-l activa. Pentru a-l verifica, rulați următoarea comandă cat :

sudo cat /proc/fs/nfsd/versions

-2 +3 +4 +4.1 +4.2

Opțiunile de configurare a serverului NFS sunt setate în fișierele /etc/nfs.conf și /etc/nfs.conf . Setările implicite sunt suficiente pentru tutorialul nostru.

Crearea sistemelor de fișiere

Atunci când configurați un server NFSv4, este o bună practică să folosiți un director rădăcină global NFS și să legați montura directoarelor reale la punctul de montaj partajat. În acest exemplu, vom folosi directorul /srv/nfs4 ca rădăcină NFS.

Pentru a explica mai bine cum pot fi configurate monturile NFS, vom împărtăși două directoare ( /var/www și /opt/backups ) cu setări diferite de configurare.

/var/www/ este deținut de utilizator și grupul apache și /opt/backups sunt deținute de root .

Creați sistemul de fișiere de export utilizând comanda mkdir :

sudo mkdir -p /srv/nfs4/{backups, www}

Montați directoarele reale:

sudo mount --bind /opt/backups /srv/nfs4/backups sudo mount --bind /var/www /srv/nfs4/www

Pentru a face suporturile de legare permanente, adăugați următoarele intrări la /etc/fstab :

sudo nano /etc/fstab / Etc / fstab

/opt/backups /srv/nfs4/backups none bind 0 0 /var/www /srv/nfs4/www none bind 0 0

Exportarea sistemelor de fișiere

Următorul pas este definirea sistemelor de fișiere care vor fi exportate de serverul NFS, opțiunile de partajare și clienții cărora li se permite accesul la aceste sisteme de fișiere. Pentru aceasta, deschideți /etc/exports :

sudo nano /etc/exports

Exportă directoarele www și backups și permite accesul numai de la clienți în rețeaua 192.168.33.0/24 :

/ etc / exporturi

/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)

Prima linie conține fsid=0 care definește directorul rădăcină NFS /srv/nfs . Accesul la acest volum NFS este permis doar clienților din subrețea 192.168.33.0/24 . Opțiunea crossmnt este necesară pentru a partaja directoare care sunt subdirectoare ale unui director exportat.

A doua linie arată cum să specificați mai multe reguli de export pentru un sistem de fișiere. /srv/nfs4/backups directorul /srv/nfs4/backups și permite accesul numai de citire la întregul interval 192.168.33.0/24 , și accesul citit și scris la 192.168.33.3 . Opțiunea de sync spune NFS să scrie modificări pe disc înainte de a răspunde.

Ultima linie ar trebui să fie explicativă. Pentru mai multe informații despre toate opțiunile disponibile, tastați man exports în terminalul dvs.

Salvați fișierul și exportați acțiunile:

sudo exportfs -ra

Trebuie să rulați comanda de mai sus de fiecare dată când modificați /etc/exports . Dacă există erori sau avertismente, acestea vor fi afișate pe terminal.

Pentru a vizualiza exporturile active actuale și starea lor, utilizați:

sudo exportfs -v

Rezultatul va include toate acțiunile cu opțiunile lor. După cum vedeți, există și opțiuni pe care nu le-am definit în /etc/exports . Acestea sunt opțiuni implicite, iar dacă doriți să le schimbați, va trebui să setați opțiunile în mod explicit.

/srv/nfs4/backups 192.168.33.3(sync, wdelay, hide, no_subtree_check, sec=sys, rw, secure, root_squash, no_all_squash) /srv/nfs4/www 192.168.33.110(sync, wdelay, hide, no_subtree_check, sec=sys, rw, secure, root_squash, no_all_squash) /srv/nfs4 192.168.33.0/24(sync, wdelay, hide, crossmnt, no_subtree_check, fsid=0, sec=sys, rw, secure, root_squash, no_all_squash) /srv/nfs4/backups 192.168.33.0/24(sync, wdelay, hide, no_subtree_check, sec=sys, ro, secure, root_squash, no_all_squash)

root_squash este una dintre cele mai importante opțiuni privind securitatea NFS. Împiedică utilizatorii root conectați de la clienți să aibă privilegii root pe acțiunile montate. Acesta va UID și GID rădăcină către nobody / nogroup UID / GID .

Pentru ca utilizatorii de pe utilajele client să aibă acces, NFS se așteaptă ca utilizatorul și ID-ul clientului să se potrivească cu cele de pe server. O altă opțiune este utilizarea funcției de idmapping NFSv4 care traduce ID-urile de utilizator și de grup la nume și invers.

Asta e. În acest moment, ați configurat un server NFS pe serverul dvs. CentOS. Acum puteți trece la pasul următor și configurați clienții și vă puteți conecta la serverul NFS.

Configurare firewall

FirewallD este soluția implicită pentru firewall de pe Centos 8.

Serviciul NFS include reguli predefinite pentru a permite accesul la serverul NFS.

Următoarele comenzi vor permite accesul permanent din subrețea 192.168.33.0/24 :

sudo firewall-cmd --new-zone=nfs --permanent sudo firewall-cmd --zone=nfs --add-service=nfs --permanent sudo firewall-cmd --zone=nfs --add-source=192.168.33.0/24 --permanent sudo firewall-cmd --reload

Configurați clienții NFS

Acum, când serverul NFS este configurat și partajele sunt exportate, pasul următor configurează clienții și montează sistemele de fișiere la distanță.

Puteți monta, de asemenea, cota NFS pe aparate macOS și Windows, dar ne vom concentra pe sistemele Linux.

Instalarea clientului NFS

Pe aparatele clientului, instalați instrumentele necesare pentru montarea sistemelor de fișiere NFS de la distanță.

  • Instalați clientul NFS pe Debian și Ubuntu

    Numele pachetului care include programe pentru montarea sistemelor de fișiere NFS pe distribuții bazate pe Debian este nfs-common . Pentru a instala, rulați:

    sudo apt update sudo apt install nfs-common

    Instalați clientul NFS pe CentOS și Fedora

    Pe Red Hat și derivatele sale instalați pachetul nfs-utils :

    sudo yum install nfs-utils

Montarea sistemelor de fișiere

Vom lucra pe mașina client cu IP 192.168.33.110 , care are acces de citire și scriere la sistemul de fișiere /srv/nfs4/www și acces de numai citire la sistemul de fișiere /srv/nfs4/backups .

Creați două directoare noi pentru punctele de montare. Puteți crea aceste directoare în orice locație doriți.

sudo mkdir -p /backups sudo mkdir -p /srv/www

Montați sistemele de fișiere exportate cu comanda mount :

sudo mount -t nfs -o vers=4 192.168.33.148:/backups /backups sudo mount -t nfs -o vers=4 192.168.33.148:/www /srv/www

Unde este 192.168.33.148 IP-ul serverului NFS. Puteți utiliza, de asemenea, numele de gazdă în locul adresei IP, dar acesta trebuie rezolvat de către mașina client. Acest lucru se face de obicei prin maparea numelui de gazdă către IP în /etc/hosts .

Când montați un sistem de fișiere NFSv4, trebuie să omiteți directorul rădăcină NFS, deci în loc de /srv/nfs4/backups trebuie să utilizați /backups .

Verificați dacă sistemele de fișiere la distanță sunt montate cu succes folosind fie comanda mount sau df :

df -h

Comanda va imprima toate sistemele de fișiere montate. Ultimele două linii sunt acțiunile montate:

… 192.168.33.148:/backups 9.7G 1.2G 8.5G 13% /backups 192.168.33.148:/www 9.7G 1.2G 8.5G 13% /srv/www

Pentru a face ca suporturile să fie permanente la repornire, deschideți /etc/fstab :

sudo nano /etc/fstab

și adăugați următoarele linii:

/ Etc / fstab

192.168.33.148:/backups /backups nfs defaults, timeo=900, retrans=5, _netdev 0 0 192.168.33.148:/www /srv/www nfs defaults, timeo=900, retrans=5, _netdev 0 0

Pentru a găsi mai multe informații despre opțiunile disponibile la montarea unui sistem de fișiere NFS, tastați man nfs în terminalul dvs.

O altă opțiune pentru a monta sistemele de fișiere la distanță este să folosiți instrumentul autofs sau să creați o unitate systemd.

Testarea accesului NFS

Să testăm accesul la acțiuni prin crearea unui nou fișier în fiecare dintre ele.

În primul rând, încercați să creați un fișier de testare în directorul /backups folosind comanda touch :

sudo touch /backups/test.txt

Sistemul /backup fișiere /backup este exportat doar în citire și, așa cum este de așteptat, veți vedea un mesaj de eroare Permission denied Permis:

touch: cannot touch '/backups/test': Permission denied

În continuare, încercați să creați un fișier de testare în directorul /srv/www ca rădăcină folosind comanda sudo :

sudo touch /srv/www/test.txt

Din nou, veți vedea mesajul Permission denied .

touch: cannot touch '/srv/www': Permission denied

Directorul /var/www este deținut de utilizatorul apache , iar această partajare are root_squash opțiuni root_squash , care mapează utilizatorul rădăcină către utilizatorul nobody și grupul nogroup care nu are permisiuni de scriere pentru partajarea de la distanță.

Presupunând că există o apache utilizator pe mașina client cu același UID și GID ca pe serverul de la distanță (ceea ce ar trebui să fie cazul, de exemplu, dacă ați instalat apache pe ambele mașini), puteți testa pentru a crea un fișier ca apache utilizator. cu:

sudo -u apache touch /srv/www/test.txt

Comanda nu va afișa nicio ieșire, ceea ce înseamnă că fișierul a fost creat cu succes.

Pentru verificare, listați fișierele din directorul /srv/www :

ls -la /srv/www

Rezultatul arăta fișierul nou creat:

drwxr-xr-x 3 apache apache 4096 Jun 23 22:18. drwxr-xr-x 3 root root 4096 Jun 23 22:29.. -rw-r--r-- 1 apache apache 0 Jun 23 21:58 index.html -rw-r--r-- 1 apache apache 0 Jun 23 22:18 test.txt

Demontarea sistemului de fișiere NFS

sudo umount /backups

Dacă punctul de montaj este definit în /etc/fstab , asigurați-vă că eliminați linia sau comentați-l adăugând # la începutul liniei.

Concluzie

În acest tutorial, v-am arătat cum să configurați un server NFS și cum să montați sistemele de fișiere la distanță pe mașinile client. Dacă implementați NFS în producție și partajarea de date sensibile, este o idee bună să activați autentificarea kerberos.

Ca alternativă la NFS, puteți utiliza SSHFS pentru a monta directoarele la distanță pe o conexiune SSH. SSHFS este criptat implicit și mult mai ușor de configurat și utilizat.

Simțiți-vă liber să lăsați un comentariu dacă aveți întrebări.

terminalul de montare centos nfs