NFS (Network File System) společnosti Sun Microsystems je struktura distribuovaného souborového systému založená na RPC, která umožňuje síťovým zařízením používat servery se systémem NFS v síti jako své místní jednotky.
Zde je podrobný průvodce nastavením a konfigurací serveru NFS na počítači se systémem Linux.
Co je síťový souborový systém?
Systém souborů NFS má čtyři protokoly. Když je server připraven, upozorní portmap (server, který převádí protokol na čísla portů) o portu, který má použít, a poskytne řízené číslo programu RPC.
Při použití vestavěného systému Linux je velmi pohodlné zavést zařízení prostřednictvím sdílení souborů NFS přes síť namísto spouštění přímo z úložného zařízení (NAND flash, eMMC, MMC, atd.).
I když je to vzácnější, můžete také chtít připojit sdílenou složku NFS a provádět sdílení souborů pomocí ní po spuštění systému, i když systém nespustíte přímo ze sdílené složky NFS. Aby oba scénáře fungovaly, musíte nejprve nainstalovat server NFS do počítače, na kterém vyvíjíte.
Jak nainstalovat NFS na Linux
Pokud používáte a Systém založený na Debianu jako je Ubuntu nebo Linux Mint, měli byste nainstalovat nfs-kernel-server balíček takto:
sudo apt Nainstalujte nfs-kernel-server
Na Arch Linuxu:
sudo pacman -S nfs-utils
Na Fedoře, CentOS a RHEL:
sudo dnf -y Nainstalujte nfs-utils
Na konci procesu se váš NFS server spustí automaticky. V tuto chvíli však ještě neví, které adresáře na vašem počítači chcete sdílet přes síť. Proto standardně neposkytuje žádné sdílení.
Na stejném serveru můžete otevřít více adresářů a umožnit tak sdílení v síti s různými oprávněními a omezeními.
Konfigurace serveru NFS v systému Linux
Chcete-li sdílet jakýkoli adresář přes server NFS, je nutné nakonfigurovat nastavení související s adresářem v /etc/exports soubor. Otevřete soubor pomocí libovolného textového editoru podle vašeho výběru. Nezapomeňte k příkazu přidat předponu sudo.
sudo vim /etc/exportů
Možná vás zajímá, co znamenají možnosti mapování, které zde vidíte:
- root_squash: Označí uživatele sudo oprávněného klienta jako uživatele a skupinu nikoho na NFS
- no_root_squash: Zakáže vymačkání kořenů
- all_squash: Na rozdíl od root_squash umožňuje, aby byli všichni uživatelé mapováni jako uživatel a skupina nikdo. Obvykle se používá pro veřejný přístup.
- no_all_squash: Opak all_squash; tato možnost je výchozí
Když se systém mimo rozsahy IP povolených v souboru /etc/exports na serveru NFS pokusí o přístup k příslušnému prostředku, server NFS požadavek odmítne.
Při připojování k vestavěnému systému můžete obdržet zprávy „přístup odepřen serverem“. Na konci se objeví chybové zprávy podobné následujícímu /var/log/syslog soubor v počítači, kde běží NFS server:
rpc.mountd[1041]: zamítnutý požadavek na připojení z192.168.2.2pro /home/example/casper/target (/home/example/casper/target): bezkonkurenční hostitel
Když uvidíte neodpovídající zprávu protokolu hostitele, jako je ta výše, měli byste rozbalit sekci IP/Netmask příslušného pravidla v souboru /etc/exports nebo použít hvězdička (*) speciální znak, pokud chcete udělit přístup ke všem IP adresám.
Po provedení úprav v souboru musíte restartovat službu NFS /etc/exports soubor:
sudo služba nfs-kernel-server restart
Nebo, pokud je vaše distribuce dodávána s systemctl, spusťte následující příkaz:
sudosystemctlrestartovatnfs-server.servis
Můžete také dát -r parametr k exportfs příkaz tak, aby znovu sdílel adresáře, které změnily jakákoli nastavení související se sdílením:
sudo exportfs -r
Oprava problému s latencí připojení
Pokud na svém serveru používáte protokol NFS verze 4 a vyšší, může dojít ke zpožděním až 15 sekund proces připojení na straně klienta v tradičních operačních scénářích s výchozí konfigurací NFS server. Tento problém se může objevit na některých verzích Debianu, Fedory a Ubuntu.
Pokud zažíváte podobné zpoždění připojení, můžete zkontrolujte soubory protokolu na straně serveru (/var/log/syslog, /var/log/messages) pro zprávu protokolu podobnou následující:
... RPC: Upcall upcall AUTH_GSS vypršel
Tato zpráva označuje, že ověřování Kerberos selhalo a vypršel časový limit. Protokol Kerberos pro bezpečnostní ověřování v síti ve svém prostředí pravděpodobně nebudete potřebovat. I když jste v síti nakonfigurované tímto způsobem, alespoň s vašimi vestavěnými systémy Linux, nebudete muset povolit ověřování Kerberos.
Ačkoli byly k vyřešení problému nabídnuty alternativy ke spuštění služby GSSD s NFS, tyto přístupy neexistují stejný dopad ve všech distribucích a verzích balíčků, a proto je nejracionálnější řešit tento problém z vykořenit.
Musíte zablokovat (nebo na černou listinu). rpcsec_gss_krb5 kernel modul od načtení na systém Linux, kde je spuštěn NFS server.
Aby se tato možnost projevila při každém restartování počítače, vytvořit nový soubor volala /etc/modprobe.d/nfs-gss-blacklist.conf a přidejte k němu následující řádky:
blacklist rpcsec_gss_krb5
Jakmile soubor uložíte a restartujete systém, problém s latencí připojení zmizí.
Proč používat server NFS?
Nastavení NFS je jednoduché a cenově dostupné. Umožňuje centralizovanou správu, která snižuje požadavky na další software a úložný prostor na počítači jednotlivého uživatele. Na jednom počítači může více uživatelů sdílet stejný prostor na disku. Mohou tyto disky umístit na svůj souborový systém a rozšířit tak úložný prostor.
Sdílení NFS umožňuje seskupit programy, které vyžadují hodně úložného prostoru, na jeden server. To může vést k obrovské úspoře místa na disku. Zatímco předchozí verze NFS jsou zranitelné, novější verze zavedly další úrovně ochrany, včetně ověřování Kerberos.
Existují však i některé nevýhody. Bylo zjištěno, že NFS se v některých případech při silném síťovém provozu zpomaluje. Sdílení s Windows je možné, ale může vyžadovat některé aplikace třetích stran. To ale není z hlediska bezpečnosti příliš rozumná praxe. Pokud není konfigurace správná, může dojít k neoprávněnému přístupu.
Snadné sdílení souborového systému v systému Linux pomocí NFS
Znalost bezpečnostních problémů a hledání řešení je jedním z nejdůležitějších úkolů správce systému. Je nutné znát bezpečnostní postupy pro všechny systémy sdílení souborů a nástroje pro správu, nejen pro NFS.