Android

Sådan installeres og konfigureres en nfs-server på ubuntu 18.04

Stream Media Files to PS4 with Media Server | Synology

Stream Media Files to PS4 with Media Server | Synology

Indholdsfortegnelse:

Anonim

Network File System (NFS) er en distribueret filsystemprotokol, der giver dig mulighed for at dele eksterne mapper over et netværk. Med NFS kan du montere eksterne biblioteker på dit system og arbejde med filerne på fjernmaskinen, som om de var lokale filer.

NFS-protokollen er ikke krypteret som standard, og i modsætning til Samba giver den ikke brugergodkendelse. Adgang til serveren er begrænset af klientens IP-adresser eller hostnavne.

I denne selvstudie gennemgår vi, hvordan du indstiller en NFSv4-server på Ubuntu 18.04. Vi viser dig også, hvordan du monterer et NFS-filsystem på klienten.

Forudsætninger

Dette eksempel antager, at du har en server, der kører Ubuntu 18.04, og en anden, der kører enhver anden Linux-distribution. Serveren og klienterne skal være i stand til at kommunikere med hinanden via et privat netværk. Hvis din hostingudbyder ikke tilbyder private IP-adresser, kan du bruge de offentlige IP-adresser og konfigurere server firewall til kun at tillade trafik i port 2049 fra pålidelige kilder.

Maskinerne i dette eksempel 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 at installere og konfigurere NFS-serveren.

Installation af NFS-serveren

Opdater pakkeindekset, og installer NFS-serverpakken:

sudo apt update sudo apt install nfs-kernel-server

Når installationen er afsluttet, starter NFS-tjenesterne automatisk.

Som standard er NFS-version 2 på Ubuntu 18.04 deaktiveret. Version 3 og 4 er aktiveret. Du kan bekræfte det ved at køre følgende cat :

sudo cat /proc/fs/nfsd/versions

-2 +3 +4 +4.1 +4.2

NFSv2 er temmelig gammel nu, og der er ingen grund til at aktivere det.

Indstillinger for NFS-serverkonfiguration er indstillet i /etc/default/nfs-kernel-server og /etc/default/nfs-common filer. Standardindstillingerne er tilstrækkelige i vores tilfælde.

Oprettelse af filsystemer

Når du konfigurerer en NFSv4-server, er det en god praksis at bruge et globalt NFS-rodmappe og binde montering af de faktiske mapper til delingsmonteringspunktet. I dette eksempel vil vi bruge /srv/nfs4 direktøren som NFS-rod.

Vi deler to mapper ( /var/www og /opt/backups ) med forskellige konfigurationsindstillinger for bedre at forklare, hvordan NFS-monteringerne kan konfigureres.

/var/www/ ejes af brugeren og gruppen www-data og /opt/backups ejes af root .

Opret eksportfilsystemet ved hjælp af kommandoen mkdir :

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

Monter de faktiske mapper:

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

For at gøre bindemonteringerne permanente skal du åbne filen /etc/fstab :

sudo nano /etc/fstab

og tilføj følgende linjer:

/ Etc / fstab

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

Eksport af filsystemerne

Det næste trin er at definere de filsystemer, der eksporteres af NFS-serveren, delingsindstillingerne og de klienter, der har adgang til disse filsystemer. Åbn dette for at åbne filen /etc/exports :

sudo nano /etc/exports Filen /etc/exports indeholder også kommentarer, der beskriver, hvordan man eksporterer et bibliotek.

I vores tilfælde er vi nødt til at eksportere katalogerne www og backups og kun tillade adgang 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 linje indeholder fsid=0 som definerer NFS-rodmappen /srv/nfs . Adgangen til dette NFS-volumen er kun tilladt for klienterne fra undernettet 192.168.33.0/24 . crossmnt kræves for at dele kataloger, der er underkataloger i et eksporteret bibliotek.

I den anden linje viser, hvordan man specificerer flere eksportregler for et filsystem. Det eksporterer biblioteket /srv/nfs4/backups og giver kun læseadgang til hele 192.168.33.0/24 og både læse- og skriveadgang til 192.168.33.3 . sync fortæller NFS at skrive ændringer til disken, inden de svarer.

Den sidste linje skal være selvforklarende. For mere information om alle de tilgængelige indstillinger, skriv type man exports til din terminal.

Gem filen og eksporter delingene:

sudo exportfs -ra

Du skal køre kommandoen ovenfor hver gang du ændrer filen /etc/exports . Hvis der er fejl eller advarsler, vises de på terminalen.

Hvis du vil se den aktuelle aktive eksport og deres tilstand, skal du bruge:

sudo exportfs -v

Outputet vil omfatte alle aktier med deres optioner. Som du kan se, er der også indstillinger, som vi ikke har defineret i filen /etc/exports . Disse er standardindstillinger, og hvis du vil ændre dem, skal du eksplicit indstille disse indstillinger.

/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 aktiveret. Dette er en af ​​de vigtigste muligheder for NFS-sikkerhed. Det forhindrer, at root-brugere, der er tilsluttet fra klienterne, har root-privilegier på de monterede aktier. Det vil kortlægge root UID og GID til nobody / nogroup UID / GID .

