Android

Kako instalirati i konfigurirati nfs poslužitelj na centos 8

Introduction to Amazon Web Services by Leo Zhadanovsky

Introduction to Amazon Web Services by Leo Zhadanovsky

Sadržaj:

Anonim

Mrežni datotečni sustav (NFS) je protokol distribuiranog datotečnog sustava koji vam omogućuje dijeljenje udaljenih direktorija preko mreže. Pomoću NFS-a možete montirati udaljene direktorije na vašem sustavu i raditi s datotekama na udaljenom računalu kao da su to lokalne datoteke.

NFS protokol nije zadano šifriran, a za razliku od Sambe, ne pruža provjeru autentičnosti korisnika. Pristup poslužitelju ograničen je IP adresama ili nazivima računala.

U ovom ćete vodiču proći korake potrebne za postavljanje NFSv4 poslužitelja na CentOS 8. Također ćemo vam pokazati kako montirati NFS datotečni sustav na klijentu.

Preduvjeti

Pretpostavljamo da imate poslužitelj sa sustavom CentOS 8 na koji ćemo postaviti NFS poslužitelj i ostale strojeve koji će djelovati kao NFS klijenti. Poslužitelj i klijenti trebali bi biti u mogućnosti međusobno komunicirati preko privatne mreže. Ako vaš pružatelj hosting usluga ne nudi privatne IP adrese, možete koristiti javne IP adrese i konfigurirati vatrozid poslužitelja tako da dopušta promet na luci 2049 samo iz pouzdanih izvora.

Strojevi u ovom primjeru imaju sljedeće IP adrese:

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

Postavljanje NFS poslužitelja

U ovom se odjeljku objašnjava kako instalirati potrebne pakete, kreirati i izvoziti NFS direktorije i konfigurirati vatrozid.

Instaliranje NFS poslužitelja

Paket "nfs-utils" pruža uslužne programe i demone NFS za NFS poslužitelj. Da biste ga instalirali pokrenite sljedeću naredbu:

sudo dnf install nfs-utils

Nakon što je instalacija dovršena, omogućite i pokrenite NFS uslugu upisivanjem:

sudo systemctl enable --now nfs-server

Na CentOS 8 NFS verzije 3 i 4.x su prema zadanim postavkama omogućene, verzija 2 je onemogućena. NFSv2 je sada prilično star i nema razloga da to omogućite. Da biste ga provjerili pokrenite sljedeću cat naredbu:

sudo cat /proc/fs/nfsd/versions

-2 +3 +4 +4.1 +4.2

Opcije konfiguracije NFS poslužitelja postavljene su u /etc/nfsmount.conf i /etc/nfs.conf datotekama. Zadane postavke su dovoljne za naš vodič.

Izrada datotečnih sustava

Kada konfigurirate NFSv4 poslužitelj, dobra je praksa koristiti globalni korijenski direktorij NFS i povezati montiranje stvarnih direktorija na zajedničku točku montiranja. U ovom ćemo primjeru upotrijebiti /srv/nfs4 direktor kao NFS korijen.

Da bismo bolje objasnili kako se mogu konfigurirati NFS nosači, podijelit ćemo dva direktorija ( /var/www i /opt/backups ) s različitim postavkama konfiguracije.

/var/www/ je u vlasništvu korisnika, a skupina apache i /opt/backups su u vlasništvu root .

Izradite izvozni datotečni sustav pomoću naredbe mkdir :

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

Montirajte stvarne imenike:

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

Da biste postavili vezanje stalnika trajnim, dodajte sljedeće datoteke u /etc/fstab datoteku:

sudo nano /etc/fstab / Etc / fstab

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

Izvoz datotečnih sustava

Sljedeći je korak definiranje datotečnih sustava koje će izvoziti NFS poslužitelj, opcije dijeljenja i klijenti kojima je omogućen pristup tim datotečnim sustavima. Da biste to učinili, otvorite /etc/exports datoteku:

sudo nano /etc/exports

Izvezite www i backups direktorija i dopustite pristup samo klijentima u mreži 192.168.33.0/24 :

/ etc / exports

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

Prvi redak sadrži fsid=0 koji definira NFS korijenski direktorij /srv/nfs . Pristup ovom NFS glasniku dostupan je samo klijentima iz podmreže 192.168.33.0/24 . Opcija crossmnt potrebna je za dijeljenje direktorija koji su podmape izvezenog direktorija.

Drugi redak prikazuje kako odrediti više pravila za izvoz za jedan datotečni sustav. /srv/nfs4/backups direktorij /srv/nfs4/backups i omogućuje pristup samo za čitanje u cijelom rasponu 192.168.33.0/24 , kao i pristup za čitanje i pisanje na 192.168.33.3 . Opcija sync govori NFS-u da napiše promjene na disk prije nego što odgovorite.

Posljednji redak trebao bi biti razumljiv. Za više informacija o svim dostupnim opcijama upišite man exports u svoj terminal.

Spremite datoteku i izvezite dionice:

sudo exportfs -ra

Morate pokrenuti naredbu iznad svake izmjene datoteke /etc/exports . Ako postoje pogreške ili upozorenja, one će se prikazati na terminalu.

Da biste pogledali trenutni aktivni izvoz i njihovo stanje, upotrijebite:

sudo exportfs -v

Izlaz će uključivati ​​sve dionice sa svojim opcijama. Kao što vidite, postoje i opcije koje nismo definirali u datoteci /etc/exports . To su zadane opcije i ako ih želite promijeniti, morat ćete ih izričito postaviti.

/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 jedna je od najvažnijih opcija koja se tiče sigurnosti NFS-a. Sprječava root korisnike povezane s klijentima da imaju korijenske povlastice na montiranim dionicama. To će preslikati korijenski UID i GID nobody / nogroup UID / GID .

