Az NFS vagy a Network File System egy elosztott fájlrendszer-protokoll, amely lehetővé teszi könyvtárak megosztását hálózaton keresztül. Az NFS segítségével távoli könyvtárakat csatolhat a rendszerére, és úgy dolgozhat a távoli gépen található fájlokkal, mintha azok helyi fájlok lennének.
Alapértelmezés szerint az NFS protokoll nincs titkosítva, és nem nyújt felhasználói hitelesítést. A kiszolgálóhoz való hozzáférést az ügyfél IP-címei vagy gazdagépnevei korlátozzák.
Ez a cikk elmagyarázza, hogyan kell beállítani az NFSv4 kiszolgálót az Ubuntu 20 rendszeren.04. Megmutatjuk azt is, hogy hogyan lehet NFS fájlrendszert csatlakoztatni az ügyfélgépre.
Előfeltételek #
Két gépet fogunk használni, az egyik az Ubuntu 20-at futtatja.04, amely NFS-kiszolgálóként fog működni, és egy másik, amely bármely más Linux disztribúciót futtat, amelyre a megosztást csatlakoztatjuk. A szervernek és az ügyfeleknek képesnek kell lenniük arra, hogy privát hálózaton keresztül kommunikáljanak egymással. Használhatja a nyilvános IP-címeket és konfigurálhatja a kiszolgáló tűzfalát a forgalom engedélyezéséhez a porton 2049
csak megbízható forrásokból.
Az ebben a példában szereplő gépek a következő IP-kkel rendelkeznek:
NFS szerver IP: 192.168.33.10 NFS kliens IP: A 192-től.168.33.0/24 tartomány
Az NFS-kiszolgáló beállítása
Az első lépés az NFS-kiszolgáló beállítása. Telepítjük a szükséges csomagokat, létrehozzuk és exportáljuk az NFS könyvtárakat, és konfiguráljuk a tűzfalat.
Az NFS szerver telepítése #
Az NFS kiszolgálócsomag biztosítja az NFS kernelkiszolgáló futtatásához szükséges felhasználói tér támogatást. A csomag telepítéséhez futtassa:
sudo apt frissítés
sudo apt install nfs-kernel-server
A telepítés befejezése után az NFS-szolgáltatások automatikusan elindulnak.
Az Ubuntu 20-on.04, az NFS 2. verziója le van tiltva. A 3. és 4. verzió engedélyezve van. Ezt a következők futtatásával ellenőrizheti macska
parancs:
sudo cat / proc / fs / nfsd / verziók
-2 +3 +4 +4.1 +4.2
Az NFSv2 most már elég régi, és nincs miért engedélyezni.
Az NFS-kiszolgáló konfigurációját a / etc / default / nfs-kernel-server
és / etc / default / nfs-common
fájlokat. Az alapértelmezett beállítások a legtöbb helyzetben elegendőek.
A fájlrendszerek létrehozása #
Az NFSv4 szerver globális gyökérkönyvtárat használ, és az exportált könyvtárak ehhez a könyvtárhoz viszonyítva vannak. A megosztáscsatlakozási pontot összekapcsolhatja az exportálni kívánt könyvtárakkal a kötési tartók segítségével.
Ebben a példában a / srv / nfs4
könyvtár NFS gyökérként. Az NFS-tartók konfigurálásának jobb megértéséhez két könyvtárat fogunk megosztani (/ var / www
és / opt / backups
) különböző konfigurációs beállításokkal. A / var / www /
a felhasználó tulajdonában van www-adatok
, és / opt / backups
tulajdonosa gyökér
.
Először hozza létre a gyökérkönyvtárat és a megosztási csatolási pontokat:
sudo mkdir -p / srv / nfs4 / biztonsági mentések
sudo mkdir -p / srv / nfs4 / www
A könyvtárakat kösse össze a megosztási csatolási pontokkal:
sudo mount --bind / opt / backups / srv / nfs4 / backups
sudo mount --bind / var / www / srv / nfs4 / www
Ha a kötési tartókat állandóvá akarja tenni az újraindítás során, nyissa meg a / etc / fstab
fájl:
sudo nano / etc / fstab
és adja hozzá a következő sorokat:
/ etc / fstab/ opt / backups / srv / nfs4 / backups none bind 0 0 / var / www / srv / nfs4 / www none bind 0 0
A fájlrendszerek exportálása #
A következő lépés az exportálandó fájlrendszerek hozzáadása, és az ügyfelek számára engedélyezett hozzáférés ezekhez a megosztásokhoz a / etc / export
fájl.
Az exportált fájlrendszer minden sorának formája a következő:
export állomás (opciók)
Hol export
az exportált könyvtár, házigazda
egy gazdagépnév vagy IP-cím / tartomány, amely hozzáférhet az exportáláshoz, és opciók
a gazdagép opciói.
Nyissa meg a / etc / export
fájlt, és adja hozzá a következő sorokat:
sudo nano / etc / export
/ etc / export/ srv / nfs4 192.168.33.0/24 (rw, sync, no_subtree_check, crossmnt, fsid = 0) / srv / nfs4 / biztonsági mentések 192.168.33.0/24 (ro, sync, no_subtree_check) 192.168.33.3 (rw, sync, no_subtree_check) / srv / nfs4 / www 192.168.33.20 (rw, sync, no_subtree_check)
Az első sor a fsid = 0
beállítás, amelyek meghatározzák az NFS gyökérkönyvtárát (/ srv / nfs4
). Ehhez az NFS-kötethez csak a kliensek férhetnek hozzá 192.168.33.0/24
alhálózat. A crossmnt
opció szükséges az olyan könyvtárak megosztásához, amelyek egy exportált könyvtár alkönyvtárai.
A második sor megmutatja, hogyan adhat meg több exportálási szabályt egy fájlrendszerhez. Az egész olvasási hozzáférés engedélyezett 192.168.33.0/24
tartomány, és olvasási és írási hozzáférés is csak a 192.168.33.3
IP-cím. A szinkronizál
Az opció megadja az NFS-nek, hogy a válasz előtt írja be a lemezre a változásokat.
Az utolsó sor magától értetődő. További információ az összes rendelkezésre álló opcióról az ember exportál
a terminálodban.
Mentse a fájlt, és exportálja a megosztásokat:
sudo exportfs -ar
A fenti parancs minden egyes módosításakor futtatnia kell / etc / export
fájl. Ha bármilyen hiba vagy figyelmeztetés van, akkor azok megjelennek a terminálon.
A jelenlegi aktív export és állapotuk megtekintéséhez használja:
sudo exportfs -v
A kimenet tartalmazza az összes részvényt opcióikkal. Mint látható, vannak olyan opciók is, amelyeket még nem definiáltunk a / etc / export
fájl. Ezek az alapértelmezett beállítások, és ha meg akarja változtatni őket, akkor kifejezetten be kell állítania ezeket az opciókat.
/ srv / nfs4 / backups 192.168.33.3 (rw, wdelay, root_squash, no_subtree_check, sec = sys, rw, biztonságos, root_squash, no_all_squash) / srv / nfs4 / www 192.168.33.20 (rw, wdelay, root_squash, no_subtree_check, sec = sys, rw, biztonságos, root_squash, no_all_squash) / srv / nfs4 192.168.33.0/24 (rw, wdelay, crossmnt, root_squash, no_subtree_check, fsid = 0, sec = sys, rw, biztonságos, root_squash, no_all_squash) / srv / nfs4 / biztonsági mentések 192.168.33.0/24 (ro, wdelay, root_squash, no_subtree_check, sec = sys, ro, biztonságos, root_squash, no_all_squash)
Az Ubuntun, root_squash
alapértelmezés szerint engedélyezve van. Ez az egyik legfontosabb lehetőség az NFS biztonságával kapcsolatban. Megakadályozza, hogy az ügyfelektől összekapcsolt root felhasználók root jogosultságokkal rendelkezzenek a csatlakoztatott megosztásokon a root leképezésével UID
és GID
nak nek senki
/nocsoport
UID
/GID
.
Annak érdekében, hogy az ügyfélgépeken lévő felhasználók hozzáférhessenek, az NFS elvárja, hogy az ügyfél felhasználói és csoportazonosítói megegyezzenek a szerveren lévőkkel. Egy másik lehetőség az NFSv4 idmapping szolgáltatás használata, amely a felhasználói és csoport azonosítókat nevekre fordítja és fordítva.
Ez az. Ezen a ponton NFS-kiszolgálót állított be az Ubuntu-kiszolgálón. Most léphet a következő lépésre, konfigurálhatja az ügyfeleket, és csatlakozhat az NFS-kiszolgálóhoz.
Tűzfal konfigurációja
Ha egy távoli Ubuntu szerverre telepíti a Jenkins szolgáltatást, amelyet tűzfal véd, akkor engedélyeznie kell a forgalmat az NFS porton:
sudo ufw allow 192-től.168.33.0/24 bármelyik nfs portra
Ellenőrizze a változást:
sudo ufw állapot
A kimenetnek azt kell mutatnia, hogy a forgalom a porton van 2049
megengedett:
- ---------- 2049-ig MEGHATÁROZHATÓ 192.168.33.0/24 22 / tcp ALLOW Anywhere 22 / tcp (v6) ALLOW Anywhere (v6)
Az NFS-ügyfelek beállítása #
Most, hogy az NFS szerver be van állítva és a megosztások exportálva vannak, a következő lépés az ügyfelek konfigurálása és a távoli fájlrendszerek csatlakoztatása.
A Linux rendszerekre fogunk összpontosítani, de az NFS megosztást csatolhatja macOS és Windows gépekre is.
Az NFS kliens telepítése
Az ügyfélgépeken csak a távoli NFS fájlrendszer csatlakoztatásához szükséges eszközöket kell telepítenünk.
Telepítse az NFS klienst a Debianra és az Ubuntura
A csomag neve, amely programokat tartalmaz az NFS fájlrendszerek Debian-alapú terjesztésekhez történő csatlakoztatásához:
nfs-common
. Telepítéséhez futtassa:sudo apt frissítés
sudo apt install nfs-common
Telepítse az NFS klienst a CentOS-ra és a Fedora-ra
A Red Hatra és származékaira telepítse a
nfs-utils
csomag:sudo yum telepítse az nfs-utils fájlt
Fájlrendszerek csatlakoztatása #
Dolgozni fogunk az ügyfélgépen IP-vel 192.168.33.20
, amely olvasási és írási hozzáféréssel rendelkezik a / srv / nfs4 / www
fájlrendszer és írásvédett hozzáférés a / srv / nfs4 / backups
fájlrendszer.
Hozzon létre két új könyvtárat a csatlakozási pontokhoz:
sudo mkdir -p / biztonsági mentések
sudo mkdir -p / srv / www
A könyvtárakat tetszőleges helyen létrehozhatja.
Csatlakoztassa az exportált fájlrendszereket a hegy
parancs:
sudo mount -t nfs -o vers = 4 192.168.33.10: / biztonsági mentések / biztonsági mentések
sudo mount -t nfs -o vers = 4 192.168.33.10: / www / srv / www
Hol 192.168.33.10
az NFS szerver IP-je. Az IP-cím helyett használhatja a hosztnevet is, de azt az ügyfélgépnek meg kell oldania. Ez általában úgy történik, hogy a gazdagép nevét hozzárendeli az IP-hez a / etc / hosts
fájl.
NFSv4 fájlrendszer csatlakoztatásakor hagyja ki az NFS gyökérkönyvtárát. Használat / biztonsági mentések
, ahelyett / srv / nfs4 / backups
.
A mount vagy a gombbal ellenőrizze, hogy a távoli fájlrendszereket sikeresen csatlakoztatták-e df
parancs:
df -h
A parancs kinyomtatja az összes csatlakoztatott fájlrendszert. Az utolsó két sor a kapcsolt részvény:
Használt fájlrendszer méret Elérhető Használat% udev 951M 0 951M 0% / dev tmpfs-re szerelve 199M 676K 199M 1% / run / dev / sda3 124G 2.8G 115G 3% / tmpfs 994M 0 994M 0% / dev / shm tmpfs 5.0M 0 5.0M 0% / run / lock tmpfs 994M 0 994M 0% / sys / fs / cgroup / dev / sda1 456M 197M 226M 47% / boot tmpfs 199M 0 199M 0% / run / user / 1000 192.168.33.10: / biztonsági mentések 124G 2.8G 115G 3% / biztonsági másolatok 192.168.33.10: / www 124G 2.8G 115G 3% / srv / www
Ha a tartókat újraindításkor állandóvá akarja tenni, nyissa meg a / etc / fstab
fájlt, és adja hozzá a következő sorokat:
sudo nano / etc / fstab
/ etc / fstab192.168.33.10: / backups / backups nfs alapértelmezett értékek, timeo = 900, retrans = 5, _netdev 0 0 192.168.33.10: / www / srv / www nfs alapértelmezett értékek, timeo = 900, retrans = 5, _netdev 0 0
Az NFS fájlrendszer telepítésekor elérhető opciókról írja be a következőt: ember nfs
a terminálodban.
A távoli fájlrendszerek csatlakoztatásának másik lehetősége a autofok
eszköz vagy egy systemd egység létrehozásához.
Az NFS hozzáférés tesztelése
Teszteljük a megosztásokhoz való hozzáférést úgy, hogy mindegyiken létrehozunk egy új fájlt.
Először próbáljon létrehozni egy tesztfájlt a / biztonsági mentések
könyvtár segítségével érintés
parancs:
sudo touch / backups / test.txt
A /biztonsági mentés
a fájlrendszert csak olvasható formában exportálják, és a várakozásoknak megfelelően a Hozzáférés megtagadva
hiba üzenet:
touch: nem érintheti meg a '/ backups / test' elemet: Az engedély megtagadva
Ezután próbáljon meg létrehozni egy tesztfájlt a / srv / www
könyvtárat gyökérként a sudo
parancs:
sudo touch / srv / www / test.txt
Ismét meglátod Hozzáférés megtagadva
üzenet.
touch: nem lehet megérinteni a '/ srv / www' szót: Az engedély megtagadva
Ha felidézi, a / var / www
könyvtár a www-adatok
felhasználó, és ennek a megosztásnak van root_squash
opció, amely a gyökér felhasználót a senki
felhasználó és nocsoport
csoport, amely nem rendelkezik írási engedéllyel a távoli megosztásra.
Feltéve, hogy van egy www-adatok
használni az ügyfélgépen ugyanazokkal UID
és GID
mint a távoli kiszolgálón (ennek akkor kell lennie, ha például mindkét gépre telepítette az nginx szoftvert), megpróbálhat felhasználói fájlként létrehozni egy fájlt www-adatok
:
sudo -u www-data touch / srv / www / test.txt
A parancs nem jelenít meg kimenetet, ami azt jelenti, hogy a fájl sikeresen elkészült.
Ennek ellenőrzéséhez sorolja fel a fájlokat a / srv / www
Könyvtár:
ls -la / srv / www
A kimenetnek az újonnan létrehozott fájlt kell mutatnia:
drwxr-xr-x 3 www-data www-data 4096 április 10, 22:18 . drwxr-xr-x 3 gyökérgyökér 4096 április 10. 22: 29… -rw-r - r-- 1 www-data www-data 0. április 10. 21:58 index.html -rw-r - r-- 1 www-data www-data 0 április 10. 22:18 teszt.txt
Az NFS fájlrendszer leválasztása #
Ha a távoli NFS megosztásra már nincs szükség, leválaszthatja azt, mint bármely más csatlakoztatott fájlrendszert a umount
parancs.
Például a /biztonsági mentés
megosztani, akkor futna:
sudo umount / backups
Ha a csatlakozási pontot a / etc / fstab
fájlt, győződjön meg róla, hogy eltávolította a sort, vagy hozzáadásával megjegyezte #
a sor elején.
Következtetés
Megmutattuk, hogyan kell beállítani egy NFS-kiszolgálót, és hogyan kell csatlakoztatni a távoli fájlrendszereket az ügyfélgépekre. Ha az NFS-t implementálja a termelésbe, és ésszerű adatokat oszt meg, akkor célszerű engedélyezni a kerberos hitelesítést.
Az NFS alternatívájaként használhatja az SSHFS-t távoli könyvtárak SSH-kapcsolaton keresztül történő csatlakoztatásához. Az SSHFS alapértelmezés szerint titkosított, és sokkal könnyebben konfigurálható és használható.
Ha kérdése van, nyugodtan írjon megjegyzést.