GNU/Linux >> Znalost Linux >  >> Linux

Správa síťového systému souborů (NFS) v systému Linux

Síťové systémy souborů , také zkráceno NFS , jsou systémy souborů, ke kterým lze přistupovat přes síť.

Ve srovnání se souborovými systémy, které mohou být na vašem počítači lokální, jsou síťové systémy souborů uloženy na vzdálených počítačích, ke kterým se přistupuje prostřednictvím specifického síťového protokolu:protokol NFS .

NFS patří do velké rodiny protokolů pro sdílení souborů, mezi které patří SMB, FTP, HTTP a mnoho dalších protokolů pro sdílení souborů.

NFS má svůj vlastní způsob přístupu a zabezpečení vzdálených souborových systémů, stejně jako různé způsoby zabezpečení přístupu ke vzdáleným souborovým systémům.

V tomto tutoriálu se chystáme nastavit NFS server na vzdáleném počítači a nainstalujte klienta NFS abyste k němu měli přístup.

Chystáme se nakonfigurovat server NFS v závislosti na zdroji, který chceme sdílet, a uvidíme drobné nedostatky, které je třeba o NFS vědět.

Co se naučíte

Pokud dodržíte tento návod až do konce, dozvíte se o následujících konceptech:

  • Jak můžete nastavit server NFSv4 , vytvořte sdílenou složku a exportujte ji do vzdálených klientů;
  • Jak instalovat klienta NFS a jak jej navázat na váš NFS server;
  • Jak funguje ověřování uživatelů na NFS a proč je ověřování NFS považováno za slabé;
  • Co je squashing a proč byste měli vždy povolit root_squashing;
  • Jak NFS zpracovává souběžné úpravy ve srovnání s jinými protokoly pro sdílení souborů.

To je poměrně dlouhý program, takže bez dalších okolků začněme tím, že si můžete nastavit svůj vlastní server NFSv4.

Nastavení serveru NFSv4

V tomto tutoriálu budeme používat standardní distribuci Kubuntu, ale zbytek tohoto tutoriálu by měl fungovat stejně, pokud používáte jinou distribuci.

$ uname -a

Linux kubuntu 5.3.0-18-generic #19-Ubuntu GNU/Linux

Před instalací jakýchkoli balíčků se ujistěte, že je váš systém správně nakonfigurován pomocí příkazu apt.

sudo apt-get update

Nyní, když je váš systém aktualizován, budete muset nainstalovat několik balíčků pro váš NFS server.

Instalace serveru NFSv4

Chcete-li nainstalovat server NFS v systému Linux, musíte nainstalovat „nfs-kernel-server ” s apt.

$ sudo apt-get install nfs-kernel-server

Jak můžete vidět na obrázku výše, nfs-kernel-server je dodáván s některými konfiguračními soubory, které budete muset vyladit:

  • vývoz :používá se jako konfigurační soubor pro nastavení adresářů, které se mají exportovat přes NFS;
  • nfs-kernel-server :lze jej použít, pokud chcete nastavit ověřování nebo upravit parametry vašeho NFS serveru související s RPC.

V tomto tutoriálu jsme nakonfigurováni pouze k úpravě souboru exportů, abychom mohli exportovat naše adresáře.

Export adresářů s exporty

Jak je uvedeno výše, upravíme soubor exports umístěný v adresáři etc, abychom mohli sdílet adresáře.

Syntaxe souboru exportů je docela jednoduchá.

Soubor exportů je soubor oddělený sloupci složený z následujících polí:

  • Místní adresář :adresář, který má být exportován do místního souborového systému;
  • IP nebo název hostitele počítače, kterému chcete udělit přístup;
  • Možnosti NFS jako je rw (pro čtení a zápis), synchronizace (což znamená, že provedené změny jsou přímo vyprázdněny na disk)

Nejprve musíte vytvořit adresář, který bude exportován do vašeho systému. Pokud adresář již na vašem počítači existuje, nemusíte jej vytvářet.

$ sudo mkdir -p /var/share

Prozatím můžete povolit root jako vlastníka a jako skupinu vlastnící soubor, ale později jej upravíme v závislosti na oprávněních, která chceme pro tuto sdílenou složku.

