How to Install a Basic NFS Server on Linux - CentOS 8
Innholdsfortegnelse:
- Forutsetninger
- Konfigurer NFS-serveren
- Installere NFS-serveren
- Opprette filsystemene
- Eksporterer filsystemene
- Brannmurkonfigurasjon
- Konfigurer NFS-klienter
- Installere NFS-klienten
- Montering av filsystemer
- Testing av NFS-tilgang
- Demontering av NFS-filsystem
- Konklusjon
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
:
/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 monteringsterminalHvordan installere og konfigurere redis på centos 7
Redis er en åpen kildekode i minnedatastruktur. Den kan brukes som en database, cache og meldingsmegler og støtter forskjellige datastrukturer som Strings, Hashes, Lister, Sets etc.
Hvordan installere og konfigurere nagios på centos 7
Nagios er et av de mest populære open source overvåkningssystemene. Nagios holder oversikt over hele IT-infrastrukturen og sikrer at nettverk, servere, applikasjoner, tjenester og prosesser er oppe og går. Denne veiledningen beskriver hvordan du installerer og konfigurerer Nagios Core på en CentOS 7-server.
Hvordan installere og konfigurere blekksprutproxy på centos 7
Squid er en fullverdig cache-proxy som støtter populære nettverksprotokoller som HTTP, HTTPS, FTP og mer. Denne veiledningen forklarer hvordan du setter opp Squid på CentOS 7