Android

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

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 klientens IP-adresser eller vertsnavn.

I denne opplæringen skal vi gå gjennom hvordan du konfigurerer en NFSv4-server på Ubuntu 18.04. Vi viser deg også hvordan du installerer et NFS-filsystem på klienten.

Forutsetninger

Dette eksemplet forutsetter at du har en server som kjører Ubuntu 18.04 og en annen som kjører all annen Linux-distribusjon. 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.10 NFS Clients IPs: From the 192.168.33.0/24 range

Konfigurer NFS-serveren

Vi starter med å installere og konfigurere NFS-serveren.

Installere NFS-serveren

Oppdater pakkeindeksen og installer NFS-serverpakken:

sudo apt update sudo apt install nfs-kernel-server

Når installasjonen er fullført, starter NFS-tjenestene automatisk.

Som standard er på Ubuntu 18.04 NFS versjon 2 deaktivert. Versjon 3 og 4 er aktivert. Du kan bekrefte det ved å kjøre følgende cat :

sudo cat /proc/fs/nfsd/versions

-2 +3 +4 +4.1 +4.2

NFSv2 er ganske gammel nå, og det er ingen grunn til å aktivere det.

Alternativer for konfigurering av NFS-server er angitt i /etc/default/nfs-kernel-server og /etc/default/nfs-common filer. Standardinnstillingene er tilstrekkelige i vårt tilfelle.

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.

Vi kommer til å dele to kataloger ( /var/www og /opt/backups ), med forskjellige konfigurasjonsinnstillinger, for bedre å forklare hvordan NFS-monteringene kan konfigureres.

/var/www/ eies av brukeren og gruppen www-data og /opt/backups er eid av root .

Opprett eksportfilsystemet ved å bruke mkdir kommandoen:

sudo mkdir -p /srv/nfs4/backups sudo mkdir -p /srv/nfs4/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, åpner du filen /etc/fstab :

sudo nano /etc/fstab

og legg til følgende linjer:

/ 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 Filen /etc/exports inneholder også kommentarer som beskriver hvordan du eksporterer en katalog.

I vårt tilfelle må vi eksportere katalogene www og backups og bare tillate 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.

I 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 mer informasjon om alle tilgjengelige alternativer, type 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, vises de 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 eksplisitt angi disse alternativene.

/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 er root_squash som standard aktivert. Dette 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-IDer 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å Ubuntu-serveren. Du kan nå gå til neste trinn og konfigurere klientene og koble til NFS-serveren.

Brannmurkonfigurasjon

Forutsatt at du bruker UFW å administrere brannmuren din for å gi tilgang fra undernettet 192.168.33.0/24 må du kjøre følgende kommando:

sudo ufw allow from 192.168.33.0/24 to any port nfs

Slik bekrefter du endringskjøringen:

sudo ufw status

Utdataene skal vise at trafikken på port 2049 er tillatt:

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

Konfigurer NFS-klienter

Nå som NFS-serveren er konfigurert og aksjer blir eksportert, konfigureres neste trinn klientene og monterer de eksterne filsystemene.

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

Installere NFS-klienten

På klientmaskinene må vi bare installere verktøyene som kreves for å montere et eksternt NFS-filsystem.

  • 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 lesetilgang 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.10:/backups /backups sudo mount -t nfs -o vers=4 192.168.33.10:/www /srv/www

Hvor 192.168.33.10 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:

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

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.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

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 til hver av dem.

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

sudo touch /backups/test.txt

Fil-systemet /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

Forutsatt at du har en www-data dataanvendelse på klientmaskinen med samme UID og GID som på ekstern server (noe som skal være tilfelle hvis du for eksempel installerte nginx på begge maskinene), kan du teste for å opprette en fil som bruker www-data med:

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

Kommandoen viser ingen utdata 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 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

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.

ubuntu nfs monteringsterminal