Nyní, když je vaše sdílená složka vytvořena, budete ji muset přidat do souboru exports, aby mohla být exportována.

Vraťte se do /etc/exports soubor a přidejte informace, které jsme uvedli ve výše uvedeném seznamu odrážek.

V prvním sloupci musíte určit složku, kterou chcete exportovat, což je sdílená složka, kterou jsme právě vytvořili.

Dále musíte zadat IP nebo názvy hostitelů, které mohou tento adresář lokálně připojit.

V tomto případě jsme zvolili IP sítě nastavit v souboru exports, ale pro vás to může být jiné.

Chcete-li exportovat všechny adresáře uvedené v souboru „exports“, musíte použít „exportfs ” s volbou “-a” pro “vše”.

$ sudo exportfs -a

Dále můžete ověřit, že vaše složky byly správně exportovány spuštěním příkazu „exportfs“ s volbou „-v“ pro „verbose“.

$ sudo exportfs -v

Jak jste si pravděpodobně všimli, některé možnosti, které nebyly specifikovány v souboru exportů, byly ve výchozím nastavení nastaveny serverem NFS:

  • rw :operace čtení a zápisu jsou na svazku autorizovány (tato možnost byla původně specifikována v souboru);
  • wdelay :NFS server vyvolá malé zpoždění zápisu, pokud má podezření, že je aktuálně prováděno více operací zápisu ve stejnou dobu;
  • root_squash :„root“ účet bude ve výchozím nastavení „stlačen“ anonymnímu uživateli. Pokud nevíte, co je squashing, můžete si o něm přečíst v dalších částech;
  • no_subtree_check :ve výchozím nastavení server NFS zkontroluje, zda je požadovaná operace součástí souborového systému exportovaného na server;
  • sec=sys :ve výchozím nastavení bude NFS používat přihlašovací údaje nastavené na serveru. Pokud váš systém používá místní ověřování, budou tyto přihlašovací údaje použity, ale pokud je použit NIS, bude použit jako systém ověřování;
  • zabezpečené :tato možnost ověřuje, že požadavky pocházejí z portu nižšího než 1024 (připomínáme, že požadavky klientů NFS pocházejí z portu 111);
  • no_all_squash :kromě účtu „root“ nejsou ostatní uživatelé při interakci se serverem NFS potlačeni.

Přizpůsobení pravidel brány firewall pro NFS

Aby se naši klienti mohli připojit k našemu serveru NFS, budete se muset ujistit, že firewall je nakonfigurován tak, aby přijímal připojení NFS.

Pro rychlé připomenutí, NFS běží na portu 2049 na serveru.

Pro Debian a Ubuntu pravděpodobně používáte UFW firewall (můžete to ověřit příkazem „ufw status“)

Chcete-li povolit připojení NFS k vašemu serveru, spusťte „ufw ” jako root a povolit připojení na portu 2049.

$ sudo ufw allow 2049

Na druhou stranu, pokud provozujete Red Hat nebo distribuci CentOS, budete muset vyladit vestavěný firewall „firewalld“.

$ sudo firewall-cmd --add-port=2049/tcp

Nakonec se pomocí příkazu „netstat“ ujistěte, že váš síťový adaptér správně vystavuje port 2049 vnějšímu světu.

$ netstat -tulpn | grep 2049

Dobře, nyní, když jste se ujistili, že váš server NFS je správně spuštěn a že vaše sdílené složky jsou exportovány, se podívejme, jak můžete nakonfigurovat své klienty NFS.

Konfigurace klientů NFSv4

Konfigurace na klientovi je docela přímočará, ale pro připojení NFS oddílů budete potřebovat specifické balíčky.

Připojování oddílů NFS na klienty

Nejprve musíte nainstalovat „nfs-utils ” aby bylo možné připojit balíčky NFS.

Zjevně potřebujete mít oprávnění sudo za účelem instalace nových balíčků. Zde je několik výukových programů pro Debian/Ubuntu a CentOS/RHEL.

$ sudo apt-get install nfs-utils

$ sudo yum install nfs-utils

