Linux

Ako nainštalovať a nakonfigurovať server NFS na Ubuntu 20.04

Ako nainštalovať a nakonfigurovať server NFS na Ubuntu 20.04

NFS alebo Network File System je protokol distribuovaného súborového systému, ktorý umožňuje zdieľať adresáre v sieti. Pomocou NFS môžete pripojiť vzdialené adresáre do vášho systému a pracovať so súbormi na vzdialenom počítači, akoby išlo o lokálne súbory.

Protokol NFS nie je predvolene šifrovaný a neposkytuje autentifikáciu používateľa. Prístup na server je obmedzený IP adresami alebo názvami hostiteľov klienta.

Tento článok vysvetľuje, ako nastaviť server NFSv4 na Ubuntu 20.04. Ukážeme vám tiež, ako pripojiť súborový systém NFS na klientskom počítači.

Predpoklady #

Použijeme dva stroje, jeden so systémom Ubuntu 20.04, ktorý bude fungovať ako server NFS, a ďalší, na ktorom je spustená akákoľvek iná distribúcia systému Linux, na ktorú pripojíme zdieľanú položku. Server a klienti by mali byť schopní navzájom komunikovať prostredníctvom súkromnej siete. Môžete použiť verejné adresy IP a nakonfigurovať bránu firewall servera tak, aby umožňovala prenos na porte 2049 iba z dôveryhodných zdrojov.

Stroje v tomto príklade majú nasledujúce adresy IP:

IP servera NFS: 192.168.33.10 adries IP klientov NFS: od 192.168.33.Rozsah 0/24 

Nastavte server NFS #

Prvým krokom je nastavenie servera NFS. Nainštalujeme potrebné balíčky, vytvoríme a exportujeme adresáre NFS a nakonfigurujeme bránu firewall.

Inštalácia servera NFS #

Balík servera NFS poskytuje podporu v užívateľskom priestore potrebnú na spustenie servera jadra NFS. Balík nainštalujete spustením:

sudo apt aktualizáciasudo apt nainštalovať nfs-kernel-server

Po dokončení inštalácie sa automaticky spustia služby NFS.

V systéme Ubuntu 20.04, NFS verzia 2 je zakázaná. Verzie 3 a 4 sú povolené. Môžete to overiť vykonaním nasledujúcich krokov kat príkaz:

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

NFSv2 je už dosť starý a nie je dôvod ho povoľovať.

Konfigurácia servera NFS je definovaná v / etc / default / nfs-kernel-server a / etc / default / nfs-common súbory. Predvolené nastavenia sú dostatočné pre väčšinu situácií.

Vytváranie súborových systémov #

Server NFSv4 používa globálny koreňový adresár a exportované adresáre sú relatívne k tomuto adresáru. Bod pripojenia zdieľania môžete prepojiť s adresármi, ktoré chcete exportovať, pomocou pripojení pripojenia.

V tomto príklade nastavíme / srv / nfs4 adresár ako NFS root. Aby sme lepšie vysvetlili, ako je možné konfigurovať pripojenia NFS, budeme zdieľať dva adresáre (/ var / www a / opt / zálohy) s rôznymi konfiguračnými nastaveniami. The / var / www / je vo vlastníctve používateľa www-data, a / opt / zálohy je vo vlastníctve koreň.

Najskôr vytvorte koreňový adresár a zdieľané prípojné body:

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

Zviažte pripojenie adresárov k zdieľaným bodom pripojenia:

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

Ak chcete, aby sa väzby pripájali natrvalo po reštartovaní, otvorte / etc / fstab spis:

sudo nano / etc / fstab

a pridajte nasledujúce riadky:

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

Exportovanie súborových systémov #

Ďalším krokom je pridanie súborových systémov, ktoré sa exportujú, a klientov, ktorým je povolený prístup k týmto zdieľaným položkám / etc / exporty spis.

Každý riadok pre exportovaný súborový systém má nasledujúci tvar:

exportovať hostiteľa (možnosti) 

Kde export je exportovaný adresár, hostiteľ je názov hostiteľa alebo adresa IP alebo rozsah, ktorý má prístup k exportu, a možnosti sú možnosti hostiteľa.

Otvor / etc / exporty súbor a pridajte nasledujúce riadky:

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

Prvý riadok obsahuje znak fsid = 0 možnosť, ktorá definuje koreňový adresár NFS (/ srv / nfs4). Prístup k tomuto zväzku NFS je povolený iba klientom z domény 192.168.33.0/24 podsiete. The crossmnt na zdieľanie adresárov, ktoré sú podadresármi exportovaného adresára, sa vyžaduje voľba.

