NFS arba „Network File System“ yra paskirstytos failų sistemos protokolas, leidžiantis bendrinti katalogus tinkle. Naudodami NFS galite savo sistemoje prijungti nuotolinius katalogus ir dirbti su nuotolinio kompiuterio failais taip, lyg jie būtų vietiniai failai.
Pagal numatytuosius nustatymus NFS protokolas nėra užšifruotas ir nesuteikia vartotojo autentifikavimo. Prieigą prie serverio riboja kliento IP adresai arba pagrindinio kompiuterio vardai.
Šiame straipsnyje paaiškinta, kaip nustatyti NFSv4 serverį „Ubuntu 20“.04. Mes taip pat parodysime, kaip kliento kompiuteryje įdiegti NFS failų sistemą.
Būtinos sąlygos #
Mes naudosime dvi mašinas, vienoje veikiančią „Ubuntu 20“.04, kuris veiks kaip NFS serveris, ir dar vienas, kuriame veikia bet kuris kitas „Linux“ paskirstymas, kuriame mes prijungsime dalį. Serveris ir klientai turėtų galėti bendrauti tarpusavyje privačiu tinklu. Galite naudoti viešuosius IP adresus ir sukonfigūruoti serverio užkardą, kad leistumėte srautą uoste 2049 m
tik iš patikimų šaltinių.
Šiame pavyzdyje esančiose mašinose yra šie IP:
NFS serverio IP: 192.168.33.10 NFS klientų IP: nuo 192.168.33.0/24 diapazonas
NFS serverio nustatymas #
Pirmasis žingsnis yra NFS serverio nustatymas. Įdiegsime reikiamus paketus, sukursime ir eksportuosime NFS katalogus bei sukonfigūruosime užkardą.
NFS serverio diegimas #
NFS serverio paketas teikia vartotojo erdvės palaikymą, reikalingą paleisti NFS branduolio serverį. Norėdami įdiegti paketą, paleiskite:
sudo apt atnaujinimas
sudo apt įdiekite nfs-kernel-server
Baigus diegimą, NFS paslaugos bus paleistos automatiškai.
„Ubuntu 20“.04, NFS 2 versija išjungta. 3 ir 4 versijos įgalintos. Tai galite patikrinti atlikdami toliau nurodytus veiksmus katė
komanda:
sudo katė / proc / fs / nfsd / versijos
-2 +3 +4 +4.1 +4.2
NFSv2 dabar yra gana senas ir nėra jokios priežasties jį įgalinti.
NFS serverio konfigūracija yra apibrėžta / etc / default / nfs-kernel-server
ir / etc / default / nfs-common
failus. Daugumoje situacijų pakanka numatytųjų nustatymų.
Failų sistemų kūrimas #
NFSv4 serveris naudoja visuotinį šakninį katalogą, o eksportuoti katalogai yra palyginti su šiuo katalogu. Galite susieti bendrinimo prijungimo tašką su katalogais, kuriuos norite eksportuoti, naudodami susiejimo laikiklius.
Šiame pavyzdyje nustatysime / srv / nfs4
katalogą kaip NFS šaknį. Norėdami geriau paaiškinti, kaip galima sukonfigūruoti NFS laikiklius, pasidalinsime dviem katalogais (/ var / www
ir / opt / backups
) su skirtingais konfigūracijos nustatymais. The / var / www /
priklauso vartotojui www duomenys
, ir / opt / backups
priklauso šaknis
.
Pirmiausia sukurkite šakninį katalogą ir bendrinimo prijungimo taškus:
sudo mkdir -p / srv / nfs4 / atsarginės kopijos
sudo mkdir -p / srv / nfs4 / www
Pritvirtinkite katalogus prie bendro prijungimo taškų:
sudo mount --bind / opt / backups / srv / nfs4 / backups
sudo mount --bind / var / www / srv / nfs4 / www
Norėdami, kad perrišimo įtaisai būtų nuolatiniai, atidarykite / etc / fstab
failas:
sudo nano / etc / fstab
ir pridėkite šias eilutes:
/ etc / fstab/ opt / backups / srv / nfs4 / backups none bind 0 0 / var / www / srv / nfs4 / www none bind 0 0
Failų sistemų eksportavimas #
Kitas žingsnis - pridėti failų sistemas, kurios bus eksportuojamos, ir klientams leisti prieiti prie tų bendrinimų prie / etc / eksportas
failą.
Kiekviena eksportuojamos failų sistemos eilutė turi šią formą:
eksportuoti pagrindinį kompiuterį (parinktys)
Kur eksportas
yra eksportuojamas katalogas, vedėjas
yra pagrindinio kompiuterio vardas arba IP adresas / diapazonas, galintis pasiekti eksportą, ir galimybės
yra priimančiosios parinktys.
Atidaryk / etc / eksportas
failą ir pridėkite šias eilutes:
sudo nano / etc / export
/ etc / eksportas/ srv / nfs4 192.168.33.0/24 (rw, sync, no_subtree_check, crossmnt, fsid = 0) / srv / nfs4 / atsarginės kopijos 192.168.33.0/24 (ro, sinchronizuoti, no_subtree_check) 192.168.33.3 (rw, sync, no_subtree_check) / srv / nfs4 / www 192.168.33.20 (rw, sync, no_subtree_check)
Pirmoje eilutėje yra fsid = 0
parinktis, apibrėžianti NFS šakninį katalogą (/ srv / nfs4
). Prieiga prie šio NFS tomo leidžiama tik klientams iš 192.168.33.0/24
potinklis. The crossmnt
Ši parinktis reikalinga norint bendrinti katalogus, kurie yra eksportuoto katalogo pakatalogiai.
Antroje eilutėje rodoma, kaip nurodyti kelias eksportavimo taisykles vienai failų sistemai. Skaitymo prieiga leidžiama visumai 192.168.33.0/24
diapazoną, ir skaitymo, ir rašymo prieigą tik prie 192.168.33.3
IP adresas. The sinchronizuoti
Parinktis nurodo NFS prieš atsakymą įrašyti pakeitimus į diską.
Paskutinė eilutė yra savaime suprantama. Norėdami gauti daugiau informacijos apie visus galimus parinkčių tipus žmogus eksportuoja
savo terminale.
Išsaugokite failą ir eksportuokite bendrinimus:
sudo exportfs -ar
Kiekvieną kartą modifikuodami turite paleisti aukščiau esančią komandą / etc / eksportas
failą. Jei yra kokių nors klaidų ar įspėjimų, jie bus rodomi terminale.
Norėdami peržiūrėti dabartinį aktyvų eksportą ir jo būseną, naudokite:
sudo exportfs -v
Į produkciją bus įtrauktos visos akcijos su jų pasirinkimo sandoriais. Kaip matote, yra ir variantų, kurių mes neapibrėžėme / etc / eksportas
failą. Tai yra numatytosios parinktys, ir jei norite jas pakeisti, turėsite aiškiai nustatyti šias parinktis.
/ srv / nfs4 / atsarginės kopijos 192.168.33.3 (rw, wdelay, root_squash, no_subtree_check, sec = sys, rw, saugus, root_squash, no_all_squash) / srv / nfs4 / www 192.168.33.20 (rw, wdelay, root_squash, no_subtree_check, sec = sys, rw, saugus, 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, secure, root_squash, no_all_squash) / srv / nfs4 / atsarginės kopijos 192.168.33.0/24 (ro, wdelay, root_squash, no_subtree_check, sec = sys, ro, saugus, root_squash, no_all_squash)
„Ubuntu“, šaknies_skvošas
yra įjungta pagal numatytuosius nustatymus. Tai yra viena iš svarbiausių NFS saugumo galimybių. Tai neleidžia šakniniams vartotojams, prisijungusiems iš klientų, turėti prieigos teises prie prijungtų bendrinimų, susiejant šaknį UID
ir GID
į niekas
/nogroup
UID
/GID
.
Norint, kad kliento mašinų vartotojai turėtų prieigą, NFS tikisi, kad kliento vartotojo ir grupės ID sutaps su serveryje esančiais. Kita galimybė yra naudoti „NFSv4“ atvaizdavimo funkciją, kuri vartotojo ir grupės ID paverčia vardais ir atvirkščiai.
Viskas. Šiuo metu jūs sukūrėte NFS serverį savo „Ubuntu“ serveryje. Dabar galite pereiti prie kito veiksmo, sukonfigūruoti klientus ir prisijungti prie NFS serverio.
Ugniasienės konfigūracija #
Jei diegiate „Jenkins“ nuotoliniame „Ubuntu“ serveryje, kurį saugo užkarda, turėsite įjungti srautą NFS prievade:
sudo ufw leisti nuo 192.168.33.0/24 į bet kurį uosto nfs
Patikrinkite pakeitimą:
sudo ufw būsena
Išvestis turėtų parodyti, kad eismas uoste 2049 m
leidziama:
Į veiksmą nuo - ------ ---- 2049 LEISTI 192.168.33.0/24 22 / tcp LEISTI bet kur 22 / tcp (v6) LEISTI bet kur (v6)
NFS klientų nustatymas #
Dabar, kai NFS serveris yra nustatytas ir eksportuojami bendri failai, kitas žingsnis yra konfigūruoti klientus ir prijungti nuotolines failų sistemas.
Didžiausią dėmesį skirsime „Linux“ sistemoms, tačiau NFS dalį taip pat galite pritaikyti „MacOS“ ir „Windows“ mašinose.
NFS kliento diegimas #
Kliento mašinose turime įdiegti tik įrankius, reikalingus nuotolinei NFS failų sistemai prijungti.
Įdiekite NFS klientą „Debian“ ir „Ubuntu“
Paketo, kuriame yra programos, skirtos NFS failų sistemoms montuoti Debian pagrindu veikiančiuose paskirstymuose, pavadinimas yra
nfs-common
. Norėdami jį įdiegti, paleiskite:sudo apt atnaujinimas
sudo apt įdiegti nfs-common
Įdiekite NFS klientą „CentOS“ ir „Fedora“
Ant „Red Hat“ ir jos darinių įdiekite
nfs-utils
paketas:sudo yum įdiekite „nfs-utils“
Failų sistemų montavimas #
Dirbsime kliento mašinoje su IP 192.168.33.20
, kuri turi skaitymo ir rašymo prieigą prie / srv / nfs4 / www
failų sistema ir tik skaitymo prieiga prie / srv / nfs4 / atsarginės kopijos
Failų sistema.
Sukurkite du naujus prijungimo taškų katalogus:
sudo mkdir -p / atsargines kopijas
sudo mkdir -p / srv / www
Katalogus galite sukurti bet kurioje norimoje vietoje.
Sumontuokite eksportuotas failų sistemas naudodami kalno
komanda:
sudo kalnas -t nfs -o vers = 4 192.168.33.10: / atsarginės kopijos / atsarginės kopijos
sudo kalnas -t nfs -o vers = 4 192.168.33.10: / www / srv / www
Kur 192.168.33.10
yra NFS serverio IP. Vietoje IP adreso taip pat galite naudoti pagrindinio kompiuterio pavadinimą, tačiau jį turi išspręsti kliento mašina. Tai paprastai daroma priskyrus pagrindinio kompiuterio pavadinimą IP / etc / hosts
failą.
Montuodami NFSv4 failų sistemą, praleiskite NFS šakninį katalogą. Naudokite / atsarginės kopijos
, vietoj / srv / nfs4 / atsarginės kopijos
.
Patikrinkite, ar nuotolinių failų sistemos sėkmingai įdiegtos, naudodami „mount“ arba df
komanda:
df -h
Komanda atspausdins visas prijungtas failų sistemas. Paskutinės dvi eilutės yra sumontuotos akcijos:
Naudotas failų sistemos dydis Galimybė Naudoti% Sumontuota udev 951M 0 951M 0% / dev tmpfs 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: / atsarginės kopijos 124G 2.8G 115G 3% / atsarginės kopijos 192.168.33.10: / www 124G 2.8G 115G 3% / srv / www
Norėdami, kad laikikliai būtų nuolatiniai perkraunant, atidarykite / etc / fstab
failą ir pridėkite šias eilutes:
sudo nano / etc / fstab
/ etc / fstab192.168.33.10: / atsarginės kopijos / atsarginės kopijos NFS numatytieji, timeo = 900, retrans = 5, _netdev 0 0 192.168.33.10: / www / srv / www nfs numatytieji nustatymai, timeo = 900, retrans = 5, _netdev 0 0
Norėdami gauti informacijos apie galimas parinktis diegiant NFS failų sistemą, įveskite vyras nfs
savo terminale.
Kita nuotolinių failų sistemų prijungimo galimybė yra naudoti autofai
įrankį arba sukurti „systemd“ vienetą.
NFS prieigos testavimas #
Išbandykime prieigą prie bendrinimų sukurdami naują failą kiekviename iš jų.
Pirmiausia pabandykite sukurti bandomąjį failą / atsarginės kopijos
katalogą naudodami paliesti
komanda:
sudo touch / atsarginės kopijos / testas.txt
The / atsarginė kopija
failų sistema yra eksportuojama kaip tik skaitoma ir, kaip tikėtasi, pamatysite Leidimas nesuteiktas
klaidos pranešimas:
liesti: negalima paliesti „/ backups / test“: leidimas atmestas
Tada pabandykite sukurti bandomąjį failą / srv / www
katalogą kaip šaknį naudojant sudo
komanda:
sudo touch / srv / www / test.txt
Vėl pamatysite Leidimas nesuteiktas
pranešimą.
liesti: negalima liesti '/ srv / www': leidimas atmestas
Jei prisiminsite, / var / www
katalogas priklauso www duomenys
vartotojas ir ši dalis turi šaknies_skvošas
Parinktis, nustatanti šakninį vartotoją niekas
vartotojas ir nogroup
grupė, neturinti rašymo teisių į nuotolinį bendrinimą.
Darant prielaidą, kad turite a www duomenys
naudoti kliento mašinoje su tuo pačiu UID
ir GID
kaip ir nuotoliniame serveryje (taip turėtų būti, jei, pavyzdžiui, abiejose mašinose įdiegėte „nginx“), galite pabandyti sukurti failą kaip vartotoją www duomenys
:
sudo -u www-data touch / srv / www / test.txt
Komanda nerodys išvesties, o tai reiškia, kad failas buvo sėkmingai sukurtas.
Norėdami jį patikrinti, nurodykite failus / srv / www
katalogas:
ls -la / srv / www
Išvestyje turėtų būti rodomas naujai sukurtas failas:
drwxr-xr-x 3 www-data www-data 4096 balandžio 10 d. 22:18 . drwxr-xr-x 3 šaknies šaknis 4096 balandžio 10 22: 29… -rw-r - r-- 1 www-data www-data 0 balandžio 10 21:58 rodyklė.html -rw-r - r-- 1 www-data www-data 0 balandžio 10 22:18 testas.txt
NFS failų sistemos atjungimas #
Jei nuotolinio NFS bendro naudojimo nebereikia, galite jį atjungti kaip bet kurią kitą prijungtą failų sistemą naudodami umount
komandą.
Pavyzdžiui, norint atjungti / atsarginė kopija
dalintis, jūs paleistumėte:
sudo umount / atsarginės kopijos
Jei tvirtinimo taškas yra apibrėžtas / etc / fstab
failą, įsitikinkite, kad pašalinote eilutę arba komentavote ją pridėdami #
eilutės pradžioje.
Išvada Nr
Mes parodėme, kaip nustatyti NFS serverį ir kaip prijungti nuotolines failų sistemas kliento mašinose. Jei diegiate NFS gamyboje ir dalijatės protingais duomenimis, verta įgalinti „kerberos“ autentifikavimą.
Kaip alternatyvą NFS galite naudoti SSHFS nuotoliniams katalogams prijungti per SSH ryšį. SSHFS yra užšifruotas pagal numatytuosius nustatymus, jį daug lengviau konfigūruoti ir naudoti.
Jei turite klausimų, nedvejodami palikite komentarą.