GNU/Linux >> Znalost Linux >  >> Rocky Linux

Jak nastavit připojení NFS na Rocky Linux 8

Network File System neboli NFS je protokol distribuovaného systému souborů, který umožňuje vzdáleným hostitelům připojit systémy souborů přes síť a provádět na nich operace se soubory, jako by byly připojeny lokálně. To je zvláště užitečné, když chcete sdílet prostředky z jednoho serveru přes více klientů nebo umožnit více klientům zapisovat do jednoho úložného prostoru.

V tomto tutoriálu se naučíte, jak nainstalovat a nakonfigurovat server NFS a klienty NFS založené na Rocky Linux 8. Za tímto účelem nastavíme hostitele nebo server pro sdílení souborů a klienta pro přístup k souborům hostitele pomocí připojení NFS. .

Předpoklady

  • Dva servery Rocky Linux 8. Každý z nich by měl mít uživatele bez oprávnění root s právy sudo.
  • Hostitel i klient by měli mít statickou IP adresu. Obojí můžete dokonce nastavit přes privátní síť. Pro náš tutoriál použijeme host_ip k označení IP adresy hostitele a client_ip odkazovat na IP adresu Klienta.

Krok 1 – Instalace NFS na hostitele a klienta

Hostitel

Chcete-li nainstalovat balíčky NFS, musíte nainstalovat nfs-utils balík. Poskytuje démona pro server NFS a související nástroje.

Nainstalujte balíček.

$ sudo dnf install nfs-utils

Povolte a spusťte nfs-server servis. Zbývající služby nezbytné pro připojení a sdílení NFS, jako je nfsd , nfs-idmapd , rpcbind , rpc.mountd , lockd , rpc.statd , rpc.quotad a rpc.idmapd spustí se automaticky spolu s ním.

$ sudo systemctl enable nfs-server --now

Ověřte verzi instalace NFS.

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

NFS verze 3 a 4 jsou ve výchozím nastavení povoleny a verze 2 je zakázána. NFSv2 je docela starý a zastaralý, a proto můžete vidět -ve podepsat před ním.

NFS ukládá své konfigurace v /etc/nfsmount.conf a /etc/nfs.conf soubory. Soubor /etc/nfsmount.conf je konfigurovat připojení NFS v /etc/nfs.conf je nakonfigurovat démona NFS a související nástroje. Výchozí nastavení stačí pro náš tutoriál a není potřeba žádná změna.

Klient

Na klienta nainstalujte nfs-utils a nfs4-acl-tools balíčky.

$ sudo dnf install nfs-utils nfs4-acl-tools

Krok 2 – Vytvoření sdílených adresářů na hostiteli

Použijeme dva příklady s různým nastavením konfigurace – jeden s univerzálním připojením a jeden se sdílením domovského adresáře hostitele.

NFS připojené adresáře nejsou součástí klienta. Proto na nich NFS nemůže provádět úlohy vyžadující oprávnění superuživatele. Znamená to, že klient nemůže změnit vlastnictví, zapisovat na něj jako uživatel root nebo provádět úkoly na vysoké úrovni. Existují však případy, kdy důvěryhodný uživatel na klientovi potřebuje provést takové úkoly, aniž by vyžadoval přístup superuživatele na hostiteli. Server NFS lze nakonfigurovat tak, aby to umožňoval, ale existuje riziko, že klient může přistupovat k hostiteli.

Práce s univerzálním držákem

V našem prvním případě vytvoříme jednoduché připojení, které používá výchozí chování NFS, což znamená, že klient nemůže provádět žádné úkoly vyžadující oprávnění superuživatele.

Vytvořte sdílený adresář.

host:$ sudo mkdir /var/nfs/share -p

Tento adresář bude vlastnit uživatel root hostitele, protože jsme použili sudo k jeho vytvoření.

host:$ ls -l /var/nfs
total 0
drwxr-xr-x. 2 root root 6 Dec 13 07:30 share

NFS přeloží všechny operace root na straně klienta do nobody:nobody přihlašovací údaje z bezpečnostních důvodů. Proto je musíme porovnat na straně hostitele.

host:$ sudo chown nobody:nobody /var/nfs/general

Práce s domovským adresářem

V našem druhém případě zpřístupníme domovský adresář na hostiteli klientovi. Nemusíme jej vytvářet, protože již existuje. Nemusíme měnit žádná oprávnění, protože by to ovlivnilo uživatele na hostitelském počítači.

Krok 3 – Konfigurace exportů NFS na hostiteli

Otevřete soubor /etc/exports na hostitelském počítači pro úpravy.

host:$ sudo nano /etc/exports

Vložte následující kód do souboru.

/var/nfs/share      client_ip(rw,sync,no_subtree_check)
/home               client_ip(rw,sync,no_root_squash,no_subtree_check)