Druhý riadok ukazuje, ako určiť viac exportných pravidiel pre jeden súborový systém. Prístup na čítanie je povolený pre celú skupinu 192.168.33.0/24 rozsah a prístup na čítanie i zápis iba na server 192.168.33.3 IP adresa. The synchron voľba povie NFS, aby pred odpovedaním zapísal zmeny na disk.

Posledný riadok je samozrejmý. Ďalšie informácie o všetkých dostupných možnostiach získate zadaním typu človek vyváža vo vašom termináli.

Uložte súbor a exportujte zdieľané súbory:

sudo exportfs -ar

Vyššie uvedený príkaz musíte spustiť pri každej úprave súboru / etc / exporty spis. Ak sa vyskytnú nejaké chyby alebo varovania, zobrazia sa na termináli.

Aktuálny aktívny export a jeho stav zobrazíte pomocou:

sudo exportfs -v

Výstup bude obsahovať všetky zdieľané položky s ich možnosťami. Ako vidíte, existujú aj možnosti, ktoré sme v / etc / exporty spis. Toto sú predvolené možnosti a ak ich chcete zmeniť, musíte ich výslovne nastaviť.

/ srv / nfs4 / zálohy 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 predvolene povolený. Toto je jedna z najdôležitejších možností týkajúcich sa zabezpečenia NFS. Mapovaním koreňov zabráni používateľom root pripojeným z klientov, aby mali oprávnenie root na pripojené zdieľané zložky UID a GID do nikto/podskupina UID/GID.

Aby mali používatelia na klientskych počítačoch prístup, NFS očakáva, že ID užívateľa a skupiny klienta sa zhodujú s ID na serveri. Ďalšou možnosťou je použiť funkciu NFSv4 idmapping, ktorá prekladá ID používateľov a skupín na mená a naopak.

To je všetko. V tomto okamihu ste nastavili server NFS na serveri Ubuntu. Teraz môžete prejsť na ďalší krok a nakonfigurovať klientov a pripojiť sa k serveru NFS.

Konfigurácia brány firewall #

Ak inštalujete Jenkins na vzdialený server Ubuntu chránený bránou firewall, budete musieť povoliť prenos na porte NFS:

sudo ufw povoliť od 192.168.33.0/24 na akýkoľvek port nfs

Overte zmenu:

sudo ufw status

Výstup by mal ukazovať, že prevádzka na porte 2049 je dovolené:

Do akcie od - ------ ---- 2049 POVOLIŤ 192.168.33.0/24 22 / tcp POVOLENÉ kdekoľvek 22 / tcp (v6) POVOLENÉ kdekoľvek (v6) 

Nastaviť klientov NFS #

Teraz, keď je server NFS nastavený a zdieľané položky sa exportujú, je ďalším krokom konfigurácia klientov a pripojenie vzdialených súborových systémov.

Zameriame sa na systémy Linux, ale zdieľanie NFS môžete pripojiť aj na počítačoch macOS a Windows.

Inštalácia klienta NFS #

Na klientskych počítačoch musíme nainštalovať iba nástroje potrebné na pripojenie vzdialeného systému súborov NFS.

Pripojenie súborových systémov #

Budeme pracovať na klientskom počítači s IP 192.168.33.20, ktorý má prístup na čítanie a zápis na server / srv / nfs4 / www súborový systém a prístup iba na čítanie / srv / nfs4 / zálohy systém súborov.

Vytvorte dva nové adresáre pre prípojné body:

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

Adresáre môžete vytvoriť na ľubovoľnom mieste, ktoré chcete.

Pripojte exportované súborové systémy pomocou namontovať príkaz:

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

Kde 192.168.33.10 je IP servera NFS. Namiesto adresy IP môžete použiť aj názov hostiteľa, musí ho však klientsky počítač vyriešiť. To sa zvyčajne vykonáva mapovaním názvu hostiteľa na adresu IP v priečinku / etc / hostitelia spis.

Pri pripájaní súborového systému NFSv4 vynechajte koreňový adresár NFS. Použite / zálohy, namiesto / srv / nfs4 / zálohy.

Skontrolujte, či sú vzdialené systémy súborov úspešne pripojené pomocou pripojenia alebo df príkaz:

df -h

Príkaz vytlačí všetky pripojené systémy súborov. Posledné dva riadky sú pripojené zdieľané zložky:

