Linux

Sådan installeres og konfigureres en NFS-server på Ubuntu 20.04

Sådan installeres og konfigureres en NFS-server på Ubuntu 20.04

NFS eller Network File System er en distribueret filsystemprotokol, der giver dig mulighed for at dele mapper over et netværk. Med NFS kan du montere fjernmapper på dit system og arbejde med filerne på den eksterne maskine, som om de var lokale filer.

Som standard er NFS-protokollen ikke krypteret og giver ikke brugergodkendelse. Adgang til serveren er begrænset af klientens IP-adresser eller værtsnavne.

Denne artikel forklarer, hvordan du opsætter en NFSv4-server på Ubuntu 20.04. Vi viser dig også, hvordan du monterer et NFS-filsystem på klientmaskinen.

Forudsætninger #

Vi bruger to maskiner, den ene kører Ubuntu 20.04, som fungerer som en NFS-server, og en anden, der kører enhver anden Linux-distribution, hvorpå vi monterer delingen. Serveren og klienterne skal være i stand til at kommunikere med hinanden via et privat netværk. Du kan bruge offentlige IP-adresser og konfigurere serverens firewall til at tillade trafik i havnen 2049 kun fra pålidelige kilder.

Maskinerne i dette eksempel har følgende IP'er:

NFS-server IP: 192.168.33.10 NFS-klienters IP-adresser: Fra 192.168.33.0/24 rækkevidde 

Opsæt NFS Server #

Det første trin er at opsætte NFS-serveren. Vi installerer de nødvendige pakker, opretter og eksporterer NFS-mapper og konfigurerer firewall.

Installation af NFS-server #

NFS-serverpakken giver support til brugerrum, der er nødvendig for at køre NFS-kerneserveren. For at installere pakken skal du køre:

sudo apt opdateringsudo apt installere nfs-kernel-server

Når installationen er afsluttet, starter NFS-tjenesterne automatisk.

På Ubuntu 20.04, NFS version 2 er deaktiveret. Version 3 og 4 er aktiveret. Du kan bekræfte det ved at køre følgende kat kommando:

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

NFSv2 er ret gammel nu, og der er ingen grund til at aktivere det.

NFS-serverkonfiguration er defineret i / etc / default / nfs-kernel-server og / etc / default / nfs-common filer. Standardindstillingerne er tilstrækkelige i de fleste situationer.

Oprettelse af filsystemer #

NFSv4-serveren bruger en global rodmappe, og de eksporterede mapper er i forhold til denne mappe. Du kan linke delemonteringspunktet til de mapper, du vil eksportere, ved hjælp af bindemonteringer.

I dette eksempel indstiller vi / srv / nfs4 mappe som NFS-rod. For bedre at forklare, hvordan NFS-monteringerne kan konfigureres, deler vi to mapper (/ var / www og / opt / sikkerhedskopier) med forskellige konfigurationsindstillinger. Det / var / www / ejes af brugeren www-data, og / opt / sikkerhedskopier ejes af rod.

Opret først rodmappen og delemonteringspunkterne:

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

Bind monter mapperne til delmonteringspunkterne:

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

For at gøre bindingsbeslagene permanente på tværs af genstart, skal du åbne / etc / fstab fil:

sudo nano / etc / fstab

og tilføj følgende linjer:

/ etc / fstab
/ opt / sikkerhedskopier / srv / nfs4 / sikkerhedskopier ingen bind 0 0 / var / www / srv / nfs4 / www ingen bind 0 0 

Eksport af filsystemer #

Det næste trin er at tilføje de filsystemer, der eksporteres, og klienterne får adgang til disse aktier til / etc / eksport fil.

Hver linje til et eksporteret filsystem har følgende form:

eksporter vært (valgmuligheder) 

Hvor eksport er den eksporterede mappe, vært er et værtsnavn eller IP-adresse / interval, der har adgang til eksporten, og muligheder er værtsindstillingerne.

Åbn / etc / eksport fil og tilføj 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 / 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.20 (rw, sync, no_subtree_check) 

Den første linje indeholder fsid = 0 mulighed, der definerer NFS-rodmappen (/ srv / nfs4). Adgang til dette NFS-volumen er kun tilladt for klienter fra 192.168.33.0/24 undernet. Det crossmnt der kræves mulighed for at dele kataloger, der er underkataloger i en eksporteret mappe.

