Linux

Så här installerar och konfigurerar du en NFS-server på Ubuntu 20.04

Så här installerar och konfigurerar du en NFS-server på Ubuntu 20.04

NFS eller Network File System är ett distribuerat filsystemprotokoll som låter dig dela kataloger över ett nätverk. Med NFS kan du montera fjärrkataloger på ditt system och arbeta med filerna på fjärrmaskinen som om de vore lokala filer.

Som standard är NFS-protokollet inte krypterat och tillhandahåller inte användarautentisering. Åtkomst till servern är begränsad av klientens IP-adresser eller värdnamn.

Den här artikeln förklarar hur du ställer in en NFSv4-server på Ubuntu 20.04. Vi visar dig också hur du monterar ett NFS-filsystem på klientmaskinen.

Förutsättningar #

Vi använder två maskiner, en som kör Ubuntu 20.04, som kommer att fungera som en NFS-server, och en annan som kör någon annan Linux-distribution som vi monterar delningen på. Servern och klienterna ska kunna kommunicera med varandra via ett privat nätverk. Du kan använda offentliga IP-adresser och konfigurera serverns brandvägg för att tillåta trafik på porten 2049 endast från betrodda källor.

Maskinerna i detta exempel har följande IP: er:

NFS-server IP: 192.168.33.10 NFS-klienters IP: er: från 192.168.33.0/24 intervall 

Ställ in NFS-server #

Det första steget är att ställa in NFS-servern. Vi installerar nödvändiga paket, skapar och exporterar NFS-katalogerna och konfigurerar brandväggen.

Installera NFS-servern #

NFS-serverpaketet ger stöd för användarutrymme som behövs för att köra NFS-kärnservern. För att installera paketet, kör:

sudo apt uppdateringsudo apt installera nfs-kernel-server

När installationen är klar startar NFS-tjänsterna automatiskt.

På Ubuntu 20.04, NFS version 2 är inaktiverad. Version 3 och 4 är aktiverade. Du kan verifiera det genom att köra följande katt kommando:

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

NFSv2 är ganska gammalt nu, och det finns ingen anledning att aktivera det.

NFS-serverkonfiguration definieras i / etc / default / nfs-kernel-server och / etc / default / nfs-common filer. Standardinställningarna är tillräckliga för de flesta situationer.

Skapa filsystem #

NFSv4-servern använder en global rotkatalog och de exporterade katalogerna är relativt denna katalog. Du kan länka delningsfästpunkten till de kataloger som du vill exportera med bindningsfästen.

I det här exemplet ställer vi in / srv / nfs4 katalog som NFS-rot. För att bättre förklara hur NFS-fästen kan konfigureras, kommer vi att dela två kataloger (/ var / www och / opt / backup) med olika konfigurationsinställningar. De / var / www / ägs av användaren www-data, och / opt / backup ägs av rot.

Skapa först rotkatalogen och dela monteringspunkter:

sudo mkdir -p / srv / nfs4 / säkerhetskopiorsudo mkdir -p / srv / nfs4 / www

Bind montera katalogerna till delmonteringspunkterna:

sudo mount - bind / opt / backup / srv / nfs4 / backupsudo mount - bind / var / www / srv / nfs4 / www

För att göra bindningsfästena permanenta omstartar, öppna / etc / fstab fil:

sudo nano / etc / fstab

och lägg till följande rader:

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

Exportera filsystemen #

Nästa steg är att lägga till de filsystem som kommer att exporteras och klienterna får åtkomst till dessa delar till / etc / export fil.

Varje rad för ett exporterat filsystem har följande form:

exportera värd (alternativ) 

Var exportera är den exporterade katalogen, värd är ett värdnamn eller IP-adress / intervall som har åtkomst till exporten, och alternativ är värdalternativen.

Öppna / etc / export fil och lägg till följande rader:

sudo nano / etc / export
/ etc / export
/ 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örsta raden innehåller fsid = 0 som definierar NFS-rotkatalogen (/ srv / nfs4). Åtkomst till denna NFS-volym är endast tillåten för klienter från 192.168.33.0/24 undernät. De crossmnt alternativet krävs för att dela kataloger som är underkataloger i en exporterad katalog.

