Linux

Slik installerer og konfigurerer du en NFS-server på Ubuntu 20.04

Slik installerer og konfigurerer du en NFS-server på Ubuntu 20.04

NFS eller Network File System er en distribuert filsystemprotokoll som lar deg dele kataloger over et nettverk. Med NFS kan du montere eksterne kataloger på systemet ditt og jobbe med filene på den eksterne maskinen som om de var lokale filer.

Som standard er NFS-protokollen ikke kryptert og gir ikke brukerautentisering. Tilgang til serveren er begrenset av klientens IP-adresser eller vertsnavn.

Denne artikkelen forklarer hvordan du setter opp en NFSv4-server på Ubuntu 20.04. Vi viser deg også hvordan du monterer et NFS-filsystem på klientmaskinen.

Forutsetninger #

Vi bruker to maskiner, en som kjører Ubuntu 20.04, som vil fungere som en NFS-server, og en annen som kjører en hvilken som helst annen Linux-distribusjon som vi vil montere andelen på. Serveren og klientene skal kunne kommunisere med hverandre over et privat nettverk. Du kan bruke offentlige IP-adresser og konfigurere serverbrannmuren for å tillate trafikk på porten 2049 bare fra pålitelige kilder.

Maskinene i dette eksemplet har følgende IP-er:

NFS Server IP: 192.168.33.10 NFS-klienter IP-er: Fra 192.168.33.0/24 rekkevidde 

Sett opp NFS Server #

Det første trinnet er å sette opp NFS-serveren. Vi installerer de nødvendige pakkene, oppretter og eksporterer NFS-katalogene og konfigurerer brannmuren.

Installere NFS-serveren #

NFS-serverpakken gir brukerstøtte som er nødvendig for å kjøre NFS-kjernetjeneren. For å installere pakken, kjør:

sudo apt oppdateringsudo apt installere nfs-kernel-server

Når installasjonen er fullført, starter NFS-tjenestene automatisk.

På Ubuntu 20.04, NFS versjon 2 er deaktivert. Versjon 3 og 4 er aktivert. Du kan bekrefte det ved å kjøre følgende katt kommando:

sudo cat / proc / fs / nfsd / versjoner
-2 +3 +4 +4.1 +4.2 

NFSv2 er ganske gammel nå, og det er ingen grunn til å aktivere det.

NFS-serverkonfigurasjon er definert i / etc / default / nfs-kernel-server og / etc / default / nfs-common filer. Standardinnstillingene er tilstrekkelig for de fleste situasjoner.

Opprette filsystemene #

NFSv4-serveren bruker en global rotkatalog, og de eksporterte katalogene er i forhold til denne katalogen. Du kan koble monteringspunktet for deling til katalogene du vil eksportere ved hjelp av bindingsfester.

I dette eksemplet setter vi inn / srv / nfs4 katalog som NFS-rot. For å bedre forklare hvordan NFS-festene kan konfigureres, skal vi dele to kataloger (/ var / www og / opt / backup) med forskjellige konfigurasjonsinnstillinger. De / var / www / eies av brukeren www-data, og / opt / backup eies av rot.

Opprett først rotkatalogen og delingspunktene:

sudo mkdir -p / srv / nfs4 / sikkerhetskopiersudo mkdir -p / srv / nfs4 / www

Bind monter katalogene til delmonteringspunktene:

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

For å gjøre bindingsfestene permanente på tvers av omstart, åpner du / etc / fstab fil:

sudo nano / etc / fstab

og legg til følgende linjer:

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

Eksportere filsystemene #

Det neste trinnet er å legge til filsystemene som skal eksporteres og klientene får tilgang til disse delene til / etc / eksport fil.

Hver linje for et eksportert filsystem har følgende skjema:

eksporter vert (opsjoner) 

Hvor eksport er den eksporterte katalogen, vert er et vertsnavn eller IP-adresse / område som har tilgang til eksporten, og alternativer er vertsalternativene.

Åpne / etc / eksport fil og legg til følgende linjer:

sudo nano / etc / eksport
/ etc / eksport
/ srv / nfs4 192.168.33.0/24 (rw, sync, no_subtree_check, crossmnt, fsid = 0) / srv / nfs4 / backup 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) 

Den første linjen inneholder fsid = 0 som definerer NFS-rotkatalogen (/ srv / nfs4). Tilgang til dette NFS-volumet er kun tillatt for klienter fra 192.168.33.0/24 undernett. De crossmnt alternativet kreves for å dele kataloger som er underkataloger i en eksportert katalog.

