Linux

Jak nainstalovat a nakonfigurovat server NFS na Ubuntu 20.04

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. S NFS můžete připojit vzdálené adresáře ve vašem systému a pracovat se soubory na vzdáleném počítači, jako by to byly místní soubory.

Ve výchozím nastavení není protokol NFS šifrován a neposkytuje ověření uživatele. Přístup na server je omezen IP adresami klienta nebo jmény hostitele.

Tento článek vysvětluje, jak nastavit server NFSv4 na Ubuntu 20.04. Ukážeme vám také, jak připojit systém souborů NFS na klientském počítači.

Předpoklady #

Použijeme dva stroje, jeden se systémem Ubuntu 20.04, který bude fungovat jako server NFS, a další se spuštěnou jakoukoli jinou distribucí Linuxu, na kterou sdílíme připojení. Server a klienti by měli být schopni komunikovat mezi sebou prostřednictvím privátní sítě. 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ů.

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

IP serveru NFS: 192.168.33.10 IP adres klientů NFS: od 192.168.33.Rozsah 0/24 

Nastavení serveru NFS #

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

Instalace serveru NFS #

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

sudo apt aktualizacesudo apt nainstalovat nfs-kernel-server

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

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

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

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

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

Vytváření souborových systémů #

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

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

Nejprve vytvořte kořenový adresář a připojovací připojovací body:

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

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

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

Chcete-li, aby se vazby při restartování trvale stáhly, 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 

Export souborových systémů #

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

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

exportovat hostitele (možnosti) 

Kde vývozní je exportovaný adresář, hostitel je název hostitele nebo IP adresa / rozsah, který má přístup k exportu, a možnosti jsou možnosti hostitele.

Otevři / etc / exporty soubor a přidejte následující řádky:

sudo nano / etc / exporty
/ etc / exporty
/ srv / nfs4 192.168.33.0/24 (rw, sync, no_subtree_check, crossmnt, fsid = 0) / srv / nfs4 / backups 192.168.33.0/24 (ro, synchronizace, 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íť. The kříž pro sdílení adresářů, které jsou podadresáři exportovaného adresáře, je vyžadována možnost.

Druhý řádek ukazuje, jak určit více exportních pravidel pro jeden souborový systém. Přístup pro čtení je povolen pro celý 192.168.33.0/24 rozsah a přístup pro čtení i zápis pouze do souboru 192.168.33.3 IP adresa. The synchronizace volba řekne NFS, aby před odpovědí zapsal změny na disk.

Poslední řádek je vysvětlující. Další informace o všech dostupných možnostech zadejte člověk vyváží 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 / exporty 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 sdílené položky s jejich možnostmi. Jak vidíte, existují i ​​možnosti, které jsme v / etc / exporty soubor. Jedná se o výchozí možnosti a pokud je chcete změnit, musíte tyto možnosti explicitně nastavit.

/ srv / nfs4 / backup 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. Zabraňuje uživatelům root připojeným z klientů, aby měli oprávnění root na připojené sdílené složky mapováním root UID a GID na nikdo/podskupina UID/GID.

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ží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 serveru Ubuntu nastavili server NFS. Nyní můžete přejít na další krok 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 bránou firewall, budete muset povolit provoz na portu NFS:

sudo ufw povolit od 192.168.33.0/24 na libovolný port nfs

Ověření změny:

sudo ufw status

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

K akci od - ------ ---- 2049 POVOLIT 192.168.33.0/24 22 / tcp POVOLIT kdekoli 22 / tcp (v6) POVOLIT kdekoli (v6) 

Nastavit klienty NFS #

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

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

Instalace klienta NFS #

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

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

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

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

sudo mkdir -p / zálohysudo mkdir -p / srv / www

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

Připojte exportované souborové systémy pomocí připojit příkaz:

sudo mount -t nfs -o vers = 4192.168.33.10: / zálohy / zálohysudo mount -t nfs -o vers = 4192.168.33.10: / www / srv / www

Kde 192.168.33.10 je IP adresa serveru NFS. Místo IP adresy 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 / etc / hosts soubor.

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

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

df -h

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

Použitá velikost souborového systému Využít Využít% Připojeno k 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% / běh / uzamčení tmpfs 994M 0 994M 0% / sys / fs / cgroup / dev / sda1 456M 197M 226M 47% / boot tmpfs 199M 0 199M 0% / běh / uživatel / 1000 192.168.33.10: / zálohy 124G 2.8G 115G 3% / zálohy 192.168.33.10: / www 124G 2.8G 115G 3% / srv / www

Chcete-li, aby se připojení při restartu zobrazila trvale, 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 

Informace o dostupných možnostech při připojování systému souborů NFS zadejte muž nfs ve vašem terminálu.

Další možností připojení vzdálených souborových systémů je použít buď autofs nástroj nebo k vytvoření systémové jednotky.

Testování přístupu NFS #

Otestujme 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 souboru / zálohy adresář pomocí dotek příkaz:

sudo touch / backups / test.txt

The /záloha souborový systém je exportován pouze pro čtení a podle očekávání uvidíte a Přístup odepřen chybové hlášení:

touch: cannot touch '/ backups / test': Oprávnění odepřeno 

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

sudo touch / srv / www / test.txt

Opět uvidíte Přístup odepřen zpráva.

touch: cannot touch '/ srv / www': Oprávnění odepřeno 

Pokud si vzpomenete, / var / www adresář je vlastněn www-data uživatele a tato sdílená položka má root_squash sada možností, která mapuje uživatele root na nikdo uživatel a podskupina 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 se mělo stát, pokud jste například nainstalovali nginx na oba stroje), můžete zkusit vytvořit soubor jako uživatel www-data:

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, uveďte seznam souborů v / srv / www adresář:

ls -la / srv / www

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

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

Odpojení systému souborů NFS #

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

Například k odpojení /záloha sdílet, spustili byste:

sudo umount / backups

Pokud je přípojný bod definován v souboru / etc / fstab souboru, ujistěte se, že řádek odstraníte nebo jej okomentujete přidáním # na začátku řádku.

Závěr #

Ukázali jsme vám, jak nastavit server NFS a jak připojit vzdálené systémy souborů na klientských počítačích. Pokud implementujete NFS ve výrobě a sdílíte rozumná data, je dobré povolit ověřování pomocí protokolu 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 je mnohem snazší jej konfigurovat a používat.

Pokud máte jakékoli dotazy, neváhejte zanechat komentář.

Hry Výukový program Battle for Wesnoth
Výukový program Battle for Wesnoth
The Battle for Wesnoth je jednou z nejpopulárnějších strategických her s otevřeným zdrojovým kódem, které si v tuto chvíli můžete zahrát. Tato hra se ...
Hry 0 A.D. Tutorial
0 A.D. Tutorial
Z mnoha strategických her venku je 0 A.D. dokáže vyniknout jako komplexní titul a velmi hluboká, taktická hra, přestože je otevřeným zdrojem. Vývoj hr...
Hry Výukový program Unity3D
Výukový program Unity3D
Úvod do Unity 3D Unity 3D je výkonný engine pro vývoj her. Jedná se o multiplatformní platformu, která vám umožňuje vytvářet hry pro mobilní zařízení,...