Android

Hur man installerar och konfigurerar en nfs-server på centos 8

How to Install a Basic NFS Server on Linux - CentOS 8

How to Install a Basic NFS Server on Linux - CentOS 8

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 ger det inte användarautentisering. Tillgång till servern är begränsad av klienternas IP-adresser eller värdnamn.

I den här handledningen går du igenom stegen som krävs för att konfigurera en NFSv4-server på CentOS 8. Vi visar också hur du monterar ett NFS-filsystem på klienten.

förutsättningar

Vi antar att du har en server som kör CentOS 8 på vilken vi installerar NFS-servern och andra maskiner som fungerar som NFS-klienter. 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.148 NFS Clients IPs: From the 192.168.33.0/24 range

Ställ in NFS-servern

Det här avsnittet förklarar hur du installerar nödvändiga paket, skapar och exporterar NFS-kataloger och konfigurerar brandväggen.

Installera NFS-servern

Paketet "nfs-utils" tillhandahåller NFS-verktyg och demoner för NFS-servern. För att installera det kör följande kommando:

sudo dnf install nfs-utils

När installationen är klar, aktivera och starta NFS-tjänsten genom att skriva:

sudo systemctl enable --now nfs-server

Som standard är på CentOS 8 NFS versionerna 3 och 4.x aktiverade, version 2 är inaktiverad. NFSv2 är ganska gammal nu och det finns ingen anledning att aktivera det. För att verifiera det kör följande cat :

sudo cat /proc/fs/nfsd/versions

-2 +3 +4 +4.1 +4.2

Alternativ för konfigurering av NFS-server anges i /etc/nfsmount.conf och /etc/nfs.conf . Standardinställningarna är tillräckliga för vår handledning.

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 delmonteringspunkten. I det här exemplet kommer vi att använda /srv/nfs4 regissören 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/backups ) med olika konfigurationsinställningar.

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

Skapa exportfilsystemet med kommandot mkdir :

sudo mkdir -p /srv/nfs4/{backups, www}

Montera de faktiska katalogerna:

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

Lägg till följande poster i /etc/fstab att göra bindningsfästen permanenta:

sudo nano /etc/fstab / 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

Exportera www och backups katalogerna och tillåt bara å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.

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, skriv 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 visas de 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 ställa in dessa alternativ uttryckligen.

/srv/nfs4/backups 192.168.33.3(sync, wdelay, hide, no_subtree_check, sec=sys, rw, secure, root_squash, no_all_squash) /srv/nfs4/www 192.168.33.110(sync, wdelay, hide, no_subtree_check, sec=sys, rw, secure, root_squash, no_all_squash) /srv/nfs4 192.168.33.0/24(sync, wdelay, hide, crossmnt, no_subtree_check, fsid=0, sec=sys, rw, secure, root_squash, no_all_squash) /srv/nfs4/backups 192.168.33.0/24(sync, wdelay, hide, no_subtree_check, sec=sys, ro, secure, root_squash, no_all_squash)

root_squash ä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ändare på klientmaskinerna ska ha åtkomst förväntar sig NFS att klientens användare 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 till namn och tvärtom.

Det är allt. Just nu har du skapat en NFS-server på din CentOS-server. Du kan nu gå till nästa steg och konfigurera klienterna och ansluta till NFS-servern.

Brandväggskonfiguration

FirewallD är standard brandväggslösning på Centos 8.

NFS-tjänsten innehåller fördefinierade regler för att tillåta åtkomst till NFS-servern.

Följande kommandon tillåter permanent åtkomst från 192.168.33.0/24 :

sudo firewall-cmd --new-zone=nfs --permanent sudo firewall-cmd --zone=nfs --add-service=nfs --permanent sudo firewall-cmd --zone=nfs --add-source=192.168.33.0/24 --permanent sudo firewall-cmd --reload

Ställ in NFS-klienter

Nu när NFS-servern är konfigurerad och aktier exporteras konfigurerar klienterna nästa steg och monterar 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å klientens maskiner, installera de verktyg som krävs för att montera 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 skrivskyddad åtkomst till /srv/nfs4/backups .

Skapa två nya kataloger för monteringspunkter. Du kan skapa dessa kataloger 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.148:/backups /backups sudo mount -t nfs -o vers=4 192.168.33.148:/www /srv/www

Där 192.168.33.148 är IP-adressen 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- /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:

… 192.168.33.148:/backups 9.7G 1.2G 8.5G 13% /backups 192.168.33.148:/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.148:/backups /backups nfs defaults, timeo=900, retrans=5, _netdev 0 0 192.168.33.148:/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 i 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

Katalogen /var/www ägs av apache användaren, och denna root_squash alternativet root_squash , som kartlägger root-användaren till nobody användare och grupp som inte har nogroup .

Antagande att det finns en användarapache på klientmaskinen med samma UID och GID som på fjärrservern (vilket borde vara fallet om du till exempel installerade apache på båda maskinerna), kan du testa att skapa en fil som användarapache med:

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

centos nfs monteringsterminal