Den andre linjen viser hvordan du spesifiserer flere eksportregler for ett filsystem. Lesetilgang er tillatt for helheten 192.168.33.0/24 rekkevidde, og både lese- og skrivetilgang bare til 192.168.33.3 IP adresse. De synkronisering alternativet forteller NFS å skrive endringer på disken før du svarer.

Den siste linjen er selvforklarende. For mer informasjon om alle tilgjengelige alternativer, skriv mann eksporterer i terminalen din.

Lagre filen og eksporter delene:

sudo exportfs -ar

Du må kjøre kommandoen ovenfor hver gang du endrer / etc / eksport fil. Hvis det er feil eller advarsler, vil de vises på terminalen.

For å se den nåværende aktive eksporten og deres tilstand, bruk:

sudo exportfs -v

Produksjonen inkluderer alle aksjer med opsjoner. Som du ser er det også alternativer som vi ikke har definert i / etc / eksport fil. Dette er standardalternativer, og hvis du vil endre dem, må du angi disse alternativene eksplisitt.

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

På Ubuntu, root_squash er aktivert som standard. Dette er et av de viktigste alternativene angående NFS-sikkerhet. Det forhindrer root-brukere som er koblet fra klientene, fra å ha root-rettigheter på de monterte delene ved å tilordne root UID og GID til ingen/noggroup UID/GID.

For at brukerne på klientmaskinene skal ha tilgang, forventer NFS at klientens bruker- og gruppe-ID-er samsvarer med de på serveren. Et annet alternativ er å bruke NFSv4 idmapping-funksjonen som oversetter bruker- og gruppe-ID-er til navn og omvendt.

Det er det. På dette tidspunktet har du satt opp en NFS-server på Ubuntu-serveren din. Du kan nå gå til neste trinn og konfigurere klientene og koble til NFS-serveren.

Brannmurkonfigurasjon #

Hvis du installerer Jenkins på en ekstern Ubuntu-server som er beskyttet av en brannmur, må du aktivere trafikk på NFS-porten:

sudo ufw tillate fra 192.168.33.0/24 til hvilken som helst port nfs

Bekreft endringen:

sudo ufw status

Utgangen skal vise at trafikken på havnen 2049 er tillatt:

Til handling fra - ------ ---- 2049 TILLAT 192.168.33.0/24 22 / tcp ALLOW Anywhere 22 / tcp (v6) ALLOW Anywhere (v6) 

Sett opp NFS-klienter #

Nå som NFS-serveren er konfigurert og aksjer eksporteres, er neste trinn å konfigurere klientene og montere de eksterne filsystemene.

Vi vil fokusere på Linux-systemer, men du kan også montere NFS-andelen på macOS og Windows-maskiner.

Installere NFS-klienten #

På klientmaskinene trenger vi bare å installere verktøyene som kreves for å montere et eksternt NFS-filsystem.

Montering av filsystemer #

Vi jobber på klientmaskinen med IP 192.168.33.20, som har lese- og skrivetilgang til / srv / nfs4 / www filsystem og skrivebeskyttet tilgang til / srv / nfs4 / sikkerhetskopier filsystem.

Lag to nye kataloger for festepunktene:

sudo mkdir -p / sikkerhetskopiersudo mkdir -p / srv / www

Du kan opprette katalogene hvor du vil.

Monter de eksporterte filsystemene med montere kommando:

sudo mount -t nfs -o vers = 4 192.168.33.10: / sikkerhetskopier / sikkerhetskopiersudo mount -t nfs -o vers = 4 192.168.33.10: / www / srv / www

Hvor 192.168.33.10 er IP til NFS-serveren. Du kan også bruke vertsnavnet i stedet for IP-adressen, men det må løses av klientmaskinen. Dette gjøres vanligvis ved å kartlegge vertsnavnet til IP-en i / etc / verter fil.

Når du monterer et NFSv4-filsystem, utelater du NFS-rotkatalogen. Bruk / sikkerhetskopier, i stedet for / srv / nfs4 / sikkerhetskopier.

Kontroller at de eksterne filsystemene er vellykket montert ved hjelp av enten holderen eller df kommando:

df -h

Kommandoen vil skrive ut alle monterte filsystemer. De to siste linjene er monterte aksjer:

