Android

Kako instalirati i konfigurirati nfs poslužitelj na ubuntu 18.04

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 šifriran prema zadanim postavkama i za razliku od Sambe, ne pruža provjeru autentičnosti korisnika. Pristup poslužitelju je ograničen od strane IP adresa klijenta ili imena hosta.

U ovom ćemo vodiču istražiti kako postaviti NFSv4 Server na Ubuntu 18.04. Također ćemo vam pokazati kako montirati NFS datotečni sustav na klijentu.

Preduvjeti

Ovaj primjer pretpostavlja da imate jedan poslužitelj s operativnim sustavom Ubuntu 18.04 i drugi koji pokreće bilo koju drugu distribuciju Linuxa. 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.10 NFS Clients IPs: From the 192.168.33.0/24 range

Postavljanje NFS poslužitelja

Počet ćemo instaliranjem i konfiguriranjem NFS poslužitelja.

Instaliranje NFS poslužitelja

Osvježite indeks paketa i instalirajte paket NFS poslužitelja:

sudo apt update sudo apt install nfs-kernel-server

Nakon što je instalacija dovršena, NFS usluge će se pokrenuti automatski.

Na Ubuntu 18.04 NFS verzija 2 je po defaultu onemogućena. Omogućene su verzije 3 i 4. To možete potvrditi pokretanjem sljedeće cat naredbe:

sudo cat /proc/fs/nfsd/versions

-2 +3 +4 +4.1 +4.2

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

Opcije konfiguracije NFS poslužitelja postavljene su u /etc/default/nfs-kernel-server i /etc/default/nfs-common datotekama. Zadane postavke su u našem slučaju dostatne.

Izrada datotečnih sustava

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

Dijelit ćemo dvije direktorije ( /var/www i /opt/backups ), s različitim konfiguracijskim postavkama, kako bismo bolje objasnili kako se mogu konfigurirati NFS nosači.

/var/www/ je u vlasništvu korisnika, a grupa www-data i /opt/backups su u vlasništvu root .

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

sudo mkdir -p /srv/nfs4/backups sudo mkdir -p /srv/nfs4/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, otvorite /etc/fstab datoteku:

sudo nano /etc/fstab

i dodajte sljedeće retke:

/ 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 Datoteka /etc/exports export sadrži i komentare koji opisuju kako izvesti direktorij.

U našem slučaju moramo izvoziti www i backups i omogućiti pristup samo od klijenata na 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.

U drugom retku prikazano je 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 otkucajte 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(rw, wdelay, root_squash, no_subtree_check, sec=sys, rw, secure, root_squash, no_all_squash) /srv/nfs4/www 192.168.33.110(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/backups 192.168.33.0/24(ro, wdelay, root_squash, no_subtree_check, sec=sys, ro, secure, root_squash, no_all_squash)

Na Ubuntuu je root_squash omogućen prema zadanim postavkama. Ovo je jedna 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 uređajima 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 ste postavili 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 serverom.

Konfiguracija vatrozida

Pod pretpostavkom da za upravljanje vatrozidom koristite UFW da biste omogućili pristup iz podmreže 192.168.33.0/24 trebate pokrenuti sljedeću naredbu:

sudo ufw allow from 192.168.33.0/24 to any port nfs

Da biste potvrdili pokretanje promjene:

sudo ufw status

Izlaz bi trebao pokazati da je promet u luci 2049 dopušten:

To Action From -- ------ ---- 2049 ALLOW 192.168.33.0/24 22/tcp ALLOW Anywhere 22/tcp (v6) ALLOW Anywhere (v6)

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 klijentskim strojevima moramo instalirati samo alate potrebne za montiranje udaljenih NFS datoteka.

  • 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 samo za čitanje pristup datotečnom sustavu /srv/nfs4/backups .

Stvorite dvije nove direktorije za točke montiranja. Možete stvoriti ove direktorije 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.10:/backups /backups sudo mount -t nfs -o vers=4 192.168.33.10:/www /srv/www

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

Kada montirate NFSv4 datotečni sustav, morate 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:

Filesystem Size Used Avail Use% Mounted on /dev/mapper/VolGroup00-LogVol00 38G 1.7G 36G 5% / devtmpfs 236M 0 236M 0% /dev tmpfs 244M 0 244M 0% /dev/shm tmpfs 244M 4.5M 240M 2% /run tmpfs 244M 0 244M 0% /sys/fs/cgroup /dev/sda2 1014M 87M 928M 9% /boot tmpfs 49M 0 49M 0% /run/user/1000 192.168.33.10:/backups 9.7G 1.2G 8.5G 13% /backups 192.168.33.10:/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.10:/backups /backups nfs defaults, timeo=900, retrans=5, _netdev 0 0 192.168.33.10:/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 kreirajući novu datoteku za svaku 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 s Permission denied dozvolom:

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

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

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 ga potvrdili, navedite datoteke u direktoriju /srv/www :

ls -la /srv/www

Izlaz bi trebao pokazati novo stvorenu datoteku:

drwxr-xr-x 3 www-data www-data 4096 Jun 23 22:18. drwxr-xr-x 3 root root 4096 Jun 23 22:29.. -rw-r--r-- 1 www-data www-data 0 Jun 23 21:58 index.html -rw-r--r-- 1 www-data www-data 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.

ubuntu nfs mount terminal