Linux

Kako instalirati i konfigurirati NFS poslužitelj na Ubuntu 20.04

Kako instalirati i konfigurirati NFS poslužitelj na Ubuntu 20.04

NFS ili mrežni datotečni sustav protokol je distribuiranog datotečnog sustava koji vam omogućuje dijeljenje direktorija putem mreže. Pomoću NFS-a možete instalirati udaljene direktorije na svoj sustav i raditi s datotekama na udaljenom računalu kao da su lokalne datoteke.

Prema zadanim postavkama, NFS protokol nije šifriran i ne omogućuje provjeru autentičnosti korisnika. Pristup poslužitelju ograničen je IP adresama ili imenima hosta klijenta.

Ovaj članak objašnjava kako postaviti NFSv4 poslužitelj na Ubuntu 20.04. Pokazat ćemo vam i kako montirati NFS sustav datoteka na klijentskom računalu.

Preduvjeti #

Koristit ćemo dva stroja, jedan s Ubuntu 20.04, koji će djelovati kao NFS poslužitelj, i još jedan koji pokreće bilo koju drugu Linux distribuciju na koju ćemo montirati udio. Poslužitelj i klijenti trebali bi biti u mogućnosti međusobno komunicirati putem privatne mreže. Možete koristiti javne IP adrese i konfigurirati vatrozid poslužitelja da omogući promet na luci 2049 samo iz pouzdanih izvora.

Strojevi u ovom primjeru imaju sljedeće IP adrese:

IP NFS poslužitelja: 192.168.33.10 IP adresa NFS klijenata: od 192.168.33.Raspon 0/24 

Postavljanje NFS poslužitelja #

Prvi korak je postavljanje NFS poslužitelja. Instalirat ćemo potrebne pakete, stvoriti i izvesti NFS direktorije i konfigurirati vatrozid.

Instaliranje NFS poslužitelja #

Paket NFS poslužitelja pruža podršku korisničkog prostora potrebnu za pokretanje NFS poslužitelja jezgre. Da biste instalirali paket, pokrenite:

sudo apt ažuriranjesudo apt instalirati nfs-kernel-server

Nakon završetka instalacije, NFS usluge automatski će se pokrenuti.

Na Ubuntu 20.04, NFS verzija 2 je onemogućena. Omogućene su verzije 3 i 4. To možete provjeriti pokretanjem sljedećeg mačka naredba:

sudo mačka / proc / fs / nfsd / inačice
-2 +3 +4 +4.1 +4.2 

NFSv2 je prilično star sada i nema razloga da se to omogući.

Konfiguracija NFS poslužitelja definirana je u / etc / default / nfs-kernel-server i / etc / default / nfs-common datoteke. Zadane postavke dovoljne su za većinu situacija.

Izrada datotečnih sustava #

NFSv4 poslužitelj koristi globalni korijenski direktorij, a izvezeni direktoriji su u odnosu na ovaj direktorij. Točku spajanja dijeljenja možete povezati s direktorijima koje želite izvesti pomoću bind mountova.

U ovom ćemo primjeru postaviti / srv / nfs4 direktorij kao NFS korijen. Da bismo bolje objasnili kako se mogu konfigurirati NFS nosači, podijelit ćemo dva direktorija (/ var / www i / opt / sigurnosne kopije) s različitim postavkama konfiguracije. The / var / www / je u vlasništvu korisnika www-podaci, i / opt / sigurnosne kopije je u vlasništvu korijen.

Prvo stvorite korijenski direktorij i dijelite točke montiranja:

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

Povežite direktorija za montiranje dijeljenih točaka:

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

Da biste učvrstili nosače za trajno preko ponovnog pokretanja, otvorite / etc / fstab datoteka:

sudo nano / etc / fstab

i dodajte sljedeće retke:

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

Izvoz datotečnih sustava #

Sljedeći je korak dodati datotečne sustave koji će se izvesti i klijentima omogućiti pristup tim dionicama u / itd. / izvoz datoteka.

Svaki redak za izvezeni datotečni sustav ima sljedeći oblik:

izvoz domaćina (opcije) 

Gdje izvoz je izvezeni direktorij, domaćin je naziv hosta ili IP adresa / raspon koji mogu pristupiti izvozu i mogućnosti su opcije domaćina.

Otvori / itd. / izvoz datoteku i dodajte sljedeće retke:

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