Kako bi korisnici na klijentskim računalima imali pristup, NFS očekuje da se korisnički ID i ID grupe podudaraju s onima na poslužitelju. Druga je mogućnost korištenje funkcije idmapiranja NFSv4 koja ID-ove korisnika i grupe prevodi u imena i obrnuto.

To je to. U ovom trenutku postavili ste NFS poslužitelj na vašem CentOS poslužitelju. Sada možete prijeći na sljedeći korak i konfigurirati klijente i povezati se s NFS serverom.

Konfiguracija vatrozida

FirewallD je zadano rješenje vatrozida na Centos 8.

NFS usluga uključuje unaprijed definirana pravila za omogućavanje pristupa NFS poslužitelju.

Sljedeće naredbe trajno će omogućiti pristup iz podmreže 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

Postavljanje NFS klijenata

Sada kada je NFS poslužitelj podešen i dijele se izvezeni, sljedeći korak konfigurira klijente i montira udaljene datotečne sustave.

Također možete montirati NFS udio na macOS i Windows strojevima, ali fokusirat ćemo se na Linux sustave.

Instaliranje NFS klijenta

Na klijentove uređaje instalirajte alate potrebne za montiranje udaljenih NFS datotečnih sustava.

  • Instalirajte NFS klijent na Debian i Ubuntu

    Naziv paketa koji uključuje programe za montiranje NFS datoteka datoteka na Debianovoj distribuciji je nfs-common . Da biste ga instalirali pokrenite:

    sudo apt update sudo apt install nfs-common

    Instalirajte NFS klijent na CentOS i Fedora

    Na Red Hat i njegove derivate instalirajte nfs-utils paket:

    sudo yum install nfs-utils

Montaža datotečnih sustava

Radit ćemo na klijentskom stroju s IP 192.168.33.110 , koji ima pristup čitanju i /srv/nfs4/www datotečni sustav /srv/nfs4/www i pristup samo datotečnom sustavu /srv/nfs4/backups .

Stvorite dvije nove direktorije za točke montiranja. Te mape možete stvoriti na bilo kojoj lokaciji koju želite.

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

Montirajte izvezene datotečne sustave naredbom 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

Gdje je 192.168.33.148 IP od NFS poslužitelja. Možete koristiti i naziv domaćina umjesto IP adrese, ali to treba razriješiti klijentski stroj. To se obično događa mapiranjem imena računala u IP u /etc/hosts datoteci.

Kada montirate NFSv4 datotečni sustav, trebate izostaviti korijenski direktorij NFS, pa umjesto /srv/nfs4/backups morate koristiti /backups .

Provjerite jesu li udaljeni datotečni sustavi uspješno montirani pomoću naredbe mount ili df :

df -h

Naredba će ispisati sve montirane datotečne sustave. Posljednja dva retka su montirane dionice:

… 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

Da bi nosači bili trajni pri ponovnom pokretanju, otvorite /etc/fstab datoteku:

sudo nano /etc/fstab

i dodajte sljedeće retke:

/ 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

Da biste saznali više informacija o dostupnim opcijama pri montaži NFS datotečnog sustava, upišite man nfs u svoj terminal.

Druga mogućnost za montiranje udaljenih datotečnih sustava je uporaba alata autofs ili stvaranje sistemske jedinice.

Testiranje NFS pristupa

Ispitajmo pristup dionicama kreiranjem nove datoteke u svakoj od njih.

Prvo pokušajte stvoriti testnu datoteku u direktorij /backups pomoću naredbe touch :

sudo touch /backups/test.txt

Datotečni sustav /backup izvezen je kao samo za čitanje i, kao što se očekuje, vidjet ćete poruku o pogrešci koja je Permission denied :

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

Zatim pokušajte stvoriti testnu datoteku u /srv/www direktoriju kao korijen pomoću naredbe sudo :

sudo touch /srv/www/test.txt

Opet ćete vidjeti Permission denied .

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

Imenik /var/www je u vlasništvu apache korisnika, a ovaj udio ima postavljenu opciju root_squash , koja korijenskog korisnika nogroup na nobody korisnika i grupu nogroup koja nema dopuštenja za pisanje na udaljeni dijeljenje.

Pod pretpostavkom da na klijentskom računalu postoji korisnički apache s istim UID i GID kao na udaljenom poslužitelju (što bi trebalo biti slučaj ako ste, na primjer, instalirali apache na oba stroja), možete testirati kako biste stvorili datoteku kao korisnički apache s:

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

Naredba neće prikazati izlaz, što znači da je datoteka uspješno stvorena.

Da biste ga potvrdili, navedite datoteke u direktoriju /srv/www :

ls -la /srv/www

Izlaz bi trebao pokazati novo stvorenu datoteku:

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

Demontiranje datotečnog sustava NFS

sudo umount /backups

Ako je točka montiranja definirana u datoteci /etc/fstab , obavezno uklonite liniju ili komentirajte dodavanjem # na početku retka.

Zaključak

U ovom smo vodiču pokazali kako postaviti NFS poslužitelj i kako montirati udaljene datotečne sustave na klijentske uređaje. Ako implementirate NFS u proizvodnju i dijeljenje razumnih podataka, dobra je ideja omogućiti kerberos provjeru autentičnosti.

Kao alternativu NFS-u, možete koristiti SSHFS za postavljanje udaljenih direktorija preko SSH veze. SSHFS je zadano šifriran i puno je lakše za konfiguriranje i upotrebu.

Slobodno ostavite komentar ako imate bilo kakvih pitanja.

centos nfs mount terminal