Nyní, když je balíček nainstalován, můžete jednoduše připojit oddíl pomocí následující syntaxe

$ mount -t nfs <dest_ip_or_hostname>:<remote_path> <mount_point>

Řekněme například, že váš server NFS je umístěn na IP adrese 192.168.178.31/24 a že chcete na serveru sdílet složku /var/share.

Pro export této složky byste napsali následující příkaz

$ sudo mount -t nfs 192.168.178.31:/var/share /var/share

Odstraňování problémů s klientem NFS není příliš praktické, ale pokud je to v rukou vašeho terminálu, pravděpodobně to znamená, že se nemůžete dostat k cílovému hostiteli.

Pokud se příkaz provede úspěšně, měli byste být schopni vypsat svůj nový přípojný bod pomocí příkazu df.

$ df -H

Vytváření nových souborů na svazku NFS

Jak si pravděpodobně pamatujete z minulé sekce, viděli jsme, že náš svazek NFS je ve výchozím nastavení nakonfigurován tak, aby stlačil účet root, ale žádné jiné uživatele.

Kromě toho je sdílená složka vlastněna rootem a kořenovou skupinou.

Pokud se pokusíte vytvořit nové soubory na tomto svazku, zobrazí se chyba oprávnění odepřeno, a to i při pokusu o jejich vytvoření pomocí sudo.

Proč?

Klientský účet nepatří do „root“ skupiny na serveru, a pokud se pokusíte vytvořit soubor jako root na klientovi, budete stlačeni na anonymní účet.

Slovo o správě uživatelů NFS

Než nakonfigurujeme náš server a klienta, aby správně sdílely složky, pojďme si rychle prohlédnout, jak funguje správa uživatelů na svazcích NFS.

Jak jste se pravděpodobně dozvěděli v našich předchozích kurzech, uživatel je identifikován pomocí uživatelského ID (nazývaného také UID ) a toto UID je jedinečné na počítači, ale nebude jedinečné na několika počítačích stejného webu.

Pokud však váš systém není nakonfigurován pro práci s centrálním systémem správy uživatelů (jako je NIS, OpenLDAP nebo Samba), vaše uživatelská ID mohou být v systémech, na kterých provozujete, v konfliktu.

V tomto případě, pokud uvážíme, že nemáte centrální řídicí systém, jednoduše uvedeme, že vedete konzistentní seznam uživatelů mezi systémy.

Nyní, když jsou uživatelé a skupiny mezi hostiteli konzistentní, pojďme vytvořit skupinu, která bude moci přidávat a mazat soubory do složky.

Vytvoření skupiny pro sdílení NFS

V tomto tutoriálu budeme předpokládat, že „administrátoři ” mohou přidávat a odstraňovat soubory v této složce.

Nejprve na serveru použijte „groupadd ” za účelem vytvoření této nové skupiny

$ sudo groupadd administrators

Poté můžete změnit skupinu vlastnící vaši sdílenou složku NFS na „administrátory

$ sudo chown :administrators /var/share

Na serveru přidejte povolené uživatele do skupiny, kterou jste právě vytvořili.

$ sudo usermod -aG administrators <user>

Sdílené disky nemusíte znovu exportovat, můžete jednoduše začít vytvářet soubory, když jsou oprávnění správně nakonfigurována.

Na klientovi vytvořte nový soubor na sdíleném disku pomocí dotykového příkazu.

$ cd /var/share && touch file-example

Na serveru uvidíte, že váš soubor byl správně vytvořen.

Úžasný!

Úspěšně jste vytvořili svazek NFS a sdíleli jste jej s klientskými počítači.

Trvalé připojení NFS pomocí fstab

Jak již víte z předchozích výukových programů, připojení disku v Linuxu pomocí příkazu mount jej nezajistí trvalou po restartování.

Aby byla vaše připojení trvalá, musíte je přidat do souboru fstab.

Jako privilegovaný uživatel upravte soubor fstab a přidejte řádek pro váš disk NFS

#
# /etc/fstab
# Accessible filesystems, by reference, are maintained under '/dev/disk'.

<ip_address>:<remote_path>   <mountpoint>  nfs  <options>  0   0