Den andra raden visar hur man anger flera exportregler för ett filsystem. Läsåtkomst är tillåten för hela 192.168.33.0/24 intervall och både läs- och skrivåtkomst endast till 192.168.33.3 IP-adress. De synkronisera alternativ ber NFS att skriva ändringar på disken innan du svarar.

Den sista raden är självförklarande. För mer information om alla tillgängliga alternativ, typ man exporterar i din terminal.

Spara filen och exportera delningarna:

sudo exportfs -ar

Du måste köra kommandot ovan varje gång du ändrar / etc / export fil. Om det finns några fel eller varningar kommer de att visas på terminalen.

För att se den aktuella aktiva exporten och deras tillstånd, använd:

sudo exportfs -v

Produktionen inkluderar alla aktier med deras optioner. Som du kan se finns det också alternativ som vi inte har definierat i / etc / export fil. Det här är standardalternativ och om du vill ändra dem måste du uttryckligen ställa in dessa alternativ.

/ srv / nfs4 / säkerhetskopior 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 / backup 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 är aktiverat som standard. Detta är ett av de viktigaste alternativen för NFS-säkerhet. Det förhindrar root-användare som är anslutna från klienterna från att ha root-privilegier på de monterade delarna genom att mappa root UID och GID till ingen/noggrupp UID/GID.

För att användarna på klientdatorerna ska ha åtkomst förväntar sig NFS att klientens användar- och grupp-ID matchar med dem på servern. Ett annat alternativ är att använda NFSv4 idmapping-funktionen som översätter användar- och grupp-ID: n till namn och tvärtom.

Det är allt. Vid den här tiden har du konfigurerat en NFS-server på din Ubuntu-server. Du kan nu gå till nästa steg och konfigurera klienterna och ansluta till NFS-servern.

Brandväggskonfiguration #

Om du installerar Jenkins på en fjärran Ubuntu-server som är skyddad av en brandvägg måste du aktivera trafik på NFS-porten:

sudo ufw tillåta från 192.168.33.0/24 till valfri port nfs

Verifiera ändringen:

sudo ufw-status

Utgången ska visa att trafiken på porten 2049 är tillåtet:

Till handling från - ------ ---- 2049 TILLÅT 192.168.33.0/24 22 / tcp ALLOW Anywhere 22 / tcp (v6) ALLOW Anywhere (v6) 

Ställ in NFS-klienterna #

Nu när NFS-servern är konfigurerad och aktier exporteras är nästa steg att konfigurera klienterna och montera fjärrfilsystemen.

Vi fokuserar på Linux-system, men du kan också montera NFS-andelen på macOS och Windows-maskiner.

Installera NFS-klienten #

På klientmaskinerna behöver vi bara installera de verktyg som krävs för att montera ett fjärranslutet NFS-filsystem.

Montering av filsystem #

Vi arbetar på klientmaskinen med IP 192.168.33.20, som har läs- och skrivåtkomst till / srv / nfs4 / www filsystem och skrivskyddad åtkomst till / srv / nfs4 / säkerhetskopior filsystem.

Skapa två nya kataloger för monteringspunkterna:

sudo mkdir -p / säkerhetskopiorsudo mkdir -p / srv / www

Du kan skapa kataloger på vilken plats du vill.

Montera de exporterade filsystemen med montera kommando:

sudo mount -t nfs -o vers = 4 192.168.33.10: / säkerhetskopior / säkerhetskopiorsudo mount -t nfs -o vers = 4 192.168.33.10: / www / srv / www

Var 192.168.33.10 är IP: n för NFS-servern. Du kan också använda värdnamnet istället för IP-adressen, men det måste lösas av klientmaskinen. Detta görs vanligtvis genom att mappa värdnamnet till IP-adressen i / etc / värdar fil.

När du monterar ett NFSv4-filsystem, utelämna NFS-rotkatalogen. Använda sig av / säkerhetskopior, istället för / srv / nfs4 / säkerhetskopior.

Kontrollera att fjärrfilsystemen har monterats framgångsrikt med antingen mount eller df kommando:

df -h

Kommandot skriver ut alla monterade filsystem. De sista två raderna är de monterade aktierna:

