Android

Hur man installerar och konfigurerar en nfs-server på ubuntu 18.04

How to configure Netwok file Sharing Server (NFS Server) in Ubuntu Linux 18.04

How to configure Netwok file Sharing Server (NFS Server) in Ubuntu Linux 18.04

Innehållsförteckning:

Anonim

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

NFS-protokollet är inte krypterat som standard och till skillnad från Samba tillhandahåller det inte användarautentisering. Tillgång till servern är begränsad av klienternas IP-adresser eller värdnamn.

I den här tutorialen går vi igenom hur man ställer in en NFSv4-server på Ubuntu 18.04. Vi visar också hur du monterar ett NFS-filsystem på klienten.

förutsättningar

Detta exempel antar att du har en server som kör Ubuntu 18.04 och en annan som kör någon annan Linux-distribution. Servern och klienterna ska kunna kommunicera med varandra via ett privat nätverk. Om din webbhotell inte erbjuder privata IP-adresser kan du använda de offentliga IP-adresserna och konfigurera serverns brandvägg för att tillåta trafik på port 2049 endast från pålitliga källor.

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

NFS Server IP: 192.168.33.10 NFS Clients IPs: From the 192.168.33.0/24 range

Ställ in NFS-servern

Vi börjar med att installera och konfigurera NFS-servern.

Installera NFS-servern

Uppdatera paketets index och installera NFS-serverpaketet:

sudo apt update sudo apt install nfs-kernel-server

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

Som standard är NFS-version 2 på Ubuntu 18.04 inaktiverad. Versionerna 3 och 4 är aktiverade. Du kan verifiera det genom att köra följande cat :

sudo cat /proc/fs/nfsd/versions

-2 +3 +4 +4.1 +4.2

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

Alternativ för konfigurering av NFS-server är inställda i /etc/default/nfs-kernel-server och /etc/default/nfs-common filer. Standardinställningarna är tillräckliga i vårt fall.

Skapa filsystem

När du konfigurerar en NFSv4-server är det en bra praxis att använda en global NFS-rotkatalog och binda montera de faktiska katalogerna till delningsmonteringspunkten. I det här exemplet kommer vi att använda /srv/nfs4 regissören som NFS-rot.

Vi kommer att dela två kataloger ( /var/www och /opt/backups ), med olika konfigurationsinställningar, för att bättre förklara hur NFS-fästen kan konfigureras.

/var/www/ ägs av användaren och grupp www-data och /opt/backups ägs av root .

Skapa exportfilsystemet med kommandot mkdir :

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

Montera de faktiska katalogerna:

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

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

sudo nano /etc/fstab

och lägg till följande rader:

/ Etc / fstab

/opt/backups /srv/nfs4/backups none bind 0 0 /var/www /srv/nfs4/www none bind 0 0

Exportera filsystemen

Nästa steg är att definiera filsystemen som kommer att exporteras av NFS-servern, delningsalternativen och klienterna som får åtkomst till dessa filsystem. För att göra det öppnar du /etc/exports :

sudo nano /etc/exports Filen /etc/exports innehåller också kommentarer som beskriver hur man exporterar en katalog.

I vårt fall måste vi exportera katalogerna www och backups och endast tillåta åtkomst från klienter i nätverket 192.168.33.0/24 :

/ etc / export

/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)

Den första raden innehåller fsid=0 som definierar NFS-rotkatalogen /srv/nfs . Åtkomst till denna NFS-volym är endast tillåten för klienterna från 192.168.33.0/24 . crossmnt krävs för att dela kataloger som är underkataloger i en exporterad katalog.

I den andra raden visar hur du anger flera exportregler för ett filsystem. Den exporterar /srv/nfs4/backups och tillåter bara läsåtkomst till hela 192.168.33.0/24 och både läs- och skrivåtkomst till 192.168.33.3 . sync berättar NFS att skriva ändringar på disken innan du svarar.

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

Spara filen och exportera delningarna:

sudo exportfs -ra

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

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