Den anden linje viser, hvordan man angiver flere eksportregler for et filsystem. Læseadgang er tilladt for det hele 192.168.33.0/24 rækkevidde, og både læsning og skriveadgang til 192.168.33.3 IP-adresse. Det synkronisere mulighed fortæller NFS at skrive ændringer til disken, før du svarer.

Den sidste linje er selvforklarende. For mere information om alle de tilgængelige valgmuligheder type mand eksporterer i din terminal.

Gem filen og eksporter aktierne:

sudo exportfs -ar

Du skal køre kommandoen ovenfor hver gang du ændrer / etc / eksport fil. Hvis der er fejl eller advarsler, vises de på terminalen.

For at se den aktuelle aktive eksport og deres tilstand skal du bruge:

sudo exportfs -v

Outputtet inkluderer alle aktier med deres optioner. Som du kan se, er der også muligheder, som vi ikke har defineret i / etc / eksport fil. Disse er standardindstillinger, og hvis du vil ændre dem, skal du udtrykkeligt indstille disse muligheder.

/ srv / nfs4 / sikkerhedskopier 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 aktiveret som standard. Dette er en af ​​de vigtigste muligheder for NFS-sikkerhed. Det forhindrer root-brugere, der er tilsluttet fra klienterne, i at have root-rettigheder på de monterede aktier ved at kortlægge root UID og GID til ingen/noggroup UID/GID.

For at brugerne på klientmaskinerne skal have adgang, forventer NFS, at klientens bruger- og gruppe-id'er skal matche dem på serveren. En anden mulighed er at bruge NFSv4 idmapping-funktionen, der oversætter bruger- og gruppe-id'er til navne og omvendt.

Det er det. På dette tidspunkt har du oprettet en NFS-server på din Ubuntu-server. Du kan nu gå til næste trin og konfigurere klienterne og oprette forbindelse til NFS-serveren.

Firewall-konfiguration #

Hvis du installerer Jenkins på en ekstern Ubuntu-server, der er beskyttet af en firewall, skal du aktivere trafik på NFS-porten:

sudo ufw tillader fra 192.168.33.0/24 til enhver port nfs

Bekræft ændringen:

sudo ufw status

Outputtet skal vise, at trafikken på havnen 2049 er tilladt:

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

Opsæt NFS-klienter #

Nu hvor NFS-serveren er konfigureret, og aktier eksporteres, er næste trin at konfigurere klienterne og montere de eksterne filsystemer.

Vi fokuserer på Linux-systemer, men du kan også montere NFS-share på macOS og Windows-maskiner.

Installation af NFS-klient #

På klientmaskinerne skal vi kun installere de nødvendige værktøjer til montering af et eksternt NFS-filsystem.

Montering af filsystemer #

Vi arbejder på klientmaskinen med IP 192.168.33.20, som har læse - og skriveadgang til / srv / nfs4 / www filsystem og skrivebeskyttet adgang til / srv / nfs4 / sikkerhedskopier filsystem.

Opret to nye mapper til monteringspunkterne:

sudo mkdir -p / sikkerhedskopiersudo mkdir -p / srv / www

Du kan oprette mapper hvor som helst, du ønsker.

Monter de eksporterede filsystemer med monteres kommando:

sudo mount -t nfs -o vers = 4 192.168.33.10: / sikkerhedskopier / sikkerhedskopiersudo mount -t nfs -o vers = 4 192.168.33.10: / www / srv / www

Hvor 192.168.33.10 er NFS-serverens IP. Du kan også bruge værtsnavnet i stedet for IP-adressen, men det skal løses af klientmaskinen. Dette gøres normalt ved at kortlægge værtsnavnet til IP'en i / etc / hosts fil.

Når du monterer et NFSv4-filsystem, skal du udelade NFS-rodmappen. Brug / sikkerhedskopier, i stedet for / srv / nfs4 / sikkerhedskopier.

Kontroller, at de eksterne filsystemer er monteret med succes ved hjælp af enten mount eller df kommando:

df -h

Kommandoen udskriver alle monterede filsystemer. De sidste to linjer er monterede aktier:

Brugt filsystemstørrelse Brug Brug% Monteret 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: / sikkerhedskopier 124G 2.8G 115G 3% / sikkerhedskopier 192.168.33.10: / www 124G 2.8G 115G 3% / srv / www