Použitý veľkosť súborového systému Využiť% Použitý na 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% / beh / uzamknutie tmpfs 994M 0 994M 0% / sys / fs / cgroup / dev / sda1 456M 197M 226M 47% / boot tmpfs 199M 0 199M 0% / beh / užívateľ / 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

Ak chcete, aby sa pripojenia pri reštartovaní natrvalo, otvorte / etc / fstab súbor a pridajte nasledujúce riadky ::

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 

Informácie o dostupných možnostiach pri pripájaní systému súborov NFS získate zadaním príkazu muž nfs vo vašom termináli.

Ďalšou možnosťou pripojenia vzdialených súborových systémov je použitie buď autofy nástroj alebo na vytvorenie systémovej jednotky.

Testovanie prístupu NFS #

Vyskúšajme prístup k zdieľaniam vytvorením nového súboru pre každú z nich.

Najskôr sa pokúste vytvoriť testovací súbor pre server / zálohy adresár pomocou dotknúť sa príkaz:

sudo touch / backups / test.TXT

The / záloha súborový systém je exportovaný iba na čítanie a podľa očakávania uvidíte a Prístup zamietnutý chybná správa:

touch: cannot touch '/ backups / test': Povolenie bolo odmietnuté 

Ďalej skúste vytvoriť testovací súbor pre súbor / srv / www adresár ako root pomocou sudo príkaz:

sudo touch / srv / www / test.TXT

Opäť uvidíte Prístup zamietnutý správa.

touch: cannot touch '/ srv / www': Povolenie odmietnuté 

Ak si spomínate, / var / www adresár vlastní www-data používateľ a toto zdieľanie má root_squash sada možností, ktorá mapuje užívateľa root na server nikto užívateľ a podskupina skupina, ktorá nemá oprávnenie na zápis do vzdialeného zdieľania.

Za predpokladu, že máte a www-data použitie na klientskom počítači s rovnakým UID a GID ako na vzdialenom serveri (čo by sa malo stať, ak ste napríklad nainštalovali nginx na obidva počítače), môžete skúsiť vytvoriť súbor ako užívateľ www-data:

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

Príkaz nezobrazí žiadny výstup, čo znamená, že súbor bol úspešne vytvorený.

Ak to chcete overiť, uveďte zoznam súborov v priečinku / srv / www adresár:

ls -la / srv / www

Výstup by mal zobrazovať novovytvorený súbor:

drwxr-xr-x 3 www-data www-data 4096 10. apríla 22:18 . drwxr-xr-x 3 koreňový koreň 4096 10. apríla 22:29… -rw-r - r-- 1 www-data www-data 0 10. apríla 21:58 index.html -rw-r - r-- 1 www-data www-data 0 10. apríla 22:18 test.TXT 

Odpojenie systému súborov NFS #

Ak vzdialená zdieľaná položka NFS už nie je potrebná, môžete ju odpojiť ako ktorýkoľvek iný pripojený súborový systém pomocou servera umount príkaz.

Napríklad na odpojenie / záloha zdieľať, spustili by ste:

sudo umount / zálohy

Ak je prípojný bod definovaný v / etc / fstab súboru, nezabudnite riadok odstrániť alebo ho komentovať pridaním # na začiatku riadku.

Záver #

Ukázali sme vám, ako nastaviť server NFS a ako pripojiť vzdialené systémy súborov na klientske počítače. Ak implementujete NFS do výroby a zdieľate rozumné údaje, je dobré povoliť autentifikáciu Kerberos.

Ako alternatívu k NFS môžete použiť SSHFS na pripojenie vzdialených adresárov cez pripojenie SSH. SSHFS je predvolene šifrovaný a oveľa jednoduchšie sa konfiguruje a používa.

Ak máte akékoľvek otázky, neváhajte zanechať komentár.

Hry Open source porty komerčných herných strojov
Open source porty komerčných herných strojov
Na hranie starých i niektorých z nedávnych herných titulov je možné využiť bezplatné hry s otvoreným zdrojom a multiplatformové herné enginy. V tomto ...
Hry Najlepšie hry z príkazového riadku pre systém Linux
Najlepšie hry z príkazového riadku pre systém Linux
Príkazový riadok nie je pri použití systému Linux iba vaším najväčším spojencom - môže byť tiež zdrojom zábavy, pretože ho môžete použiť na hranie mno...
Hry Najlepšie aplikácie na mapovanie gamepadu pre Linux
Najlepšie aplikácie na mapovanie gamepadu pre Linux
Ak radi hráte hry v systéme Linux s gamepadom namiesto typického systému vstupu pre klávesnicu a myš, máte tu niekoľko užitočných aplikácií. Mnoho hie...