Filsystemstørrelse brukt Benytt Bruk% montert på 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 0199M 0% / run / user / 1000192.168.33.10: / sikkerhetskopier 124G 2.8G 115G 3% / sikkerhetskopier 192.168.33.10: / www 124G 2.8G 115G 3% / srv / www

For å gjøre monteringen permanent ved omstart, åpner du / etc / fstab fil og legg til følgende linjer ::

sudo nano / etc / fstab
/ etc / fstab
192.168.33.10: / sikkerhetskopier / sikkerhetskopier nfs standard, timeo = 900, retrans = 5, _netdev 0 0 192.168.33.10: / www / srv / www nfs standard, timeo = 900, retrans = 5, _netdev 0 0 

For informasjon om tilgjengelige alternativer når du monterer et NFS-filsystem, skriv inn mann nfs i terminalen din.

Et annet alternativ for å montere eksterne filsystemer er å bruke enten autofs verktøy eller for å lage en systemd enhet.

Testing av NFS Access #

La oss teste tilgangen til aksjene ved å opprette en ny fil på hver av dem.

Først prøver du å lage en testfil til / sikkerhetskopier katalog ved hjelp av ta på kommando:

sudo touch / sikkerhetskopier / test.tekst

De / backup filsystemet eksporteres som skrivebeskyttet, og som forventet vil du se a Tillatelse avslått feilmelding:

touch: kan ikke berøre '/ backup / test': Tillatelse nektet 

Prøv deretter å lage en testfil til / srv / www katalog som en rot ved hjelp av sudo kommando:

sudo touch / srv / www / test.tekst

Igjen, du vil se Tillatelse avslått beskjed.

touch: kan ikke berøre '/ srv / www': Tillatelse nektet 

Hvis du husker, er / var / www katalogen eies av www-data bruker, og denne andelen har root_squash alternativsett som tilordner rotbrukeren til ingen bruker og noggroup gruppe som ikke har skrivetillatelse til ekstern deling.

Forutsatt at du har en www-data bruk på klientmaskinen med det samme UID og GID som på den eksterne serveren (som f.eks. hvis du installerte nginx på begge maskinene), kan du prøve å opprette en fil som bruker www-data:

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

Kommandoen viser ingen utdata, noe som betyr at filen ble opprettet.

For å bekrefte det, vises filene i / srv / www katalog:

ls -la / srv / www

Utgangen skal vise den nyopprettede filen:

drwxr-xr-x 3 www-data www-data 4096 10. april 22:18 . drwxr-xr-x 3 rotrot 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.tekst 

Demontere NFS File System #

Hvis den eksterne NFS-delen ikke lenger er nødvendig, kan du demontere den som ethvert annet montert filsystem ved hjelp av umount kommando.

For eksempel å demontere / backup dele, vil du løpe:

sudo umount / backup

Hvis festepunktet er definert i / etc / fstab sørg for at du fjerner linjen eller kommenterer den ved å legge til # i begynnelsen av linjen.

Konklusjon #

Vi har vist deg hvordan du setter opp en NFS-server og hvordan du monterer de eksterne filsystemene på klientmaskinene. Hvis du implementerer NFS i produksjon og deler fornuftige data, er det en god ide å aktivere kerberos-autentisering.

Som et alternativ til NFS, kan du bruke SSHFS til å montere eksterne kataloger over en SSH-tilkobling. SSHFS er kryptert som standard og mye lettere å konfigurere og bruke.

Legg gjerne igjen en kommentar hvis du har spørsmål.

Mus Legg til musebevegelser i Windows 10 ved hjelp av disse gratisverktøyene
Legg til musebevegelser i Windows 10 ved hjelp av disse gratisverktøyene
De siste årene har datamaskiner og operativsystemer utviklet seg sterkt. Det var en tid da brukere måtte bruke kommandoer for å navigere gjennom filad...
Mus Kontroller og administrer musebevegelser mellom flere skjermer i Windows 10
Kontroller og administrer musebevegelser mellom flere skjermer i Windows 10
Dual Display Mouse Manager lar deg kontrollere og konfigurere musebevegelse mellom flere skjermer, ved å bremse bevegelsene nær grensen. Windows 10/8,...
Mus WinMouse lar deg tilpasse og forbedre musemarkørenes bevegelse på Windows PC
WinMouse lar deg tilpasse og forbedre musemarkørenes bevegelse på Windows PC
Hvis du vil forbedre standardfunksjonene til musepekeren, bruk freeware WinMouse. Det legger til flere funksjoner som hjelper deg å få mest mulig ut a...