A Sun Microsystems NFS (Network File System) egy RPC-alapú elosztott fájlrendszer-struktúra, amely lehetővé teszi a hálózati eszközök számára, hogy a hálózaton keresztül NFS-t futtató kiszolgálókat helyi meghajtóként használják.
Íme egy lépésről lépésre szóló útmutató az NFS-kiszolgáló beállításához és konfigurálásához Linuxos gépeken.
Mi az a hálózati fájlrendszer?
Az NFS fájlrendszer négy protokollal rendelkezik. Amikor a szerver készen áll, értesíti a portmap-et (a protokollt portszámokká alakító szervert) a használni kívánt portról, és megadja a vezérelt RPC program számát.
Ha beágyazott Linux rendszert használ, nagyon kényelmes az eszköz elindítása NFS fájlmegosztáson keresztül a hálózaton keresztül ahelyett, hogy közvetlenül a tárolóeszközről indítaná el (NAND flash, eMMC, MMC, stb.).
Bár ritkább, érdemes lehet NFS-megosztást csatlakoztatni és fájlmegosztásokat végrehajtani a rendszerindítás után, még akkor is, ha nem közvetlenül az NFS-megosztásról indítja el a rendszert. Ahhoz, hogy mindkét forgatókönyv működjön, először telepítenie kell egy NFS-kiszolgálót arra a számítógépre, amelyen fejleszt.
Hogyan telepítsünk NFS-t Linuxra
Ha Ön a Debian alapú rendszer mint például az Ubuntu vagy a Linux Mint, telepítenie kell a nfs-kernel-server csomag az alábbiak szerint:
sudo apt telepítés nfs-kernel-szerver
Arch Linuxon:
sudo pacman -S nfs-utils
Fedora, CentOS és RHEL rendszeren:
sudo dnf -y telepítés nfs-utils
A folyamat végén az NFS-kiszolgáló automatikusan elindul. Azonban ezen a ponton még nem tudja, hogy számítógépe mely könyvtárait szeretné megosztani a hálózaton keresztül. Ezért alapértelmezés szerint nem biztosít megosztást.
Ugyanazon a kiszolgálón több könyvtárat is megnyithat, hogy lehetővé tegye a hálózati megosztást különböző jogosultságokkal és korlátozásokkal.
Az NFS-kiszolgáló konfigurálása Linux rendszeren
Bármely címtár megosztásához az NFS-kiszolgálón, be kell állítani egy címtárral kapcsolatos beállítást a /etc/exports fájlt. Nyissa meg a fájlt tetszőleges szövegszerkesztővel. Ügyeljen arra, hogy hozzáadja a sudo előtagot a parancshoz.
sudo vim /etc/export
Kíváncsi lehet, mit jelentenek az itt látható leképezési lehetőségek:
- root_squash: A sudo jogosult kliensfelhasználókat senki felhasználóként és csoportként jelöli meg az NFS-en
- no_root_squash: Letiltja a gyökérösszenyomódást
- all_squash: A root_squash-tól eltérően lehetővé teszi, hogy az összes felhasználót senki felhasználóként és csoportként lehessen leképezni. Általában nyilvános hozzáférésre használják.
- no_all_squash: Az all_squash ellentéte; ez az opció az alapértelmezett
Amikor az NFS-kiszolgálón az /etc/exports fájlban engedélyezett IP-tartományokon kívül eső rendszer megpróbál hozzáférni a megfelelő erőforráshoz, az NFS-kiszolgáló elutasítja a kérést.
A beágyazott rendszerre való csatlakoztatás során előfordulhat, hogy "szerver megtagadta a hozzáférést" üzenetet kaphat. Az alábbiakhoz hasonló hibaüzenetek jelennek meg a végén /var/log/syslog fájl azon a számítógépen, amelyen az NFS-kiszolgáló fut:
rpc.mountd[1041]: visszautasította a csatolási kérelmet tól től192.168.2.2számára /home/example/casper/target (/home/példa/casper/cél): páratlan gazdagép
Ha a fentihez hasonló páratlan gazdagép naplóüzenetet lát, bontsa ki a megfelelő szabály IP/hálózati maszk részét az /etc/exports fájlban, vagy használja a csillag (*) speciális karakter, ha hozzáférést szeretne biztosítani az összes IP-címhez.
A módosítások elvégzése után újra kell indítania az NFS szolgáltatást /etc/exports fájl:
sudo szolgáltatás nfs-kernel-server újraindítás
Vagy ha a disztribúció a systemctl-lel érkezik, futtassa a következő parancsot:
sudosystemctlújrakezdnfs-szerver.szolgáltatás
Azt is megadhatod a -r paramétert a exportfs parancsot, így újra megosztja azokat a könyvtárakat, amelyek megváltoztatták a megosztással kapcsolatos beállításokat:
sudo exportfs -r
A rögzítési késleltetési probléma megoldása
Ha az NFS protokoll 4-es vagy újabb verzióját használja a szerveren, akár 15 másodperces késések is előfordulhatnak a kliensoldali beillesztési folyamat hagyományos működési forgatókönyvekben az NFS alapértelmezett konfigurációival szerver. Ez a probléma a Debian, Fedora és Ubuntu egyes verzióiban jelentkezhet.
Ha hasonló mount késést tapasztal, megteheti ellenőrizze a szerveroldali naplófájlokat (/var/log/syslog, /var/log/messages) a következőhöz hasonló naplóüzenethez:
... RPC: AUTH_GSS felhívás időtúllépést ért el
Ez az üzenet azt jelzi, hogy a Kerberos hitelesítés meghiúsult, és időtúllépés történt. Valószínűleg nem lesz szüksége a Kerberos protokollra a hálózati biztonsági hitelesítéshez a környezetében. Még akkor sem kell engedélyeznie a Kerberos hitelesítést, ha egy ilyen módon konfigurált hálózaton van, legalábbis a beágyazott Linux rendszerekkel.
Bár a probléma megoldására kínáltak alternatívákat a GSSD szolgáltatás NFS-sel történő futtatására, ezek a megközelítések nem ugyanaz a hatás minden disztribúcióra és csomagverzióra, ezért a legracionálisabb ezt a problémát a gyökér.
Le kell tiltania (vagy feketelistára kell helyeznie) a rpcsec_gss_krb5 kernel modul betöltése a Linux rendszeren, ahol az NFS-kiszolgáló fut.
Ha azt szeretné, hogy ez a beállítás minden alkalommal érvénybe lépjen, amikor újraindítja a számítógépet, hozzon létre egy új fájlt hívott /etc/modprobe.d/nfs-gss-blacklist.conf és add hozzá a következő sorokat:
feketelista rpcsec_gss_krb5
A fájl mentése és a rendszer újraindítása után a beillesztési késleltetési probléma megszűnik.
Miért érdemes NFS szervert használni?
Az NFS beállítása egyszerű és megfizethető. Lehetővé teszi a központosított felügyeletet, ami csökkenti a további szoftverek és tárhely igényét az egyes felhasználók számítógépén. Egyetlen gépen több felhasználó is megoszthatja ugyanazt a lemezterületet. Ezeket a lemezeket a fájlrendszerük tetejére helyezhetik a tárterület növelése érdekében.
Az NFS-megosztás lehetővé teszi a nagy tárhelyet igénylő programok egyetlen kiszolgálón történő csoportosítását. Ez hatalmas lemezterület-megtakarítást eredményezhet. Míg a korábbi NFS-verziók sebezhetőek, az újabb verziók további védelmi szinteket vezettek be, beleértve a Kerberos hitelesítést.
Van azonban néhány hátránya is. Az NFS bizonyos esetekben lelassul a nagy hálózati forgalom során. A Windows rendszerrel való megosztás lehetséges, de szükség lehet néhány harmadik féltől származó alkalmazásra. De ez biztonsági szempontból nem túl ésszerű gyakorlat. Ha a konfiguráció nem megfelelő, illetéktelen hozzáférés léphet fel.
Könnyű fájlrendszer-megosztás Linuxon NFS használatával
A biztonsági problémák ismerete és megoldások keresése a rendszergazdák egyik legkritikusabb feladata. Ismerni kell az összes fájlmegosztó rendszer és kezelőeszköz biztonsági eljárásait, nem csak az NFS-t.