Android

Hvordan installere og konfigurere 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

Innholdsfortegnelse:

Anonim

Network File System (NFS) er en distribuert filsystemprotokoll som lar deg dele eksterne 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.

NFS-protokollen er ikke kryptert som standard, og i motsetning til Samba gir den ikke brukerautentisering. Tilgang til serveren er begrenset av klientenes IP-adresser eller vertsnavn.

I denne opplæringen går du gjennom trinnene som er nødvendige for å sette opp en NFSv4-server på CentOS 8. Vi viser deg også hvordan du installerer et NFS-filsystem på klienten.

Forutsetninger

Vi antar at du har en server som kjører CentOS 8 som vi vil sette opp NFS-serveren og andre maskiner som vil fungere som NFS-klienter. Serveren og klientene skal kunne kommunisere med hverandre over et privat nettverk. Hvis hostingleverandøren din ikke tilbyr private IP-adresser, kan du bruke de offentlige IP-adressene og konfigurere serverbrannmuren slik at den kun tillater trafikk på port 2049 fra pålitelige kilder.

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

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

Konfigurer NFS-serveren

Denne delen forklarer hvordan du installerer nødvendige pakker, oppretter og eksporterer NFS-katalogene og konfigurerer brannmuren.

Installere NFS-serveren

Pakken “nfs-utils” gir NFS-verktøy og demoner for NFS-serveren. Følg kommandoen for å installere den:

sudo dnf install nfs-utils

Når installasjonen er fullført, aktiverer og starter NFS-tjenesten ved å skrive:

sudo systemctl enable --now nfs-server

Som standard er på CentOS 8 NFS versjon 3 og 4.x aktivert, versjon 2 er deaktivert. NFSv2 er ganske gammel nå, og det er ingen grunn til å aktivere det. Kjør følgende cat å bekrefte det:

sudo cat /proc/fs/nfsd/versions

-2 +3 +4 +4.1 +4.2

Alternativer for NFS-serverkonfigurasjon er angitt i /etc/nfsmount.conf og /etc/nfs.conf . Standardinnstillingene er tilstrekkelige for veiledningen vår.

Opprette filsystemene

Når du konfigurerer en NFSv4-server, er det en god praksis å bruke en global NFS-rotkatalog og binde montere de faktiske katalogene til delingsmonteringspunktet. I dette eksemplet vil vi bruke /srv/nfs4 direktøren som NFS-rot.

For å forklare hvordan NFS-mounts kan konfigureres, deler vi to kataloger ( /var/www og /opt/backups ) med forskjellige konfigurasjonsinnstillinger.

/var/www/ eies av brukeren og gruppe- apache og /opt/backups er eid av root .

Opprett eksportfilsystemet ved å bruke mkdir kommandoen:

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

Monter de faktiske katalogene:

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

For å gjøre bindingsmonteringene permanente, legger du følgende oppføringer til /etc/fstab filen:

sudo nano /etc/fstab / Etc / fstab

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

Eksporterer filsystemene

Neste trinn er å definere filsystemene som skal eksporteres av NFS-serveren, aksjeopsjonene og klientene som har tilgang til disse filsystemene. Åpne filen /etc/exports å gjøre det:

sudo nano /etc/exports

Eksporter katalogene www og backups og tillat bare tilgang fra klienter på 192.168.33.0/24 :

/ 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.110(rw, sync, no_subtree_check)

Den første linjen inneholder fsid=0 som definerer NFS-rotkatalogen /srv/nfs . Tilgangen på dette NFS-volumet er bare tillatt for klientene fra undernettet 192.168.33.0/24 . crossmnt alternativet er nødvendig for å dele kataloger som er underkataloger for en eksportert katalog.

Den andre linjen viser hvordan du kan spesifisere flere eksportregler for ett filsystem. Den eksporterer katalogen /srv/nfs4/backups og gir bare lesetilgang til hele 192.168.33.0/24 , og både lese- og skrivetilgang til 192.168.33.3 . sync ber NFS om å skrive endringer på disken før du svarer.

Den siste linjen skal være selvforklarende. For å få mer informasjon om alle tilgjengelige alternativer, skriv man exports i terminalen.

Lagre filen og eksporter aksjene:

sudo exportfs -ra

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

Hvis du vil se den nåværende aktive eksporten og deres tilstand, bruker du:

sudo exportfs -v

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

