Android

Jak nainstalovat a nakonfigurovat server nfs na Ubuntu 18.04

Instalace z ISO (debian)

Instalace z ISO (debian)

Obsah:

Anonim

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

Protokol NFS není ve výchozím nastavení šifrován a na rozdíl od Samby neposkytuje ověření uživatele. Přístup na server je omezen IP adresami klientů nebo jmény hostitelů.

V tomto tutoriálu se podíváme, jak nastavit server NFSv4 na Ubuntu 18.04. Ukážeme vám také, jak připojit klientský systém souborů NFS.

Předpoklady

Tento příklad předpokládá, že máte jeden server se systémem Ubuntu 18.04 a druhý se spuštěnou jinou distribucí systému Linux. Server a klienti by měli být schopni komunikovat mezi sebou prostřednictvím soukromé sítě. Pokud váš poskytovatel hostingu nenabízí soukromé adresy IP, můžete použít veřejné adresy IP a nakonfigurovat bránu firewall serveru tak, aby umožňovala provoz na portu 2049 pouze z důvěryhodných zdrojů.

Stroje v tomto příkladu mají následující adresy IP:

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

Nastavte server NFS

Začneme instalací a konfigurací serveru NFS.

Instalace serveru NFS

Aktualizujte index balíčků a nainstalujte balíček serveru NFS:

sudo apt update sudo apt install nfs-kernel-server

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

Ve výchozím nastavení je na Ubuntu 18.04 NFS verze 2 zakázána. Verze 3 a 4 jsou povoleny. Můžete to ověřit spuštěním následujícího příkazu cat :

sudo cat /proc/fs/nfsd/versions

-2 +3 +4 +4.1 +4.2

NFSv2 je nyní docela starý a není důvod jej aktivovat.

Možnosti konfigurace serveru NFS jsou nastaveny v /etc/default/nfs-kernel-server a /etc/default/nfs-common . Výchozí nastavení je v našem případě dostačující.

Vytváření systémů souborů

Při konfiguraci serveru NFSv4 je vhodné používat globální kořenový adresář NFS a svázat skutečné adresáře s připojovacím bodem sdílené položky. V tomto příkladu /srv/nfs4 jako kořen NFS kořenový adresář /srv/nfs4 .

Budeme sdílet dva adresáře ( /var/www a /opt/backups ) s různými nastaveními konfigurace, abychom lépe vysvětlili, jak lze konfigurovat připojení NFS.

/var/www/ je ve vlastnictví uživatele a skupina www-data a /opt/backups je ve vlastnictví root .

Vytvořte souborový systém exportu pomocí příkazu mkdir :

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

Připojte skutečné adresáře:

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

Chcete-li, aby se vázání připojilo jako trvalé, otevřete soubor /etc/fstab :

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

Export souborových systémů

Dalším krokem je definování souborových systémů, které budou exportovány serverem NFS, možností sdílení a klientů, kteří mají povolený přístup k těmto souborovým systémům. Otevřete soubor /etc/exports :

sudo nano /etc/exports Soubor /etc/exports také obsahuje komentáře, které popisují, jak exportovat adresář.

V našem případě musíme exportovat adresáře www a backups a povolit přístup pouze od klientů v síti 192.168.33.0/24 :

/ etc / export

/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)

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

Na druhém řádku je uvedeno, jak určit více exportních pravidel pro jeden souborový systém. /srv/nfs4/backups adresář /srv/nfs4/backups a umožňuje pouze přístup ke čtení do celého rozsahu 192.168.33.0/24 a přístup ke čtení i zápisu do 192.168.33.3 . Možnost sync řekne NFS, aby zapisoval změny na disk před odpovědí.

Poslední řádek by měl být samovysvětlující. Chcete-li získat další informace o všech dostupných možnostech, zadejte man exports do vašeho terminálu.

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

sudo exportfs -ra

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

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

sudo exportfs -v

Výstup bude zahrnovat všechny sdílené položky s jejich možnostmi. Jak vidíte, existují také možnosti, které jsme v souboru /etc/exports nedefinovali. Toto jsou výchozí možnosti a pokud je chcete změnit, musíte je 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.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)