Každý adresář a jeho konfigurace musí být na samostatném řádku. Nahraďte client_ip hodnotu se skutečnou IP adresou klientského počítače.

Pojďme si projít všechny možnosti pro exporty NFS.

  • rw - poskytuje klientskému počítači přístup ke čtení a zápisu na svazek NFS.
  • synchronizovat - tato volba přinutí NFS zapsat změny na disk před odpovědí. Tato možnost je považována za spolehlivější. Snižuje však také rychlost operací se soubory.
  • no_subtree_check - tato volba zabraňuje kontrole podstromu, což je proces, kdy hostitel musí zkontrolovat, zda je soubor dostupný spolu s oprávněními pro každý požadavek. Může také způsobit problémy, když je soubor přejmenován na hostiteli, zatímco je stále otevřený na klientovi. Jeho zakázání zvyšuje spolehlivost NFS.
  • no_root_squash - Ve výchozím nastavení NFS překládá požadavky od uživatele root na klientovi na neprivilegovaného uživatele na hostiteli. Tato možnost toto chování zakáže a měla by být používána opatrně, aby klient mohl získat přístup k hostiteli.

Po dokončení uložte soubor stisknutím Ctrl + X a zadáním Y až budete vyzváni.

Chcete-li exportovat sdílené položky, spusťte následující příkaz.

host:$ sudo exportfs -arv
exporting client_ip:/home
exporting client_ip:/var/nfs/share
  • -a - tato volba způsobí export všech adresářů.
  • -r - tato volba způsobí, že všechny adresáře budou exportovány vytvořením nového seznamu v /var/lib/nfs/etab adresář. Tato možnost se používá k obnovení seznamu exportů se všemi změnami provedenými v souboru /etc/exports .
  • -v - umožňuje podrobný výstup.

Chcete-li zobrazit seznam všech exportovaných adresářů, spusťte následující příkaz. Zobrazí všechny možnosti, včetně výchozích, které nebyly specifikovány v /etc/exports soubor.

host:$ sudo exportfs -s
/var/nfs/share  client_ip(sync,wdelay,hide,no_subtree_check,sec=sys,rw,secure,root_squash,no_all_squash)
/home  client_ip(sync,wdelay,hide,no_subtree_check,sec=sys,rw,secure,no_root_squash,no_all_squash)

Krok 4 – Konfigurace brány firewall na hostiteli

Rocky Linux používá Firewalld Firewall. Zkontrolujte stav brány firewall.

host:$ sudo firewall-cmd --state
running

To znamená, že je úspěšně spuštěn.

Firewall pracuje s různými zónami a veřejná zóna je výchozí zóna, kterou budeme používat. Seznam všech služeb a portů aktivních na bráně firewall.

host:$ sudo firewall-cmd --permanent --list-services

Měl by ukazovat následující výstup.

cockpit dhcpv6-client ssh

Dále musíme povolit provoz potřebným službám NFS - mountd , nfs a rpc-bind . Musíme také povolit přístup z IP klienta. Pokud jsou vaši klienti a hostitelské servery ve stejné podsíti, nemusíte přidávat IP adresu klienta.

host:$ sudo firewall-cmd --permanent --add-service=nfs
host:$ sudo firewall-cmd --permanent --add-service=rpc-bind
host:$ sudo firewall-cmd --permanent --add-service=mountd
host:$ sudo firewall-cmd --permanent --add-source=client_IP 

Chcete-li použít změny, znovu načtěte bránu firewall.

host:$ sudo firewall-cmd --reload

Krok 5 – Vytvoření přípojných bodů a adresářů na klientovi

Nyní, když je server/hostitel NFS nakonfigurován, je dalším krokem nastavení přípojných bodů a adresářů na klientovi. Můžete spustit showmount příkaz na klientovi, abyste zkontrolovali seznam exportovaných systémů souborů na hostiteli.

client:$ showmount -e host_ip
Export list for host_ip:
/home          host_ip
/var/nfs/share host_ip

Vždy vytvořte nový adresář jako přípojné body na klientovi nebo použijte existující prázdný adresář. Pokud je v adresáři, který připojujete, soubor, bude skrytý.

Vytvořte adresáře Mount.

client:$ sudo mkdir -p /nfs/share
client:$ sudo mkdir -p /nfs/home

Připojte sdílené složky pomocí adresy IP hostitele.

client:$ sudo mount host_ip:/var/nfs/share /nfs/share
client:$ sudo mount host_ip:/home /nfs/home

Ověřte, že připojení bylo úspěšné.

