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žuriranje
sudo 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 kopije
sudo mkdir -p / srv / nfs4 / www
Povežite direktorija za montiranje dijeljenih točaka:
sudo mount --bind / opt / backups / srv / nfs4 / backups
sudo 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.
Instalirajte NFS klijent na Debian i Ubuntu
Naziv paketa koji uključuje programe za montiranje NFS datotečnih sustava na distribucije zasnovane na Debianu je
nfs-zajednički
. Da biste ga instalirali, pokrenite:sudo apt ažuriranje
sudo apt instalirati nfs-common
Instalirajte NFS klijent na CentOS i Fedoru
Na Red Hat i njegove derivate instalirajte
nfs-utils
paket:sudo yum instaliraj nfs-utils
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 kopije
sudo 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 kopije
sudo 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 / fstab192.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.