GNU/Linux >> Znalost Linux >  >> Ubuntu

Jak nainstalovat a nakonfigurovat server NFS na Ubuntu 20.04

NFS nebo Network File System je protokol distribuovaného systému souborů, který umožňuje sdílet adresáře v síti. Pomocí NFS můžete připojit vzdálené adresáře na váš systém a pracovat se soubory na vzdáleném počítači, jako by to byly lokální soubory.

Ve výchozím nastavení není protokol NFS šifrován a neposkytuje ověření uživatele. Přístup k serveru je omezen IP adresami nebo názvy hostitelů klienta.

Tento článek vysvětluje, jak nastavit server NFSv4 na Ubuntu 20.04. Také vám ukážeme, jak připojit souborový systém NFS na klientský počítač.

Předpoklady #

Použijeme dva stroje, jeden s Ubuntu 20.04, který bude fungovat jako NFS server, a druhý s libovolnou jinou distribucí Linuxu, na kterou připojíme sdílení. Server a klienti by měli být schopni spolu komunikovat přes privátní síť. Můžete použít veřejné IP adresy a nakonfigurovat bránu firewall serveru tak, aby umožňovala provoz na portu 2049 pouze z důvěryhodných zdrojů.

Počítače v tomto příkladu mají následující IP adresy:

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

Nastavení serveru NFS #

Prvním krokem je nastavení serveru NFS. Nainstalujeme potřebné balíčky, vytvoříme a exportujeme adresáře NFS a nakonfigurujeme firewall.

Instalace serveru NFS #

Balíček serveru NFS poskytuje podporu v uživatelském prostoru potřebnou ke spuštění serveru jádra NFS. Chcete-li balíček nainstalovat, spusťte:

sudo apt updatesudo apt install nfs-kernel-server

Po dokončení instalace se služby NFS automaticky spustí.

Na Ubuntu 20.04 je NFS verze 2 zakázán. Verze 3 a 4 jsou povoleny. Můžete to ověřit spuštěním následujícího cat příkaz:

sudo cat /proc/fs/nfsd/versions
-2 +3 +4 +4.1 +4.2

NFSv2 je už docela starý a není důvod ho povolovat.

Konfigurace serveru NFS je definována v /etc/default/nfs-kernel-server a /etc/default/nfs-common soubory. Výchozí nastavení je dostatečné pro většinu situací.

Vytvoření systémů souborů #

Server NFSv4 používá globální kořenový adresář a exportované adresáře jsou relativní k tomuto adresáři. Sdílený bod připojení můžete propojit s adresáři, které chcete exportovat, pomocí připojení připojení.

V tomto příkladu nastavíme /srv/nfs4 adresář jako kořenový adresář NFS. Abychom lépe vysvětlili, jak lze nakonfigurovat připojení NFS, budeme sdílet dva adresáře (/var/www a /opt/backups ) s různým nastavením konfigurace. /var/www/ je ve vlastnictví uživatele www-data a /opt/backups je ve vlastnictví root .

Nejprve vytvořte kořenový adresář a sdílené přípojné body:

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

Svázat připojení adresářů ke sdíleným přípojným bodům:

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

Chcete-li, aby připojení vazby byla trvalá po restartování, otevřete /etc/fstab soubor:

sudo nano /etc/fstab

a přidejte následující řádky:

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

Exportování systémů souborů #

Dalším krokem je přidání souborových systémů, které budou exportovány, a klientů, kterým je povolen přístup k těmto sdíleným složkám, do /etc/exports soubor.

Každý řádek pro exportovaný souborový systém má následující tvar:

export host(options)

Kam export je exportovaný adresář host je název hostitele nebo IP adresa/rozsah, který má přístup k exportu, a options jsou možnosti hostitele.

Otevřete /etc/exports soubor a přidejte následující řádky:

sudo nano /etc/exports
/etc/exports
/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.20(rw,sync,no_subtree_check)

První řádek obsahuje fsid=0 možnost, která definuje kořenový adresář NFS (/srv/nfs4 ). Přístup k tomuto svazku NFS je povolen pouze klientům z 192.168.33.0/24 podsíť. crossmnt volba je vyžadována pro sdílení adresářů, které jsou podadresáři exportovaného adresáře.