Na Ubuntu je ve výchozím nastavení povolen root_squash . Toto je jedna z nejdůležitějších možností týkajících se zabezpečení NFS. Zabraňuje uživatelům root připojeným z klientů mít oprávnění root pro připojené sdílené položky. Bude mapovat kořenové UID a GID na UID / GID na nobody / nogroup .

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

A je to. Nyní máte na serveru Ubuntu nastaven server NFS. Nyní můžete přejít na další krok a nakonfigurovat klienty a připojit se k serveru NFS.

Konfigurace firewallu

Za předpokladu, že ke správě brány firewall používáte UFW a umožňuje přístup ze podsítě 192.168.33.0/24 , musíte spustit následující příkaz:

sudo ufw allow from 192.168.33.0/24 to any port nfs

Chcete-li ověřit běh změn:

sudo ufw status

Výstup by měl ukazovat, že přenos na portu 2049 je povolen:

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 server NFS nastaven a sdílené položky jsou exportovány, v dalším kroku nakonfigurujte klienty a připojte vzdálené systémy souborů.

Můžete také připojit sdílenou složku NFS na počítačích MacOS a Windows, ale zaměříme se na systémy Linux.

Instalace klienta NFS

Na klientských počítačích potřebujeme nainstalovat pouze nástroje potřebné k připojení vzdálených systémů souborů NFS.

  • Nainstalujte klienta NFS na Debian a Ubuntu

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

    sudo apt update sudo apt install nfs-common

    Nainstalujte klienta NFS na CentOS a Fedora

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

    sudo yum install nfs-utils

Montáž souborových systémů

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

Vytvořte dva nové adresáře pro připojovací body. Tyto adresáře můžete vytvořit na libovolném místě.

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

Připojte exportované souborové systémy příkazem 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

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

Při připojování souborového systému NFSv4 je třeba vynechat kořenový adresář NFS, takže místo /srv/nfs4/backups musíte použít /backups .

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

df -h

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

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

Chcete-li, aby byly přípojky trvalé po restartu, otevřete soubor /etc/fstab :

sudo nano /etc/fstab

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

/ 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 najít další informace o dostupných možnostech při připojování systému souborů NFS, zadejte do terminálu man nfs .

Další možností připojení vzdálených souborových systémů je použití nástroje autofs nebo vytvoření jednotky systemd.

Testování přístupu NFS

Vyzkoušejte přístup ke sdíleným položkám vytvořením nového souboru pro každou z nich.

Nejprve zkuste vytvořit zkušební soubor do adresáře /backups pomocí příkazu touch :

sudo touch /backups/test.txt

Systém souborů /backup je exportován jako pouze ke čtení a podle očekávání se zobrazí chybová zpráva o Permission denied :

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

Dále zkuste vytvořit testovací soubor do adresáře /srv/www jako root pomocí příkazu sudo :

sudo touch /srv/www/test.txt

Znovu se zobrazí zpráva Permission denied .

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

Za předpokladu, že máte na klientském počítači použití www-data se stejným UID a GID jako na vzdáleném serveru (což by mělo být například v případě, že jste nainstalovali nginx na obou počítačích), můžete vyzkoušet vytvoření souboru jako uživatele www-data s:

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

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

Chcete-li jej ověřit, /srv/www soubory v adresáři /srv/www :

ls -la /srv/www

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

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

Odpojení systému souborů NFS

sudo umount /backups

Pokud je přípojný bod definován v souboru /etc/fstab , ujistěte se, že jste řádek odstranili nebo jej přidali na začátek řádku #.

Závěr

V tomto tutoriálu jsme vám ukázali, jak nastavit server NFS a jak připojit vzdálené systémy souborů na klientských počítačích. Pokud implementujete NFS do výroby a sdílení citlivých dat, je vhodné povolit autentizaci pomocí kerberos.

Jako alternativu k NFS můžete použít SSHFS k připojení vzdálených adresářů přes připojení SSH. SSHFS je ve výchozím nastavení šifrován a mnohem snadněji konfigurovatelný a použitelný.

Pokud máte nějaké dotazy, neváhejte a zanechte komentář.

Ubuntu nfs připojovací terminál