Například s ohledem na svazek NFS vytvořený dříve na „192.168.178.31“ na cestě „/var/share“ by to poskytlo

#
# /etc/fstab
# Accessible filesystems, by reference, are maintained under '/dev/disk'.

192.168.178.31:/var/share  /var/share  nfs  defaults  0   0

Pokud používáte systém založený na systemd, můžete znovu načíst závislé démony spuštěním příkazu daemon-reload

$ systemctl daemon-reload

Úžasný!

Nyní můžete restartovat svůj klientský počítač a ověřit, že byl váš disk při spouštění správně připojen.

Jít dále s NFS

V této části probereme pokročilá témata o NFS, konkrétně o tom, jak probíhá souběžná úprava a jak můžete vyladit konfiguraci NFS na konkrétní klientské hostitele.

Souběžné úpravy

Při používání NFS pravděpodobně skončíte s úpravou některých souborů spolu s několika dalšími uživateli.

Nativně server NFS vám nebude bránit v úpravách stejného souboru.

Pokud používáte vi jako textový editor, budete upozorněni, že některé úpravy již provedl jiný uživatel (prostřednictvím souboru swp).

Záměna souborů NFS vám však nezabrání v úpravách souboru:pouze zobrazí varovnou zprávu o souborech, které jsou aktuálně upravovány.

Navíc, pokud používáte jiné textové editory, nebudou vytvořeny žádné „swp“ soubory a soubor bude mít obsah poslední provedené úpravy.

Všimněte si, že existuje způsob, jak uzamknout soubory lokálně pomocí local_lock ” na straně klienta , můžete se podívat do dokumentace Linuxu, pokud vás tato možnost zajímá.

Export složek na konkrétní IP adresy klientů

V některých případech může být nutné exportovat složku do konkrétních klientů ve vaší podsíti.

Chcete-li zjistit IP adresu svého klienta, přejděte na klientský počítač a použijte příkaz „ip“ s možností „a“ pro adresu.

$ ip a

Jak můžete vidět, můj klientský hostitel má dvě rozhraní:rozhraní zpětné smyčky (neboli localhost) a jeden síťový adaptér s názvem „enp0s3“.

Ten má IP adresu již přiřazenou k rozhraní, které lze vidět na řádku „inet“:192.168.178.27/24.

Pokud chcete exportovat své složky do celé podsítě, můžete zadat IP podsítě:v důsledku toho bude každá IP v podsíti moci exportovat vaši složku.

Podobně je možné zkontrolovat název hostitele klientského počítače a později jej exportovat na server.

$ hostname

Zpět k souboru exportů si můžete vybrat, zda chcete exportovat jednu nebo více IP adres nebo exportovat počítač podle názvu hostitele.

Monitorování NFS

Při instalaci balíčku nfs-common skončí také instalace „nfsstat “, což je program, který odhaluje statistiky NFS.

Pomocí nfsstat budete moci vidět celkový počet operací provedených na vašem NFS serveru a také aktuální aktivitu.

Závěr

V tomto tutoriálu jste se naučili, jak můžete nastavit server NFSv4 snadno pomocí nástroje nfs-kernel-server.

Také jste se dozvěděli, jak můžete připojit disky ke klientům, a o různých možnostech, které musíte vyladit pro připojení NFS.

Nakonec jste se podrobně věnovali diskům NFS a naučili se, jak se správa uživatelů provádí mezi více hostitelskými stroji a jak byste měli nastavit svůj vlastní systém správy uživatelů.

Pokud se zajímáte o administraci systému Linux, máme na webu kompletní sekci, která se jí věnuje, takže se určitě podívejte!


Linux
  1. Zlepšete výkon systému Linux pomocí noatime

  2. Co je NFS a jak jej nainstalovat na Linux

  3. Linux – všechno je soubor?

  1. Rychlá konfigurace serveru NFS na systému Redhat 7 Linux

  2. Odstraňování běžných problémů s NFS v Linuxu

  3. Jak připojit a odpojit souborový systém v Linuxu

  1. Linux věrohodně popíratelný souborový systém

  2. Ubuntu Linux – sdílené VHDX

  3. Linux:Kam umístit odkládací soubor