Linux

Kako namestiti in konfigurirati strežnik NFS v Ubuntu 20.04

Kako namestiti in konfigurirati strežnik NFS v Ubuntu 20.04

NFS ali Network File System je protokol porazdeljenega datotečnega sistema, ki vam omogoča skupno rabo imenikov prek omrežja. Z NFS lahko v sistem namestite oddaljene imenike in delate z datotekami na oddaljeni napravi, kot da gre za lokalne datoteke.

Privzeto protokol NFS ni šifriran in ne omogoča preverjanja pristnosti uporabnika. Dostop do strežnika je omejen z naslovi IP odjemalca ali imeni gostiteljev.

V tem članku je razloženo, kako nastaviti strežnik NFSv4 v Ubuntu 20.04. Pokazali vam bomo tudi, kako v odjemalski računalnik namestite datotečni sistem NFS.

Pogoji #

Uporabili bomo dva stroja, enega z Ubuntu 20.04, ki bo deloval kot strežnik NFS, in drugi, ki poganja katero koli drugo distribucijo Linuxa, na katero bomo namestili delež. Strežnik in stranke bi morali imeti možnost medsebojne komunikacije prek zasebnega omrežja. Uporabite lahko javne naslove IP in konfigurirate požarni zid strežnika, da omogoča promet na vratih 2049 samo iz zaupanja vrednih virov.

Stroji v tem primeru imajo naslednje IP-je:

IP strežnika NFS: 192.168.33.10 naslovov odjemalcev NFS: od 192.168.33.Obseg 0/24 

Nastavitev strežnika NFS

Prvi korak je nastavitev strežnika NFS. Namestili bomo potrebne pakete, ustvarili in izvozili imenike NFS ter konfigurirali požarni zid.

Namestitev strežnika NFS #

Paket strežnika NFS zagotavlja podporo za uporabniški prostor, potrebno za zagon strežnika jedra NFS. Če želite namestiti paket, zaženite:

posodobitev sudo aptsudo apt namestite nfs-kernel-server

Ko je namestitev končana, se storitve NFS zaženejo samodejno.

Na Ubuntu 20.04, različica 2 NFS je onemogočena. Različici 3 in 4 sta omogočeni. To lahko preverite tako, da zaženete naslednje mačka ukaz:

sudo cat / proc / fs / nfsd / različice
-2 +3 +4 +4.1 +4.2 

NFSv2 je zdaj že precej star in ni razloga, da bi ga omogočili.

Konfiguracija strežnika NFS je definirana v / etc / default / nfs-kernel-server in / etc / default / nfs-common datotek. Privzete nastavitve zadostujejo za večino situacij.

Ustvarjanje datotečnih sistemov #

Strežnik NFSv4 uporablja globalni korenski imenik, izvoženi imeniki pa so glede na ta imenik. Točko vpenjanja v skupni rabi lahko povežete z imeniki, ki jih želite izvoziti, z bind mount-i.

V tem primeru bomo nastavili / srv / nfs4 imenik kot koren NFS. Da bi bolje pojasnili, kako je mogoče konfigurirati pritrdilne elemente NFS, bomo delili dva imenika (/ var / www in / opt / varnostne kopije) z različnimi nastavitvami konfiguracije. The / var / www / je v lasti uporabnika www-podatki, in / opt / varnostne kopije je v lasti koren.

Najprej ustvarite korenski imenik in točke vpenjanja v skupni rabi:

sudo mkdir -p / srv / nfs4 / varnostne kopijesudo mkdir -p / srv / nfs4 / www

Vežite imenike na točke vpenjanja v skupni rabi:

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

Če želite, da so nosilci za vezanje trajni med ponovnim zagonom, odprite / etc / fstab mapa:

sudo nano / etc / fstab

in dodajte naslednje vrstice:

/ etc / fstab
/ opt / backups / srv / nfs4 / backups no bind 0 0 / var / www / srv / nfs4 / www none bind 0 0 