/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 er et av de viktigste alternativene angående NFS-sikkerhet. Det forhindrer at root-brukere som er koblet fra klientene, har root-rettigheter på de monterte aksjene. Det vil kartlegge root UID og GID til nobody / nogroup UID / GID .

For at brukerne på klientmaskinene skal ha tilgang, forventer NFS at klientens bruker- og gruppe-ID-er samsvarer med dem 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å CentOS-serveren din. Du kan nå gå til neste trinn og konfigurere klientene og koble til NFS-serveren.

Brannmurkonfigurasjon

FirewallD er standard brannmurløsning på Centos 8.

NFS-tjenesten inkluderer forhåndsdefinerte regler for å tillate tilgang til NFS-serveren.

Følgende kommandoer vil gi tilgang permanent fra undernettet 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

Konfigurer NFS-klienter

Nå som NFS-serveren er konfigurert og aksjer blir eksportert, konfigurerer du neste trinn klientene og monterer eksterne filsystemer.

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

Installere NFS-klienten

På klientens maskiner må du installere verktøyene som kreves for å montere eksterne NFS-filsystemer.

  • Installer NFS-klient på Debian og Ubuntu

    Navnet på pakken som inkluderer programmer for montering av NFS-filsystemer på Debian-baserte distribusjoner er nfs-common . Slik installerer du det:

    sudo apt update sudo apt install nfs-common

    Installer NFS-klient på CentOS og Fedora

    På Red Hat og dets derivater installerer nfs-utils pakken:

    sudo yum install nfs-utils

Montering av filsystemer

Vi vil jobbe på klientmaskinen med IP 192.168.33.110 , som har lese- og skrivetilgang til filsystemet /srv/nfs4/www og skrivebeskyttet tilgang til filsystemet /srv/nfs4/backups .

Lag to nye kataloger for monteringspunktene. Du kan opprette disse katalogene hvor som helst du ønsker.

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

Monter de eksporterte filsystemene 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

Hvor 192.168.33.148 er IP-en 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 filen /etc/hosts .

Når du monterer et NFSv4-filsystem, må du utelate NFS-rotkatalogen, så i stedet for /srv/nfs4/backups må du bruke /backups .

Kontroller at de eksterne filsystemene er montert vellykket ved hjelp av enten montering- eller df kommandoen:

df -h

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

… 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

For å gjøre festene permanente ved omstart, åpner du filen /etc/fstab :

sudo nano /etc/fstab

og legg til følgende linjer:

/ 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

Hvis du vil finne mer informasjon om tilgjengelige alternativer når du installerer et NFS-filsystem, skriver du man nfs i terminalen.

Et annet alternativ for å montere de eksterne filsystemene er å bruke autofs verktøyet eller å lage en systemd-enhet.

Testing av NFS-tilgang

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

Forsøk først å opprette en testfil til /backups katalogen ved å bruke touch :

sudo touch /backups/test.txt

Sikkerhetskopien /backup eksporteres som skrivebeskyttet, og som forventet vil du se en feilmelding om Permission denied :

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

Deretter kan du prøve å opprette en testfil til /srv/www katalogen som en root ved hjelp av sudo kommandoen:

sudo touch /srv/www/test.txt

Igjen, vil du se Melding Permission denied .

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

Katalogen /var/www eies av apache brukeren, og denne delingen har alternativet root_squash , som kartlegger rotbrukeren til nobody bruker- og nogroup gruppen som ikke har skrivetillatelser til den eksterne delingen.

Forutsatt at det eksisterer en apache på klientmaskinen med samme UID og GID som på ekstern server (noe som skal være tilfelle hvis du for eksempel installerte apache på begge maskinene), kan du teste for å opprette en fil som apache med:

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

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

For å bekrefte det liste over filene i /srv/www katalogen:

ls -la /srv/www

Utgangen skal vise den nyopprettede 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

Demontering av NFS-filsystem

sudo umount /backups

Hvis monteringspunktet er definert i filen /etc/fstab , må du sørge for å fjerne linjen eller kommentere den ved å legge til # på begynnelsen av linjen.

Konklusjon

I denne opplæringen har vi vist deg hvordan du konfigurerer en NFS-server og hvordan du installerer de eksterne filsystemene på klientmaskinene. Hvis du implementerer NFS i produksjon og deler fornuftige data, er det en god idé å aktivere kerberos-godkjenning.

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

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

centos nfs monteringsterminal