sudo exportfs -v

Produktionen kommer att inkludera alla aktier med sina optioner. Som ni ser finns det också alternativ som vi inte har definierat i /etc/exports . Dessa är standardalternativ och om du vill ändra dem måste du uttryckligen ställa in dessa alternativ.

/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)

På Ubuntu är root_squash standard aktiverad. Detta är ett av de viktigaste alternativen för NFS-säkerhet. Det förhindrar att root-användare som är anslutna från klienterna har root-privilegier på de monterade aktierna. Det kommer att kartlägga root UID och GID till nobody / nogroup UID / GID .

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

Det är allt. Just nu har du skapat 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

Förutsatt att du använder UFW att hantera din brandvägg för att tillåta åtkomst från 192.168.33.0/24 måste du köra följande kommando:

sudo ufw allow from 192.168.33.0/24 to any port nfs

För att verifiera ändringskörningen:

sudo ufw status

Utgången ska visa att trafiken på port 2049 är tillåten:

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

Ställ in NFS-klienter

Nu när NFS-servern är inställd och exporteras delas nästa steg konfigurera klienterna och montera fjärrfilsystemen.

Du kan också montera NFS-andelen på macOS- och Windows-maskiner, men vi kommer att fokusera på Linux-system.

Installera NFS-klienten

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

  • Installera NFS-klient på Debian och Ubuntu

    Namnet på paketet som inkluderar program för montering av NFS-filsystem på Debian-baserade distributioner är nfs-common . Så här installerar du det:

    sudo apt update sudo apt install nfs-common

    Installera NFS-klient på CentOS och Fedora

    På Red Hat och dess derivat installerar nfs-utils :

    sudo yum install nfs-utils

Montering av filsystem

Vi kommer att arbeta på klientmaskinen med IP 192.168.33.110 som har läs- och skrivåtkomst till /srv/nfs4/www och endast /srv/nfs4/backups .

Skapa två nya kataloger för monteringspunkter. Du kan skapa de här katalogerna var du vill.

sudo mkdir -p /backups sudo mkdir -p /srv/www

Montera de exporterade filsystemen med 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

Där 192.168.33.10 är NFS-serverns IP. 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- /etc/hosts filen /etc/hosts .

När du installerar ett NFSv4-filsystem måste du utelämna NFS-rotkatalogen, så i stället för /srv/nfs4/backups måste du använda /backups .

Kontrollera att fjärrfilsystemen har installerats med framgång med antingen kommandot mount eller df :

df -h

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

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

För att göra fästen permanent vid omstart öppnar du /etc/fstab :

sudo nano /etc/fstab

och lägg till följande rader:

/ 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

Om du vill hitta mer information om tillgängliga alternativ när du monterar ett NFS-filsystem skriver du man nfs i terminalen.

Ett annat alternativ att montera fjärrfilsystemen är att använda antingen autofs verktyget eller skapa en systemd-enhet.

Testa NFS-åtkomst

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

Först försöker du skapa en testfil till /backups katalogen med hjälp av touch :

sudo touch /backups/test.txt

Systemet för /backup exporteras som skrivskyddad och som förväntat ser du ett felmeddelande om Permission denied :

touch: cannot touch '/backups/test': Permission denied

Därefter försöker du skapa en testfil till /srv/www katalogen som en root med kommandot sudo :

sudo touch /srv/www/test.txt

Återigen kommer du att se meddelandet om Permission denied .

touch: cannot touch '/srv/www': Permission denied

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

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

Kommandot visar ingen utgång vilket innebär att filen skapades framgångsrikt.

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

ls -la /srv/www

Utgången ska visa den nyligen skapade filen:

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

Avmonterar NFS-filsystem

sudo umount /backups

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

I den här tutorialen har vi visat dig hur du ställer in en NFS-server och hur du installerar fjärrfilsystem 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 över en SSH-anslutning. SSHFS är krypterat som standard och mycket lättare att konfigurera och använda.

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

ubuntu nfs mount terminal