Izvoz datotečnih sistemov #

Naslednji korak je dodajanje datotečnih sistemov, ki bodo izvoženi, in odjemalcem dovoljen dostop do teh delnic v / etc / izvoz mapa.

Vsaka vrstica za izvoženi datotečni sistem ima naslednjo obliko:

izvoz gostitelja (možnosti) 

Kje izvoz je izvoženi imenik, gostitelj je ime gostitelja ali naslov / obseg IP, ki lahko dostopa do izvoza, in opcije so gostiteljske možnosti.

Odprite / etc / izvoz datoteko in dodajte naslednje vrstice:

sudo nano / etc / export
/ etc / izvoz
/ srv / nfs4 192.168.33.0/24 (rw, sync, no_subtree_check, crossmnt, fsid = 0) / srv / nfs4 / varnostne kopije 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.20 (rw, sync, no_subtree_check) 

Prva vrstica vsebuje fsid = 0 možnost, ki definira korenski imenik NFS (/ srv / nfs4). Dostop do tega zvezka NFS je dovoljen samo strankam iz 192.168.33.0/24 podomrežje. The crossmnt možnost je potrebna za skupno rabo imenikov, ki so podimeniki izvoženega imenika.

Druga vrstica prikazuje, kako določiti več pravil izvoza za en datotečni sistem. Dostop do branja je dovoljen v celoti 192.168.33.0/24 in dostop do branja in pisanja samo do 192.168.33.3 IP naslov. The sinhronizacijo Možnost pove NFS, naj napiše spremembe na disk, preden odgovori.

Zadnja vrstica je samoumevna. Za več informacij o vseh razpoložljivih vrstah možnosti človek izvoz v terminalu.

Shranite datoteko in izvozite skupne rabe:

sudo exportfs -ar

Ukaz zgoraj morate zagnati vsakič, ko spremenite / etc / izvoz mapa. Če obstajajo napake ali opozorila, bodo prikazana na terminalu.

Če si želite ogledati trenutni aktivni izvoz in njegovo stanje, uporabite:

sudo exportfs -v

Rezultat bo vse delnice z njihovimi možnostmi. Kot lahko vidite, obstajajo tudi možnosti, ki jih nismo opredelili v / etc / izvoz mapa. To so privzete možnosti in če jih želite spremeniti, jih morate izrecno nastaviti.

/ srv / nfs4 / varnostne kopije 192.168.33.3 (rw, wdelay, root_squash, no_subtree_check, sec = sys, rw, secure, root_squash, no_all_squash) / srv / nfs4 / www 192.168.33.20 (rw, wdelay, root_squash, no_subtree_check, sec = sys, rw, secure, root_squash, no_all_squash) / srv / nfs4 192.168.33.0/24 (rw, wdelay, crossmnt, root_squash, no_subtree_check, fsid = 0, sec = sys, rw, secure, root_squash, no_all_squash) / srv / nfs4 / varnostne kopije 192.168.33.0/24 (ro, wdelay, root_squash, no_subtree_check, sec = sys, ro, secure, root_squash, no_all_squash) 

Na Ubuntuju, root_squash je privzeto omogočena. To je ena najpomembnejših možnosti glede varnosti NFS. S preslikavanjem root preprečuje korenskim uporabnikom, povezanim s strankami, korenske privilegije na nameščenih skupnih rabah UID in GID do nihče/nogroup UID/GID.

Da bi imeli uporabniki na odjemalskih strojih dostop, NFS pričakuje, da se odjemalčevi ID-ji uporabnikov in skupin ujemajo z ID-ji na strežniku. Druga možnost je uporaba funkcije preslikave NFSv4, ki ID-je uporabnikov in skupin prevede v imena in obratno.

To je to. Na tem mestu ste na strežniku Ubuntu nastavili strežnik NFS. Zdaj lahko preidete na naslednji korak in konfigurirate odjemalce ter se povežete s strežnikom NFS.