For at brugerne på klientmaskinerne skal have adgang forventer NFS, at klientens bruger- og gruppe-ID'er matcher dem på serveren. En anden mulighed er at bruge NFSv4-idmapping-funktionen, der oversætter bruger- og gruppe-ID'er til navne og omvendt.

Det er det. På dette tidspunkt har du konfigureret en NFS-server på din Ubuntu-server. Du kan nu gå til næste trin og konfigurere klienterne og oprette forbindelse til NFS-serveren.

Firewall-konfiguration

Forudsat at du bruger UFW til at administrere din firewall for at give adgang fra undernettet 192.168.33.0/24 skal du køre følgende kommando:

sudo ufw allow from 192.168.33.0/24 to any port nfs

Sådan bekræftes ændringsforløbet:

sudo ufw status

Outputet skal vise, at trafikken i port 2049 er tilladt:

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

Konfigurer NFS-klienter

Nu hvor NFS-serveren er konfigureret og dele eksporteres, konfigureres det næste trin klienterne og monterer de eksterne filsystemer.

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

Installation af NFS-klienten

På klientmaskinerne er vi kun nødt til at installere de nødvendige værktøjer til at montere et fjernt NFS-filsystem.

  • Installer NFS-klient på Debian og Ubuntu

    Navnet på pakken, der inkluderer programmer til montering af NFS-filsystemer på Debian-baserede distributioner er nfs-common . Sådan installeres det:

    sudo apt update sudo apt install nfs-common

    Installer NFS-klient på CentOS og Fedora

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

    sudo yum install nfs-utils

Montering af filsystemer

Vi arbejder på klientmaskinen med IP 192.168.33.110 der har læse- og skriveadgang til filsystemet /srv/nfs4/www og /srv/nfs4/www adgang til filsystemet /srv/nfs4/backups .

Opret to nye mapper til monteringspunkterne. Du kan oprette disse mapper hvor som helst, du ønsker.

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

Monter de eksporterede filsystemer med mount kommandoen:

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 NFS-serverens IP. Du kan også bruge værtsnavnet i stedet for IP-adressen, men det skal løses af klientmaskinen. Dette gøres normalt ved at kortlægge værtsnavnet til IP i filen /etc/hosts .

Når du installerer et NFSv4-filsystem, skal du udelade NFS-rodmappen, så i stedet for /srv/nfs4/backups skal du bruge /backups .

Kontroller, at de eksterne filsystemer er monteret med succes ved hjælp af enten kommandoen mount eller df :

df -h

Kommandoen udskriver alle monterede filsystemer. De sidste to linjer er de monterede aktier:

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 at gøre monteringen permanent ved genstart skal du åbne filen /etc/fstab :

sudo nano /etc/fstab

og tilføj 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

For at finde mere information om de tilgængelige indstillinger, når du monterer et NFS-filsystem, skal du skrive man nfs på din terminal.

En anden mulighed for at montere de eksterne filsystemer er at bruge enten autofs værktøjet eller at oprette en systemd-enhed.

Test af NFS-adgang

Lad os teste adgangen til aktierne ved at oprette en ny fil til hver af dem.

Forsøg først at oprette en testfil til /backups biblioteket ved hjælp af touch kommandoen:

sudo touch /backups/test.txt

Fil / systemet til /backup eksporteres som skrivebeskyttet, og som forventet vil du se en Permission denied fejlmeddelelse:

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

Prøv derefter at oprette en testfil til /srv/www biblioteket som en rod ved hjælp af kommandoen sudo :

sudo touch /srv/www/test.txt

Igen vil du se meddelelsen om Permission denied .

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

Forudsat at du har en www-data på klientmaskinen med den samme UID og GID som på fjernserveren (hvilket skulle være tilfældet, hvis du for eksempel installerede nginx på begge maskiner), kan du teste for at oprette en fil som bruger www-data med:

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

Kommandoen viser ingen output, hvilket betyder, at filen blev oprettet med succes.

Hvis du vil bekræfte det, vises filerne i biblioteket /srv/www :

ls -la /srv/www

Outputet skal vise den nyligt oprettede fil:

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

Afmontering af NFS-filsystem

sudo umount /backups

Hvis monteringspunktet er defineret i filen /etc/fstab , skal du sørge for at fjerne linjen eller kommentere den ved at tilføje # i starten af ​​linjen.

Konklusion

I denne tutorial har vi vist dig, hvordan du indstiller en NFS-server, og hvordan man installerer de eksterne filsystemer på klientmaskinerne. Hvis du implementerer NFS i produktion og deler fornuftige data, er det en god ide at aktivere kerberos-godkendelse.

Som et alternativ til NFS kan du bruge SSHFS til at montere fjernkataloger over en SSH-forbindelse. SSHFS er krypteret som standard og meget lettere at konfigurere og bruge.

Du er velkommen til at give en kommentar, hvis du har spørgsmål.

ubuntu nfs mount terminal