NFS (Network File System) od Sun Microsystems je štruktúra distribuovaného súborového systému založená na RPC, ktorá umožňuje sieťovým zariadeniam používať servery so systémom NFS cez sieť ako svoje lokálne jednotky.
Tu je podrobný návod na nastavenie a konfiguráciu servera NFS na počítači so systémom Linux.
Čo je sieťový súborový systém?
Súborový systém NFS má štyri protokoly. Keď je server pripravený, upozorní portmap (server, ktorý konvertuje protokol na čísla portov) o porte, ktorý sa má použiť, a poskytne riadené číslo programu RPC.
Pri použití vstavaného systému Linux je veľmi výhodné spustiť zariadenie prostredníctvom zdieľania súborov NFS cez sieť namiesto spustenia priamo z úložného zariadenia (NAND flash, eMMC, MMC, atď.).
Aj keď je to zriedkavejšie, môžete tiež chcieť pripojiť zdieľanie NFS a vykonávať zdieľanie súborov pomocou neho po spustení systému, aj keď nespustíte systém priamo zo zdieľania NFS. Aby oba scenáre fungovali, musíte najskôr nainštalovať server NFS do počítača, na ktorom vyvíjate.
Ako nainštalovať NFS v systéme Linux
Ak používate a Systém založený na Debiane ako je Ubuntu alebo Linux Mint, mali by ste nainštalovať nfs-kernel-server balíček takto:
sudo apt Inštalácia nfs-kernel-server
V systéme Arch Linux:
sudo pacman -S nfs-utils
Na Fedore, CentOS a RHEL:
sudo dnf -y Inštalácia nfs-utils
Na konci procesu sa váš server NFS spustí automaticky. V tejto chvíli však ešte nevie, ktoré adresáre na vašom počítači chcete zdieľať cez sieť. Preto štandardne neposkytuje žiadne zdieľanie.
Na tom istom serveri môžete otvoriť viacero adresárov, aby ste umožnili zdieľanie v sieti s rôznymi oprávneniami a obmedzeniami.
Konfigurácia servera NFS v systéme Linux
Ak chcete zdieľať ľubovoľný adresár cez server NFS, je potrebné nakonfigurovať nastavenie súvisiace s adresárom v /etc/exports súbor. Otvorte súbor pomocou ľubovoľného textového editora podľa vášho výberu. Nezabudnite do príkazu pridať predponu sudo.
sudo vim /etc/exportov
Možno vás zaujíma, čo znamenajú možnosti mapovania, ktoré tu vidíte:
- root_squash: Autorizovaných užívateľov klienta sudo označí ako nikoho a skupinu na NFS
- no_root_squash: Zakáže drvenie koreňov
- all_squash: Na rozdiel od root_squash umožňuje, aby boli všetci používatelia mapovaní ako nikto a skupina. Vo všeobecnosti sa používa na prístup verejnosti.
- no_all_squash: Opak all_squash; táto možnosť je predvolená
Keď sa systém mimo rozsahov IP povolených v súbore /etc/exports na serveri NFS pokúsi o prístup k príslušnému zdroju, server NFS požiadavku odmietne.
Počas pripájania k vstavanému systému sa vám môžu zobraziť správy „prístup odmietnutý serverom“. Na konci sa objavia chybové hlásenia podobné tým /var/log/syslog súbor na počítači, na ktorom je spustený server NFS:
rpc.mountd[1041]: zamietnutá žiadosť o pripojenie od192.168.2.2pre /home/example/casper/target (/home/example/casper/target): bezkonkurenčný hostiteľ
Keď uvidíte nezhodnú správu protokolu hostiteľa, ako je tá vyššie, mali by ste rozbaliť sekciu IP/Netmask príslušného pravidla v súbore /etc/exports alebo použiť hviezdička (*) špeciálny znak, ak chcete udeliť prístup ku všetkým IP adresám.
Po vykonaní úprav v súbore musíte reštartovať službu NFS /etc/exports súbor:
sudo služba nfs-kernel-server reštart
Alebo, ak sa vaša distribúcia dodáva s systemctl, spustite nasledujúci príkaz:
sudosystemctlreštartnfs-server.servis
Môžete tiež dať -r parameter k exportfs príkaz, aby opätovne zdieľal adresáre, ktoré zmenili akékoľvek nastavenia týkajúce sa zdieľania:
sudo exportfs -r
Riešenie problému latencie pripojenia
Keď na svojom serveri používate protokol NFS verzie 4 a vyššej, môže dôjsť k oneskoreniu až 15 sekúnd proces pripojenia na strane klienta v tradičných operačných scenároch s predvolenými konfiguráciami NFS server. Tento problém sa môže objaviť v niektorých verziách Debianu, Fedory a Ubuntu.
Ak máte podobné oneskorenie pri montáži, môžete skontrolujte protokolové súbory na strane servera (/var/log/syslog, /var/log/messages) pre správu denníka podobnú tejto:
... RPC: Upcall upcall AUTH_GSS vypršal
Táto správa označuje, že overenie Kerberos zlyhalo a vypršal časový limit. Na bezpečnostnú autentifikáciu v sieti vo svojom prostredí pravdepodobne nebudete potrebovať protokol Kerberos. Aj keď ste v sieti nakonfigurovanej týmto spôsobom, aspoň s vašimi vstavanými systémami Linux, nebudete musieť povoliť autentifikáciu Kerberos.
Hoci boli ponúknuté alternatívy k spusteniu služby GSSD s NFS na vyriešenie problému, tieto prístupy neexistujú rovnaký dopad vo všetkých distribúciách a verziách balíkov, a preto je najracionálnejšie riešiť tento problém z koreň.
Musíte zablokovať (alebo na čiernu listinu). rpcsec_gss_krb5 modul jadra z načítania v systéme Linux, kde je spustený server NFS.
Aby sa táto možnosť prejavila pri každom reštartovaní počítača, vytvorte nový súbor volal /etc/modprobe.d/nfs-gss-blacklist.conf a pridajte k nemu nasledujúce riadky:
čierna listina rpcsec_gss_krb5
Po uložení súboru a reštartovaní systému problém s latenciou pripojenia zmizne.
Prečo používať server NFS?
NFS je jednoduché a cenovo dostupné na nastavenie. Umožňuje centralizovanú správu, ktorá znižuje požiadavky na dodatočný softvér a úložný priestor na počítači jednotlivých používateľov. Na jednom počítači môžu viacerí používatelia zdieľať rovnaké miesto na disku. Môžu umiestniť tieto disky na vrch svojho súborového systému, aby rozšírili úložný priestor.
Zdieľanie NFS umožňuje, aby sa programy, ktoré vyžadujú veľa úložného priestoru, zoskupili na jednom serveri. Výsledkom môže byť obrovská úspora miesta na disku. Zatiaľ čo predchádzajúce verzie NFS sú zraniteľné, novšie verzie zaviedli ďalšie úrovne ochrany vrátane autentifikácie Kerberos.
Existujú však aj niektoré nevýhody. Zistilo sa, že NFS sa v niektorých prípadoch spomalí počas hustej sieťovej prevádzky. Zdieľanie so systémom Windows je možné, ale môže vyžadovať niektoré aplikácie tretích strán. To ale nie je z hľadiska bezpečnosti veľmi rozumná prax. Ak konfigurácia nie je správna, môže dôjsť k neoprávnenému prístupu.
Jednoduché zdieľanie súborového systému v systéme Linux pomocou NFS
Poznanie bezpečnostných problémov a hľadanie riešení je jednou z najdôležitejších úloh správcu systému. Je potrebné poznať bezpečnostné postupy pre všetky systémy na zdieľanie súborov a nástroje na správu, nielen pre NFS.