Druhý řádek ukazuje, jak zadat více pravidel exportu pro jeden souborový systém. Přístup pro čtení je povolen k celému 192.168.33.0/24 a přístup pro čtení i zápis pouze do 192.168.33.3 IP adresa. sync volba říká NFS, aby zapsal změny na disk, než odpoví.

Poslední řádek je samovysvětlující. Pro více informací o všech dostupných možnostech zadejte man exports ve vašem terminálu.

Uložte soubor a exportujte sdílené položky:

sudo exportfs -ar

Výše uvedený příkaz musíte spustit pokaždé, když upravíte /etc/exports soubor. Pokud se vyskytnou nějaké chyby nebo varování, zobrazí se na terminálu.

Chcete-li zobrazit aktuální aktivní exporty a jejich stav, použijte:

sudo exportfs -v

Výstup bude zahrnovat všechny akcie s jejich opcemi. Jak můžete vidět, existují také možnosti, které jsme nedefinovali v /etc/exports soubor. Toto jsou výchozí možnosti a pokud je chcete změnit, budete muset tyto možnosti explicitně nastavit.

/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.20(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)

Na Ubuntu root_squash je ve výchozím nastavení povoleno. Toto je jedna z nejdůležitějších možností zabezpečení NFS. Mapováním root UID brání uživatelům root připojeným z klientů v tom, aby měli oprávnění root na připojených sdílených položkách. a GID nobody /nogroup UID /GID .

Aby měli uživatelé na klientských počítačích přístup, NFS očekává, že ID uživatele a skupiny klienta se budou shodovat s ID na serveru. Další možností je použít funkci NFSv4 idmapping, která převádí ID uživatelů a skupin na jména a naopak.

A je to. V tomto okamžiku jste na svém serveru Ubuntu nastavili server NFS. Nyní můžete přejít k dalšímu kroku a nakonfigurovat klienty a připojit se k serveru NFS.

Konfigurace brány firewall #

Pokud instalujete Jenkins na vzdálený server Ubuntu, který je chráněn firewallem, budete muset povolit provoz na portu NFS:

sudo ufw allow from 192.168.33.0/24 to any port nfs

Ověřte změnu:

sudo ufw status

Výstup by měl ukazovat, že provoz na portu 2049 je povoleno:

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

Nastavení klientů NFS #

Nyní, když je NFS server nastaven a sdílené složky jsou exportovány, je dalším krokem konfigurace klientů a připojení vzdálených souborových systémů.

Zaměříme se na systémy Linux, ale sdílení NFS můžete připojit také na počítačích MacOS a Windows.

Instalace klienta NFS #

Na klientské počítače potřebujeme nainstalovat pouze nástroje potřebné k připojení vzdáleného souborového systému NFS.

  • Nainstalujte klienta NFS na Debian a Ubuntu

    Název balíčku, který obsahuje programy pro připojení souborových systémů NFS v distribucích založených na Debianu, je nfs-common . Chcete-li jej nainstalovat, spusťte:

    sudo apt updatesudo apt install nfs-common
  • Nainstalujte klienta NFS na CentOS a Fedoru

    Na Red Hat a jeho deriváty nainstalujte nfs-utils balíček:

    sudo yum install nfs-utils

Připojení souborových systémů #

Budeme pracovat na klientském počítači s IP 192.168.33.20 , který má přístup pro čtení a zápis do /srv/nfs4/www souborový systém a přístup pouze pro čtení k /srv/nfs4/backups souborový systém.

Vytvořte dva nové adresáře pro přípojné body:

sudo mkdir -p /backupssudo mkdir -p /srv/www

Adresáře můžete vytvořit na libovolném místě.

Připojte exportované systémy souborů pomocí mount příkaz:

sudo mount -t nfs -o vers=4 192.168.33.10:/backups /backupssudo mount -t nfs -o vers=4 192.168.33.10:/www /srv/www

Kde 192.168.33.10 je IP NFS serveru. Místo IP adresy můžete také použít název hostitele, ale musí být rozlišitelný klientským počítačem. To se obvykle provádí mapováním názvu hostitele na IP v /etc/hosts soubor.

Při připojování souborového systému NFSv4 vynechejte kořenový adresář NFS. Použijte /backups , namísto /srv/nfs4/backups .

Ověřte, že jsou vzdálené systémy souborů úspěšně připojeny pomocí mount nebo df příkaz:

df -h

