Mrežni datotečni sustav NFS
Mrežni datotečni sustav je sustav koji služi za pristupanje udaljenim uređajima preko mreže. Ta komunikacija vrši se u obliku klijent-server komunikacije.
Network file system je protokol koji je razvila tvrtka Sun Microsystems 1984. godine. Omogućava klijentu pristup podacima preko mreže kao što se spaja na lokalnu memoriju. Temelji se na Open Network Computing Remote Procedure Call (ONC RPC) sustavu, te podržava mnoge platforme.
Verzije NFS-a:
- V1 je koristio Sun u eksperimentalne svrhe
- V2 je funkcionirao samo preko UDP-a
- V3 ima podršku za TCP, podržava veće datoteke
- V4 je prva verzija razvijena od strane Internet Engineering Task Force (IETF)
Za korištenje NFS-a potrebno je imati pakete (nfs-kernel-server
na Debianu) instalirane na računalu.
Svaki korisnik može biti i klijent i server i oboje, stoga ću ovdje pokazati kako podesiti i server i klijent stranu.
Konfiguracija poslužitelja
Potrebna su podešenja tri konfiguracijske datoteke za podešavanje NFS servera:
/etc/exports
/etc/hosts.allow
/etc/hosts.deny
Datoteka /etc/exports
je u obliku:
directory machine1(option11,option12)
Directory označava onaj direktorij koji želimo dijeliti. Machine 1 je klijent koji sadržava njegovu DNS ili IP adresu (preporučljivo je korištenje IP adrese). Options su zapravo ovlasti koje klijenti dobivaju, od kojih su najvažnije:
ro
-- direktorij je read-onlyrw
-- klijenti mogu čitati i pisati
Primjer takve datoteke:
/export/shared *(rw)
/etc/hosts.allow i /etc/hosts.deny specificiraju koja računala na mreži mogu koristiti usloge servera. Svaka linija datoteke sadrži uslugu i popis klijenata koji se mogu njome služiti. Kada klijent pošalje serveru zahtjev, prvo se provjerava postoji li u /etc/hosts.allow pravilo koje tom klijentu dozvoljava pristup, ako da onda mu se dopušta. Ukoliko ne postoji takvo pravilo, provjerava se postoji li pravilo u /etc/hosts.deny kojim mu se odbija pristup, ako da pristup se odbija. Ukoliko ne postoji pravilo niti u jednoj datoteci, pristup je dozvoljen.
S obzirom da se prvo provjerava datoteka sa dozvolama, datoteku sa odbijenim pristupima možemo postaviti da odbija sve:
- portmap:ALL
- lockd:ALL
- mountd:ALL
- rquotad:ALL
- statd:ALL
Zatim oblikujemo datoteku sa dozvolama:
- portmap: ALL
- lockd: ALL
- mountd: ALL
- rquotad: ALL
- statd: ALL
Dodajemo onoliko IP adresa u svaki red koliko ima klijenata kojima želimo dopustiti pristup. Stvaram direktorij koji sam gore naveo da želim dijeliti i startam daemon:
# systemctl restart nfs-kernel-server.service
# showmount -e
Konfiguracija klijenta
Za uspostavu klijenta potrebni su portmapper, rpc.statd i rpc.lockd, i moraju biti uključeni i na serveru i na klijentu (paket nfs-common
na Debianu). Nakon toga, mounta/unmounta se direktorij (koji se nalazi na serveru) naredbama (pri čemu je /mnt/home
već napravljen).
U datoteci /etc/fstab
imamo:
192.168.32.128:/export/shared /mnt/home
Napravit ću direktorij sa mkdir -p /mnt/home
, te restartat sustav naredbom sudo reboot. Druga opcija je korištenje naredbe mount/unmount.
Dodatno
NFS je popularan među korisnicima Linuxa, osim gore navedenih načina oblikovanja rada NFS-a, on se dodatno može optimizirati, može se mijenjati brzina transfera i druge opcije. Portmapper sadržava listu u kojoj se nalazi popis usluga koje se vrše na kojim portovima, tako da klijent koji se spaja može vidjeti kojem portu pristupiti s obzirom na uslugu koju traži.
Author: Renato Kalanj, Vedran Miletić