Prvi redak sadrži fsid = 0 opcija koja definira NFS korijenski direktorij (/ srv / nfs4). Pristup ovom NFS volumenu dopušten je samo klijentima iz 192.168.33.0/24 podmreža. The križanje opcija je potrebna za dijeljenje direktorija koji su poddirektoriji izvezenog direktorija.

Drugi redak pokazuje kako odrediti više pravila izvoza za jedan datotečni sustav. Pristup za čitanje dopušten je cjelini 192.168.33.0/24 raspon i pristup za čitanje i pisanje samo na 192.168.33.3 IP adresa. The sinkronizacija opcija govori NFS-u da napiše promjene na disk prije odgovora.

Posljednji redak je samorazumljiv. Za više informacija o svim dostupnim vrstama opcija čovjek izvozi u vašem terminalu.

Spremite datoteku i izvezite dionice:

sudo exportfs -ar

Morate pokrenuti naredbu iznad svaki put kada modificirate / itd. / izvoz datoteka. Ako postoje pogreške ili upozorenja, oni će biti prikazani na terminalu.

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

sudo exportfs -v

Rezultat će uključivati ​​sve dionice s njihovim opcijama. Kao što vidite, postoje i opcije koje nismo definirali u / itd. / izvoz datoteka. To su zadane opcije i ako ih želite promijeniti, morat ćete ih izričito postaviti.

/ srv / nfs4 / sigurnosne 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 / sigurnosne kopije 192.168.33.0/24 (ro, wdelay, root_squash, no_subtree_check, sec = sys, ro, secure, root_squash, no_all_squash) 

Na Ubuntuu, korijen_kvoš je omogućeno prema zadanim postavkama. Ovo je jedna od najvažnijih opcija koja se tiče sigurnosti NFS-a. Mapiranjem root-a sprječava root korisnike koji su povezani s klijentima da imaju root ovlasti na montiranim dionicama UID i GID do nitko/nogometa UID/GID.

Kako bi korisnici na klijentskim strojevima mogli imati pristup, NFS očekuje da se klijentovi ID-ovi korisnika i grupa podudaraju s onima na poslužitelju. Druga je mogućnost upotreba NFSv4 značajke mapiranja koja prevodi ID-ove korisnika i grupe u imena i obrnuto.

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

Konfiguracija vatrozida #

Ako instalirate Jenkins na udaljeni Ubuntu poslužitelj koji je zaštićen vatrozidom, morat ćete omogućiti promet na NFS priključku:

sudo ufw dopustiti od 192.168.33.0/24 u bilo koji port nfs

Potvrdite promjenu:

sudo ufw status

Izlaz bi trebao pokazati da promet na luci 2049 dopušteno je:

Za akciju od - ------ ---- 2049 DOZVOLITE 192.168.33.0/24 22 / tcp DOZVOLI bilo gdje 22 / tcp (v6) DOZVOLI bilo gdje (v6) 

Postavljanje NFS klijenata #

Sada kada je NFS poslužitelj postavljen i dijeljeni dijelovi izvezeni, sljedeći je korak konfiguriranje klijenata i montiranje udaljenih datotečnih sustava.

Usredotočit ćemo se na Linux sustave, ali NFS udio možete postaviti i na macOS i Windows strojeve.

Instaliranje NFS klijenta #

Na klijentske strojeve moramo instalirati samo alate potrebne za montiranje udaljenog NFS datotečnog sustava.

Montaža datotečnih sustava #

Radit ćemo na klijentskom stroju s IP-om 192.168.33.20, koja ima pristup za čitanje i pisanje na / srv / nfs4 / www datotečni sustav i pristup samo za čitanje / srv / nfs4 / sigurnosne kopije sustav datoteka.

Stvorite dva nova direktorija za točke montiranja:

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

Možete stvoriti direktorije na bilo kojem mjestu koje želite.

Izvezite datotečne sustave pomoću montirati naredba:

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

Gdje 192.168.33.10 je IP NFS poslužitelja. Možete koristiti i ime hosta umjesto IP adrese, ali klijentsko računalo mora ga razriješiti. To se obično radi mapiranjem imena hosta na IP u / etc / hosts datoteka.

Prilikom montiranja NFSv4 datotečnog sustava, izostavite NFS korijenski direktorij. Koristiti / sigurnosne kopije, umjesto / srv / nfs4 / sigurnosne kopije.

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

df -h

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