Příkaz vytiskne všechny připojené systémy souborů. Poslední dva řádky jsou připojené sdílené položky:

Filesystem              Size  Used Avail Use% Mounted on
udev                    951M     0  951M   0% /dev
tmpfs                   199M  676K  199M   1% /run
/dev/sda3               124G  2.8G  115G   3% /
tmpfs                   994M     0  994M   0% /dev/shm
tmpfs                   5.0M     0  5.0M   0% /run/lock
tmpfs                   994M     0  994M   0% /sys/fs/cgroup
/dev/sda1               456M  197M  226M  47% /boot
tmpfs                   199M     0  199M   0% /run/user/1000
192.168.33.10:/backups  124G  2.8G  115G   3% /backups
192.168.33.10:/www      124G  2.8G  115G   3% /srv/www

Chcete-li, aby připojení byla při restartu trvalá, otevřete /etc/fstab soubor a přidejte následující řádky::

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

Chcete-li získat informace o dostupných možnostech při připojování systému souborů NFS, zadejte man nfs ve vašem terminálu.

Další možností, jak připojit vzdálené souborové systémy, je použít buď autofs nástroj nebo vytvořit systémovou jednotku.

Testování přístupu NFS #

Pojďme otestovat přístup ke sdíleným složkám vytvořením nového souboru pro každou z nich.

Nejprve zkuste vytvořit testovací soubor do /backups adresář pomocí touch příkaz:

sudo touch /backups/test.txt

/backup souborový systém je exportován pouze pro čtení a podle očekávání se zobrazí Permission denied chybová zpráva:

touch: cannot touch ‘/backups/test’: Permission denied

Dále zkuste vytvořit testovací soubor do /srv/www adresář jako kořenový adresář pomocí sudo příkaz:

sudo touch /srv/www/test.txt

Opět uvidíte Permission denied zprávu.

touch: cannot touch ‘/srv/www’: Permission denied

Pokud si vzpomínáte, /var/www adresář je vlastněn www-data uživatel a tato sdílená položka má root_squash sada voleb, která mapuje uživatele root na nobody uživatel a nogroup skupina, která nemá oprávnění k zápisu do vzdálené sdílené složky.

Za předpokladu, že máte www-data použít na klientském počítači se stejným UID a GID jako na vzdáleném serveru (což by měl být případ, pokud jste například nainstalovali nginx na oba počítače), můžete zkusit vytvořit soubor jako uživatel www-data :

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

Příkaz neukáže žádný výstup, což znamená, že soubor byl úspěšně vytvořen.

Pro ověření uveďte soubory v /srv/www adresář:

ls -la /srv/www

Výstup by měl zobrazovat nově vytvořený soubor:

drwxr-xr-x 3 www-data www-data 4096 Apr 10 22:18 .
drwxr-xr-x 3 root     root     4096 Apr 10 22:29 ..
-rw-r--r-- 1 www-data www-data    0 Apr 10 21:58 index.html
-rw-r--r-- 1 www-data www-data    0 Apr 10 22:18 test.txt

Odpojení systému souborů NFS #

Pokud vzdálené sdílení NFS již není potřeba, můžete jej odpojit jako jakýkoli jiný připojený souborový systém pomocí umount příkaz.

Chcete-li například odpojit /backup sdílet, spustíte:

sudo umount /backups

Pokud je bod připojení definován v /etc/fstab soubor, ujistěte se, že jste odstranili řádek nebo jej okomentovali přidáním # na začátku řádku.


Ubuntu
  1. Jak nakonfigurovat server NFS a připojit sdílené složky NFS na Ubuntu 14.10

  2. Jak nainstalovat a nakonfigurovat server DHCP na Ubuntu 20.04

  3. Jak nainstalovat a nakonfigurovat server Redis v Ubuntu

  1. Jak nainstalovat a nakonfigurovat VNC na Ubuntu 20.04

  2. Jak nainstalovat a nakonfigurovat VNC na Ubuntu 18.04

  3. Jak nainstalovat a nakonfigurovat Algo VPN Server na Ubuntu 20.04

  1. Jak nainstalovat a nakonfigurovat server NFS na Ubuntu 18.04

  2. Jak nainstalovat a nakonfigurovat server NFS na CentOS 8

  3. Jak nainstalovat a nakonfigurovat Nginx na Ubuntu 18.04 / Debian 9