For at gøre monteringerne permanente ved genstart skal du åbne / etc / fstab fil og tilføj følgende linjer ::

sudo nano / etc / fstab
/ etc / fstab
192.168.33.10: / backup / backups nfs standardindstillinger, timeo = 900, retrans = 5, _netdev 0 0 192.168.33.10: / www / srv / www nfs standardindstillinger, timeo = 900, retrans = 5, _netdev 0 0 

For at få oplysninger om de tilgængelige muligheder, når du monterer et NFS-filsystem, skal du skrive mand nfs i din terminal.

En anden mulighed for at montere eksterne filsystemer er at bruge enten autofs værktøj eller at oprette en systemd enhed.

Test af NFS Access #

Lad os teste adgangen til aktierne ved at oprette en ny fil på hver af dem.

Prøv først at oprette en testfil til / sikkerhedskopier bibliotek ved hjælp af røre ved kommando:

sudo touch / sikkerhedskopier / test.txt

Det / backup filsystemet eksporteres som skrivebeskyttet, og som forventet vil du se en Adgang nægtet fejl besked:

touch: kan ikke røre ved '/ backup / test': Tilladelse nægtet 

Prøv derefter at oprette en testfil til / srv / www bibliotek som en rod ved hjælp af sudo kommando:

sudo touch / srv / www / test.txt

Igen vil du se Adgang nægtet besked.

touch: kan ikke røre '/ srv / www': Tilladelse nægtet 

Hvis du husker, er / var / www biblioteket ejes af www-data bruger, og denne deling har root_squash indstillingssæt, som kortlægger rodbrugeren til ingen bruger og noggroup gruppe, der ikke har skrivetilladelser til den eksterne deling.

Forudsat at du har en www-data brug på klientmaskinen med det samme UID og GID som på fjernserveren (hvilket skulle være tilfældet, hvis du f.eks. installerede nginx på begge maskiner), kan du prøve at oprette en fil som bruger www-data:

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

Kommandoen viser ingen output, hvilket betyder, at filen blev oprettet.

For at bekræfte det, anføres filerne i / srv / www vejviser:

ls -la / srv / www

Outputtet skal vise den nyoprettede fil:

drwxr-xr-x 3 www-data www-data 4096 10. april 22:18 . drwxr-xr-x 3 rodrod 4096 10. apr 22: 29… -rw-r - r-- 1 www-data www-data 0 apr 10 21:58 indeks.html -rw-r - r-- 1 www-data www-data 0 Apr 10 22:18 test.txt 

Afmontering af NFS-filsystem #

Hvis den eksterne NFS-deling ikke længere er nødvendig, kan du afmontere den som ethvert andet monteret filsystem ved hjælp af umount kommando.

For eksempel at afmontere / backup del, du vil løbe:

sudo umount / sikkerhedskopier

Hvis monteringspunktet er defineret i / etc / fstab Sørg for at fjerne linjen eller kommentere den ved at tilføje # i begyndelsen af ​​linjen.

Konklusion #

Vi har vist dig, hvordan du opsætter en NFS-server, og hvordan du monterer de eksterne filsystemer på klientmaskinerne. Hvis du implementerer NFS i produktion og deler fornuftige data, er det en god ide at aktivere kerberos-godkendelse.

Som et alternativ til NFS kan du bruge SSHFS til at montere fjernmapper over en SSH-forbindelse. SSHFS er krypteret som standard og meget lettere at konfigurere og bruge.

Du er velkommen til at efterlade en kommentar, hvis du har spørgsmål.

Top 10 spil at spille på Ubuntu
Windows-platform har været en af ​​de dominerende platforme til spil på grund af den enorme procentdel af spil, der udvikler sig i dag til indbygget a...
5 bedste arkadespil til Linux
I dag er computere seriøse maskiner, der bruges til spil. Hvis du ikke kan få den nye høje score, ved du hvad jeg mener. I dette indlæg vil du kende n...
Kamp om Wesnoth 1.13.6 Udvikling frigivet
Kamp om Wesnoth 1.13.6 udgivet i sidste måned, er den sjette udviklingsudgivelse i 1.13.x-serien, og den leverer en række forbedringer, især til bruge...