Konfiguracija požarnega zidu #

Če Jenkinsa nameščate na oddaljeni strežnik Ubuntu, ki je zaščiten z požarnim zidom, boste morali omogočiti promet na vratih NFS:

sudo ufw dovoli od 192.168.33.0/24 v poljubna vrata nfs

Preverite spremembo:

status sudo ufw

Izhod mora pokazati, da je promet na pristanišču 2049 je dovoljeno:

Za ukrepanje od - ------ ---- 2049 DOVOLITE 192.168.33.0/24 22 / tcp ALLOW Anywhere 22 / tcp (v6) ALLOW Anywhere (v6) 

Nastavite odjemalce NFS

Zdaj, ko je strežnik NFS nastavljen in so skupne rabe izvožene, je naslednji korak konfiguriranje odjemalcev in namestitev oddaljenih datotečnih sistemov.

Osredotočili se bomo na sisteme Linux, vendar lahko del NFS namestite tudi na računalnike macOS in Windows.

Namestitev odjemalca NFS

Na odjemalskih računalnikih moramo namestiti samo orodja, potrebna za namestitev oddaljenega datotečnega sistema NFS.

Namestitev datotečnih sistemov #

Delali bomo na odjemalskem računalniku z IP-jem 192.168.33.20, ki ima dostop do branja in pisanja / srv / nfs4 / www datotečni sistem in dostop samo za branje do / srv / nfs4 / varnostne kopije datotečni sistem.

Ustvarite dva nova imenika za točke vpetja:

sudo mkdir -p / varnostne kopijesudo mkdir -p / srv / www

Imenike lahko ustvarite na katerem koli mestu, ki ga želite.

Izvožene datotečne sisteme namestite z nosilec ukaz:

sudo mount -t nfs -o vers = 4 192.168.33.10: / varnostne kopije / varnostne kopijesudo mount -t nfs -o vers = 4 192.168.33.10: / www / srv / www

Kje 192.168.33.10 je IP strežnika NFS. Namesto naslova IP lahko uporabite tudi ime gostitelja, vendar ga mora odjemalska naprava rešiti. Običajno se to naredi tako, da se ime gostitelja preslika v IP v / etc / hosts mapa.

Pri namestitvi datotečnega sistema NFSv4 izpustite korenski imenik NFS. Uporaba / varnostne kopije, namesto / srv / nfs4 / varnostne kopije.

Preverite, ali so oddaljeni datotečni sistemi uspešno nameščeni, bodisi z namestitvijo bodisi df ukaz:

df -h

Ukaz bo natisnil vse nameščene datotečne sisteme. Zadnji dve vrstici sta nameščeni skupni rabi:

Velikost uporabljenega razpoložljivega datotečnega sistema% Na voljo na udev 951M 0 951M 0% / dev tmpfs 199M 676K 199M 1% / run / dev / sda3 124G 2.8G 115G 3% / tmpfs 994M 0 994M 0% / dev / shm tmpfs 5.0M 0 5.0M 0% / run / lock tmpfs 994M 0 994M 0% / sys / fs / cgroup / dev / sda1 456M 197M 226M 47% / boot tmpfs 199M 0 199M 0% / run / user / 1000 192.168.33.10: / varnostne kopije 124G 2.8G 115G 3% / varnostne kopije 192.168.33.10: / www 124G 2.8G 115G 3% / srv / www

Če želite, da so nosilci ob ponovnem zagonu trajni, odprite / etc / fstab datoteko in dodajte naslednje vrstice:

sudo nano / etc / fstab
/ etc / fstab
192.168.33.10: / varnostne kopije / varnostne kopije nfs privzeto, timeo = 900, retrans = 5, _netdev 0 0 192.168.33.10: / www / srv / www nfs privzeto, timeo = 900, retrans = 5, _netdev 0 0 

Za informacije o razpoložljivih možnostih pri namestitvi datotečnega sistema NFS vnesite človek nfs v terminalu.