client:$ df -h
Filesystem                 Size  Used Avail Use% Mounted on
devtmpfs                   370M     0  370M   0% /dev
tmpfs                      405M     0  405M   0% /dev/shm
tmpfs                      405M   16M  389M   4% /run
tmpfs                      405M     0  405M   0% /sys/fs/cgroup
/dev/vda1                   25G  2.4G   23G  10% /
tmpfs                       81M     0   81M   0% /run/user/1000
host_ip:/var/nfs/share      25G  2.4G   23G  10% /nfs/share
host_ip:/home               25G  2.4G   23G  10% /nfs/home

Obě sdílené položky jsou připojeny ze stejného systému souborů. Ukazují tedy stejné využití disku.

Můžete také použít mount příkaz k ověření.

client:$ mount | grep nfs
rpc_pipefs on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw,relatime)
host_ip:/var/nfs/share on /nfs/share type nfs4 (rw,relatime,vers=4.2,rsize=131072,wsize=131072,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,clientaddr=client_ip,local_lock=none,addr=host_ip)
host_ip:/home on /nfs/home type nfs4 (rw,relatime,vers=4.2,rsize=131072,wsize=131072,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,clientaddr=client_ip,local_lock=none,addr=host_ip)

Krok 6 – Test přístupu NFS

Testování obecného sdílení

Napište testovací soubor do /var/nfs/share sdílet.

client:$ sudo touch /nfs/share/test.txt

Zkontrolujte jeho vlastnictví.

client:$ ls -l /nfs/share/test.txt
-rw-r--r--. 1 nobody nobody 0 Dec 13 08:08 /nfs/share/test.txt

Protože jsme tento svazek připojili pomocí výchozího nastavení NFS a vytvořili soubor na klientovi pomocí sudo , vlastnictví souboru je ve výchozím nastavení nobody:nobody . Superuživatelé klientů nemohou provádět žádné administrativní úkoly na sdílené složce.

Testování sdílení domovského adresáře

Napište testovací soubor do /nfs/home sdílet.

client:$ sudo touch /nfs/home/home.txt

Zkontrolujte jeho vlastnictví.

client:$ ls -l /nfs/home/home.txt
-rw-r--r--. 1 root root 0 Dec 13 08:09 /nfs/home/home.txt

Protože jsme použili no_root_squash Tato možnost umožnila uživateli root klienta jednat jako root na samotné sdílené složce.

Krok 7 – Udělejte přípojné body trvalými

Sdílené složky NFS jsou ve výchozím nastavení dočasné a je třeba je připojit při spouštění. Můžeme je učinit trvalými úpravou /etc/fstab soubor na klientovi.

Otevřete soubor /etc/fstab pro úpravy.

client:$ sudo nano /etc/fstab

Vložte následující řádky do spodní části souboru.

. . .
host_ip:/var/nfs/share      /nfs/share     nfs auto,nofail,noatime,nolock,intr,tcp,actimeo=1800 0 0
host_ip:/home               /nfs/home      nfs auto,nofail,noatime,nolock,intr,tcp,actimeo=1800 0 0

Více o možnostech uvedených výše můžete zjistit spuštěním následujících příkazů.

client:$ man nfs
client:$ man mount

Pokud si je chcete přečíst online, můžete si vygooglit frázi man nfs a man mount se o těchto možnostech dozvíte více.

Krok 8 – Odpojení sdílení NFS

Pokud již vzdálené připojení ve svém systému nechcete, můžete je odpojit pomocí umount příkaz. Všimněte si, že příkaz se nazývá umount a nikoli odpojit což je častá chyba.

Přesuňte se ze sdílených připojení a odpojte je.

client:$ cd ~
client:$ sudo umount /nfs/share
client:$ sudo umount /nfs/home

Pokud již nepotřebujete sdílené položky znovu připojovat po restartu, ujistěte se, že jste zakomentovali odpovídající položky v /etc/fstab soubor vložením # podepsat před nimi.

Závěr

V tomto tutoriálu jsme se naučili, jak vytvořit hostitelský server NFS a pomocí něj připojit adresáře, které jsme sdíleli s klientem NFS. Pokud jej implementujete v privátní síti, pak by neměl být žádný problém, ale pokud jej používáte v produkci, měli byste si uvědomit, že protokol není šifrovaný a měli byste implementovat určitou autentizaci pro ochranu vašich dat.

Pokud máte nějaké dotazy, napište je do komentářů níže.


Rocky Linux
  1. Jak připojit sdílenou složku NFS v systému Linux

  2. Jak nastavit NFS server a klienta na Rocky/Alma Linux 8

  3. Jak nainstalovat Redis na Rocky Linux 8

  1. Jak nainstalovat Python 3.9 na Rocky Linux 8

  2. Jak nastavit Pritunl VPN Server na Rocky Linux 8

  3. Jak upgradovat CentOS 7 na Rocky Linux 8

  1. Jak nainstalovat Rocky Linux 8.4

  2. Jak nastavit statickou IP adresu v Rocky Linuxu

  3. Jak hostovat web pomocí Apache s SSL v Rocky Linuxu