Filsystemstorlek som används Tillgänglig användning% monterad 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% / kör / lås tmpfs 994M 0 994M 0% / sys / fs / cgroup / dev / sda1 456M 197M 226M 47% / start tmpfs 199M 0199M 0% / kör / användare / 1000192.168.33.10: / säkerhetskopior 124G 2.8G 115G 3% / säkerhetskopior 192.168.33.10: / www 124G 2.8G 115G 3% / srv / www

För att göra fästena permanent vid omstart, öppna / etc / fstab fil och lägg till följande rader ::

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

För information om tillgängliga alternativ när du monterar ett NFS-filsystem, skriv man nfs i din terminal.

Ett annat alternativ för att montera fjärrfilsystem är att använda antingen autofs verktyg eller för att skapa en systemd enhet.

Testar NFS Access #

Låt oss testa åtkomsten till aktierna genom att skapa en ny fil på var och en av dem.

Först försök skapa en testfil till / säkerhetskopior katalog med Rör kommando:

sudo touch / säkerhetskopior / test.Text

De /säkerhetskopiering filsystemet exporteras som skrivskyddad och som förväntat ser du ett Åtkomst nekad felmeddelande:

touch: kan inte röra vid '/ backup / test': Tillåtelse nekad 

Försök sedan skapa en testfil till / srv / www katalog som en rot med hjälp av sudo kommando:

sudo touch / srv / www / test.Text

Återigen kommer du att se Åtkomst nekad meddelande.

touch: kan inte röra vid '/ srv / www': Tillstånd nekad 

Om du kommer ihåg, / var / www katalogen ägs av www-data användare, och denna delning har root_squash alternativuppsättning som mappar rotanvändaren till ingen användare och noggrupp grupp som inte har skrivbehörighet till fjärrdelningen.

Förutsatt att du har en www-data användning på klientmaskinen med samma UID och GID som på fjärrservern (vilket skulle vara fallet om du till exempel installerade nginx på båda maskinerna) kan du försöka skapa en fil som användare www-data:

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

Kommandot visar ingen utdata vilket betyder att filen skapades.

För att verifiera det listar filerna i / srv / www katalog:

ls -la / srv / www

Utgången ska visa den nyskapade filen:

drwxr-xr-x 3 www-data www-data 4096 10 apr 22:18 . drwxr-xr-x 3 root root 4096 Apr 10 22: 29 ... -rw-r - r-- 1 www-data www-data 0 Apr 10 21:58 index.html -rw-r - r-- 1 www-data www-data 0 Apr 10 22:18 test.Text 

Avmontering av NFS-filsystem #

Om den externa NFS-resursen inte längre behövs kan du avmontera den som alla andra monterade filsystem som använder umount kommando.

Till exempel för att avmontera /säkerhetskopiering dela, skulle du springa:

sudo umount / backup

Om monteringspunkten är definierad i / etc / fstab se till att du tar bort raden eller kommenterar den genom att lägga till # i början av raden.

Slutsats #

Vi har visat dig hur du ställer in en NFS-server och hur du monterar fjärrfilsystemen på klientmaskinerna. Om du implementerar NFS i produktion och delar förnuftiga data är det en bra idé att aktivera kerberos-autentisering.

Som ett alternativ till NFS kan du använda SSHFS för att montera fjärrkataloger via en SSH-anslutning. SSHFS är krypterad som standard och mycket lättare att konfigurera och använda.

Lämna gärna en kommentar om du har några frågor.

Mus Omforma dina musknappar på olika sätt för olika program med X-Mouse Button Control
Omforma dina musknappar på olika sätt för olika program med X-Mouse Button Control
Kanske behöver du ett verktyg som kan göra att musens kontroll ändras med alla applikationer som du använder. Om så är fallet kan du prova en ansökan ...
Mus Microsoft Sculpt Touch Wireless Mouse Review
Microsoft Sculpt Touch Wireless Mouse Review
Jag har nyligen läst om Microsoft Sculpt Touch trådlös mus och bestämde mig för att köpa den. Efter att ha använt den ett tag bestämde jag mig för att...
Mus AppyMouse styrplatta och muspekare för Windows-surfplattor
AppyMouse styrplatta och muspekare för Windows-surfplattor
Surfplattanvändare saknar ofta muspekaren, särskilt när de brukar använda bärbara datorer. Pekskärmen Smartphones och surfplattor har många fördelar o...