Druga možnost namestitve oddaljenih datotečnih sistemov je uporaba enega od avtof orodje ali za ustvarjanje sistemske enote.

Testiranje dostopa do NFS

Preizkusimo dostop do delnic z ustvarjanjem nove datoteke na vsaki od njih.

Najprej poskusite ustvariti preskusno datoteko v / varnostne kopije imenik z uporabo dotik ukaz:

sudo touch / varnostne kopije / test.txt

The /rezerva datotečni sistem izvozi kot samo za branje in po pričakovanjih boste videli Dovoljenje zavrnjeno obvestilo o napaki:

dotik: ne more se dotakniti '/ varnostne kopije / test': Dovoljenje zavrnjeno 

Nato poskusite ustvariti preskusno datoteko v / srv / www imenik kot korenski z uporabo sudo ukaz:

sudo touch / srv / www / test.txt

Še enkrat boste videli Dovoljenje zavrnjeno sporočilo.

dotik: ne more se dotakniti '/ srv / www': Dovoljenje zavrnjeno 

Če se spomnite, / var / www imenik je v lasti www-podatki uporabnik, in ta delež ima root_squash nabor možnosti, ki korenskega uporabnika preslika v nihče uporabnik in nogroup skupina, ki nima dovoljenj za pisanje v oddaljeni skupni rabi.

Ob predpostavki, da imate www-podatki uporaba na odjemalskem računalniku z istim UID in GID kot na oddaljenem strežniku (kar bi se moralo zgoditi, če ste na primer namestili nginx na obe računalniki), lahko poskusite ustvariti datoteko kot uporabnik www-podatki:

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

Ukaz ne bo prikazal izhoda, kar pomeni, da je bila datoteka uspešno ustvarjena.

Za potrditev navedite datoteke v / srv / www imenik:

ls -la / srv / www

Izhod mora prikazati novo ustvarjeno datoteko:

drwxr-xr-x 3 www-data www-data 4096 10. april 22:18 . drwxr-xr-x 3 korenski koren 4096 10. april 22: 29… -rw-r - r-- 1 www-data www-data 0 10. april 21:58 indeks.html -rw-r - r-- 1 www-data www-data 0 10. april 22:18 test.txt 

Odstranitev datotečnega sistema NFS št

Če oddaljena skupna raba NFS ni več potrebna, jo lahko s pomočjo datoteke umount ukaz.

Na primer, da odstranite /rezerva delite, zagnali bi:

sudo umount / varnostne kopije

Če je točka pritrditve definirana v / etc / fstab datoteke odstranite vrstico ali jo komentirajte z dodajanjem # na začetku vrstice.

Zaključek #

Pokazali smo vam, kako nastaviti strežnik NFS in kako namestiti oddaljene datotečne sisteme na odjemalske stroje. Če uporabljate NFS v proizvodnji in delite smiselne podatke, je dobro, da omogočite preverjanje pristnosti kerberos.

Kot alternativo NFS lahko s SSHFS namestite oddaljene imenike prek povezave SSH. SSHFS je privzeto šifriran in veliko lažji za konfiguracijo in uporabo.

Če imate kakršna koli vprašanja, lahko pustite komentar.

5 najboljših arkadnih iger za Linux
Dandanes so računalniki resni stroji, ki se uporabljajo za igre na srečo. Če ne boste mogli dobiti novega visokega rezultata, boste vedeli, kaj mislim...
Bitka za Wesnoth 1.13.6 Razvoj izdan
Bitka za Wesnoth 1.13.6, ki je izšel prejšnji mesec, je šesta razvojna izdaja v 1.13.x series in prinaša številne izboljšave, predvsem uporabniški vme...
Kako namestiti League Of Legends na Ubuntu 14.04
Če ste ljubitelj League of Legends, je to priložnost, da preizkusite League of Legends. Upoštevajte, da LOL podpira PlayOnLinux, če uporabljate Linux....