Veličina korištenog datotečnog sustava Dostupno Koristi% Montirano 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% / pokretanje / zaključavanje 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: / sigurnosne kopije 124G 2.8G 115G 3% / sigurnosne kopije 192.168.33.10: / www 124G 2.8G 115G 3% / srv / www

Da biste nosače učinili trajnim pri ponovnom pokretanju, otvorite / etc / fstab datoteku i dodajte sljedeće redove:

sudo nano / etc / fstab
/ etc / fstab
192.168.33.10: / sigurnosne kopije / sigurnosne kopije nfs zadane postavke, timeo = 900, retrans = 5, _netdev 0 0 192.168.33.10: / www / srv / www nfs zadane postavke, timeo = 900, retrans = 5, _netdev 0 0 

Za informacije o dostupnim opcijama prilikom montiranja NFS datotečnog sustava upišite čovječe nfs u vašem terminalu.

Druga mogućnost za montiranje udaljenih datotečnih sustava je uporaba bilo kojeg autofs alat ili za stvaranje systemd jedinice.

Testiranje NFS pristupa #

Testirajmo pristup dionicama tako što ćemo stvoriti novu datoteku na svakom od njih.

Prvo pokušajte stvoriti test datoteku na / sigurnosne kopije direktorij pomoću dodir naredba:

sudo touch / sigurnosne kopije / test.txt

The / sigurnosna kopija datotečni sustav izvozi se samo za čitanje i prema očekivanjima vidjet ćete Dozvola odbijena poruka pogreške:

dodir: ne može dodirnuti '/ sigurnosne kopije / test': Dozvola odbijena 

Zatim pokušajte stvoriti test datoteku na / srv / www direktorij kao korijen koristeći sudo naredba:

sudo touch / srv / www / test.txt

Opet ćete vidjeti Dozvola odbijena poruka.

dodir: ne može dodirnuti '/ srv / www': Dozvola odbijena 

Ako se sjećate, / var / www imenik je u vlasništvu www-podaci korisnika, a ovaj udio ima korijen_kvoš skup opcija koji preslikava korijenskog korisnika na nitko korisnik i nogometa grupa koja nema dozvolu za pisanje na udaljeni udio.

Pod pretpostavkom da imate www-podaci koristiti na klijentskom stroju s istim UID i GID kao na udaljenom poslužitelju (što bi trebao biti slučaj ako ste, na primjer, instalirali nginx na oba računala), možete pokušati stvoriti datoteku kao korisnik www-podaci:

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

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

Da biste je provjerili, navedite datoteke u / srv / www imenik:

ls -la / srv / www

Izlaz bi trebao prikazati novostvorenu datoteku:

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

Demontaža NFS datotečnog sustava #

Ako udaljeni NFS udio više nije potreban, možete ga demontirati kao bilo koji drugi montirani datotečni sustav pomoću umount naredba.

Na primjer, da demontirate / sigurnosna kopija podijelite, pokrenuli biste:

sudo umount / sigurnosne kopije

Ako je točka montiranja definirana u / etc / fstab datoteku, obavezno uklonite redak ili ga prokomentirajte dodavanjem # na početku retka.

Zaključak #

Pokazali smo vam kako postaviti NFS poslužitelj i kako montirati udaljene sustave datoteka na klijentske strojeve. Ako implementirate NFS u proizvodnju i dijelite razumne podatke, dobra je ideja omogućiti kerberos provjeru autentičnosti.

Kao alternativu NFS-u, SSHFS možete koristiti za montiranje udaljenih direktorija preko SSH veze. SSHFS je šifriran prema zadanim postavkama i puno ga je lakše konfigurirati i koristiti.

Slobodno ostavite komentar ako imate pitanja.

How to Change Mouse and Touchpad Settings Using Xinput in Linux
Most Linux distributions ship with “libinput” library by default to handle input events on a system. It can process input events on both Wayland and X...
Zamijenite svoje tipke miša različito za različiti softver pomoću X-Mouse Button Control
Možda vam treba alat koji bi mogao promijeniti kontrolu miša sa svakom aplikacijom koju koristite. Ako je to slučaj, možete isprobati aplikaciju pod n...
Microsoft Sculpt Touch bežični miš pregled
Nedavno sam čitao o Microsoft Sculpt Touch bežični miš i odlučio ga kupiti. Nakon što sam ga neko vrijeme koristio, odlučio sam s njim podijeliti svoj...