NFS és SMB: 2 Hálózati fájlmegosztás Protokoll Linuxon

A Linuxban néhány fájlmegosztási protokoll használatos a tárolók és fájlok megosztására hálózaton keresztül. A legelterjedtebbek közé tartoznak az NFS és SMB

NFS és SMB Fájlmegosztás

A Samba egy népszerű nyílt forráskódú alkalmazáscsomag, amely kliens-szerver architektúrában működik. Keresztplatformos kompatibilitást kínál, lehetővé téve a fájlok zökkenőmentes megosztását a Linux, Windows és macOS operációs rendszereken. Egy Linux rendszeren hostolt fájlmegosztás hozzáférhető különböző platformokról, ezzel elősegítve a együttműködést.

Egy másik gyakran használt fájlmegosztási protokoll az NFS, amely a Network File System rövidítése. Mint a Samba, ez is kliens-szerver modellen működik, és lehetővé teszi a felhasználók számára, hogy könyvtárakat és fájlokat osszanak meg hálózaton keresztül több távoli kliens felhasználóval.

NFS és SMB, Melyiket válasszam?

Az NFS (Network File System) és az SMB (Server Message Block) két különböző protokoll, amelyek fájlmegosztást tesznek lehetővé különböző operációs rendszerek között. Mindkét protokollnak vannak előnyei és hátrányai, és a megfelelő választás attól függ, hogy milyen környezetben és milyen igényekkel használod őket. Nézzük meg közelebbről mindkét protokoll jellemzőit:

NFS (Network File System):

  • Unix/Linux-környezetekhez optimalizált: Az NFS eredetileg Unix és Linux rendszerek közötti fájlmegosztást szolgálta.
  • Egyszerű beállítás: Az NFS könnyen konfigurálható és telepíthető Unix/Linux rendszereken.
  • Nagyfokú teljesítmény: Az NFS jól skálázódik és hatékonyan kezeli a nagy mennyiségű fájlt és a nagy fájlméreteket.
  • Egyszerű hozzáférési jogok kezelése: Az NFS egyszerűen kezeli a hozzáférési jogokat Unix/Linux rendszerekben.

SMB (Server Message Block):

  • Windows-környezetekhez optimalizált: Az SMB elsősorban a Windows rendszerek közötti fájlmegosztást szolgálja, de támogatja más operációs rendszereket is.
  • Könnyen kezelhető felhasználói jogok: Az SMB kifinomult felhasználói jogkezeléssel rendelkezik, lehetővé téve a fájlok és mappák részletes hozzáférési jogainak beállítását.
  • Széles körű támogatottság: Az SMB támogatja a Windows, Linux, macOS és egyéb operációs rendszereket, így sokoldalúbb, mint az NFS.
  • Támogatja az encryptált kommunikációt: Az SMB lehetővé teszi az adatok titkosítását a hálózaton, ami biztonságosabbá teszi a fájlmegosztást.

Végül is, a választás az adott környezet és igények függvénye. Ha főként Unix/Linux rendszerekkel dolgozol, az NFS lehet az optimális választás. Ha viszont vegyes környezetben dolgozol, vagy Windows-környezetben, az SMB lehet a megfelelő választás, különösen ha fontos a részletes jogosultságkezelés és a titkosított adatkommunikáció.

NFS és SMB összehasonlítása

NFS konfigurálása

Az NFS fájlkiszolgálóhoz szükségünk van elsősorban egy szerver oldalra, mely a fájlcserét fogja lehetővé tenni, melyre telepíteni kell az NFS-szolgáltatásokat. javasolt először frissíteni a rendszert, majd az rpcbind és az nfs-utils csomagokat telepíteni. A csomagok elnevezései disztribuciónként eltérőek lehetnek.

Miután a frissítés befejeződött, folytassa és telepítse a szükséges NFS-szolgáltatásokat.

Redhat/Fedora alatt:

$ sudo dnf install rpcbind nfs-utils -y

Arch alapú rendszerek alatt:

$ sudo pacman -S rpcbind nfs-utils

Debian alapú rendszerek alatt:

$ sudo apt install nfs-kernel-server

A következő lépés az NFS-szolgáltatások engedélyezése, ahogyan az alábbiakban látható:

$ sudo systemctl enable --now nfs-server rpcbind

Lényeges, hogy ellenőrizd, hogy az összes NFS-szolgáltatás fut-e.

$ sudo systemctl status nfs-server rpcbind

Győződj meg arról is, hogy a megfelelő biztonság és a zavartalan forgalom érdekében beállítottad-e a tűzfalat.

$ sudo firewall-cmd --permanent --add-service={nfs,rpc-bind,mountd}
$ sudo firewall-cmd --reload

NFS Megosztás Könyvtár Létrehozása

Miután az NFS-szolgáltatások telepítve lettek és elindításra kerültek, itt az ideje létrehozni az NFS megosztási könyvtárat, amely a hálózaton keresztül az NFS kliensek által elérhető fájlokat fogja tartalmazni.

Ebben az esetben létre fogunk hozni egy NFS megosztási könyvtárat, amelyet NFSshare néven fogunk elhelyezni a saját könyvtárunkban.

$ mkdir -p /könyvtár/útvonal

Ezután rendelj hozzá a könyvtárhoz engedélyeket. Demonstrációs célokra globális engedélyeket rendelek hozzá, amelyek lehetővé teszik az NFS klienseknek a fájlok olvasását, írását és végrehajtását, és igazából ha otthon kell csak másolgatni gép és gép között ez elegendő is, azonban éles használatban például ha érzékeny adatokat szeretnél a hálózaton cserélni, javasolt más jogosultsági beállításokat alkalmazni.

A jogosultsági szintek beállításával kapcsolatos leírást az alábbi linken találsz, de röviden a Linux Rendszermag (Kernel) című videómban is beszéltem róla.

A szigorúbb hozzáférési szabályok beállításhoz javasolt az ACL azaz Access Control List használata, mely a legtöbb disztribucióban csomagként elérhető.

Az ACL lehetőséget biztosít a finomhangolt hozzáférés-szabályozáshoz, részletesebb jogosultságkezelést tesz lehetővé, és lehetővé teszik a fájlok és könyvtárak hozzáférési jogainak részletes nyomon követését, ami segíthet a hibakeresésben és a biztonsági incidensek auditálásában.

$ sudo chmod 777 -R /könyvtár/útvonal

NFS Megosztás Könyvtár Exportálása

A következő lépés az NFS megosztási könyvtár exportálása. Ennek érdekében bejegyzést kell tennünk az /etc/exports fájlban. Ennek megvalósításához nyisd meg a fájlt a választott szövegszerkesztővel. Ebben az esetben a Vim szerkesztőt fogjuk használni.

$ sudo nano /etc/exports

Adjuk hozzá az alábbi bejegyzést. Győződjön meg róla, hogy a server-ip helyére az NFS szerver IP-címét írja be.

/home/username/szerverip/24(rw,no_root_squash)

Végül exportáld az NFS megosztási könyvtárat vagy fájlrendszert.

$ sudo exportfs -rv

Futtassd a következő parancsot az NFS megosztások megtekintéséhez.

$ showmount -e localhost

NFS Kliens Beállítása

Ahogyan szerverre, kliensekre is szükség van, melyet a szerverünk ki fog majd szolgálni. Először is, győződj meg róla, hogy az NFS szervered látható-e a másik munkaállomás számára

Abban az esetben ha nem jelenik meg a listában semmi, javasolt ellenőrizni a routered portbeállításait.

$ showmount -e ipcím

A következő lépés az NFS megosztás csatolása, a szerverről a kliensre. Ehhez először létre kell hoznod egy mount könyvtárat egy tetszőleges helyen, tetszőleges névvel, melyet én a gyökérkönyvtáron belül az srv könyvtár alatt fogok elhelyezni. A könyvtárat természetesen az mkdir paranccsal tudod létrehozni. Ha az srv-t használod te is, ott kell a sudo is.

$ mkdir könyvtárnév

Ezután mountoljuk az NFS megosztást a root home könyvtárban létrehozott mount könyvtárba.

$ sudo mount -t nfs szerverip:/szerver/könyvtár/útvonal  /kliens/könyvtár/útvonal 

Az NFS megosztás véglegesítéséhez szerkesszd az /etc/fstab fájlt.

$ nano /etc/fstab

Majd add hozzá az alábbi bejegyzést.

szerverip:/szerver/könyvtár/útvonal /kliens/könyvtár/útvonal nfs nofail,x-systemd.automount,x-systemd.requires=network-online.target,x-systemd.device-timeout=10 0 0 

Már sokszor beszéltem róla más videókban, de nem győzöm elégszer hangsúlyozni, hogy az fstab fájlt fokozott óvatossággal szerkesszük, mert könnyen szabotálhatjuk vele a rendszer indulását is.

Mentse el és lépjen ki a konfigurációs fájlból.

NFS Beállítás Tesztelése

Az utolsó lépés annak ellenőrzése, hogy az NFS beállítás megfelelően működik-e. Néhány fájlt létre fogunk hozni a szerveren az NFS megosztási könyvtárban, és ellenőrizzük azok elérhetőségét az NFS kliens oldalán.

A szerver oldalon létrehozzuk a fájlokat az NFS megosztási könyvtárban.

$ sudo touch /kliens/könyvtár/file{1..30}.txt

Ellenőrizzük, hogy a fájlok létre lettek-e hozva az ls parancs segítségével:

$ ls -l vagy ls -la /kliens/könyvtár

NFS Mount Eltávolítása

Ha már nem szükséges a mountolt könyvtár a rendszeren, akkor azokat az NFS kliens oldalról az alábbi umount parancs segítségével lecsatolhatja:

$ sudo umount /kliens/könyvtár/útvonal
Amennyiben az fstab fájl is szerkesztve lett, úgy az NFS csatolásra utaló sort törölni kell.

Samba konfigurálása

A Samba konfigurálásához telepítsd az alapvető csomagokat.

Ezek nevei eltérőek lehetnek disztribuciónként.

Redhat/Fedora alatt:

$ sudo dnf install samba samba-common samba-client 

Arch alapú rendszerek alatt:

$ sudo pacman -S samba 

Debian/Ubuntu rendszerek alatt:

$ sudo apt install samba

Miután minden samba csomagot telepítettünk, a következő lépés a samba megosztások konfigurálása.

Egy samba megosztás egyszerűen egy könyvtár, amelyet hálózati kliensekkel osztunk meg.

Hozz létre egy könyvtárat, tetszőleges helyen. Javasolt az srv könyvtár használta a gyökér fájlrendszeren.

$ sudo mkdir -p /könyvtár/útvonal

Ezután jogosultságokat és tulajdonjogokat rendelünk hozzá a következő módon.

$ sudo chmod -R 755 /könyvtár/útvonal
$ sudo chown -R  nobody:nobody /könyvtár/útvonal
$ sudo chcon -t samba_share_t /könyvtár/útvonal (SELinux esetén)

Következő lépésként beállítunk néhány konfigurációt a smb.conf konfigurációs fájlban, amely a Samba fő konfigurációs fájlja.

Létrehozunk egy új konfigurációs fájlt.

$ sudo nano /etc/samba/smb.conf

Meghatározzuk a jogosultságokat, hogy ki férhet hozzá a samba megosztáshoz, hozzáadva a konfigurációs fájlban látható sorokat.

Konfigurációs fájl minta:

[global]
workgroup = WORKGROUP
server string = Samba Server %v
netbios name = rocky-8
security = user
map to guest = bad user
dns proxy = no
ntlm auth = true

[Public]
path =  /könyvtár/útvonal
browsable =yes
writable = yes 	#NO-t megadva nem hozható létre dokumentum
guest ok = yes	#NO-t megadva vendég felhasználók nem férhetnek a könyvtárhoz
read only = no    #YES-re állítva csak olvasható lesz a könyvtár 

Mentse el és lépjen ki a konfigurációs fájlból.

Az elvégzett konfigurációk ellenőrzéséhez futtassa a következő parancsot:

$ sudo testparm

Samba konfiguráció ellenőrzése

Következő lépésként indítsa el és engedélyezze a Samba démonokat.

$ sudo systemctl enable --now smb nmb

Győződj meg róla, hogy mind a smb, mind a nmb démonok futnak.

$ sudo systemctl status smb nmb

Samba státusz ellenőrzése/Tűzfal konfiguráció

Ha a Samba megosztásokhoz Windows rendszerekről szeretnénk hozzáférni, ehhez szabályt kell hozzáadnunk a tűzfalhoz.

$ sudo firewall-cmd --permanent --add-service=samba
$ sudo firewall-cmd --reload
$ sudo firewall-cmd --list-services

Eddig telepítettük a sambát és konfiguráltuk a samba megosztást. Most már készen állunk arra, hogy távolról hozzáférjünk.

Ehhez egy Windows kliensen nyomd meg a Windows logó gombot + R-t a Futtatás párbeszédpanel megnyitásához.

A megnyíló párbeszédpanelen adja meg a samba szerver IP-címét:

\\szerver-ip

A következő ablakon az ‘Public’ felirat fog megjelenni. Emlékezzen, ez a könyvtár mutat a samba megosztásra az általad meghatározott könyvtárban.

Jelenleg a könyvtár üres, mivel még nem hoztunk létre fájlokat. Tehát visszatérünk a terminálhoz, és létrehozunk néhány fájlt a samba megosztási könyvtárban.

$ cd /szerver/könyvtár/
$ sudo touch file{1..3}.txt

Most visszatérünk a ‘Public’ mappához, ahol korábban létrehozott fájlokat meg fogjuk jeleníteni.

Ez a publikus könyvtár volt, de létrehozhatunk privát, felhasználónévvel és jelszóval zárolt könyvtárakat is.

A biztonságos Samba megosztáshoz először létrehozunk egy új samba felhasználót.

$ sudo useradd smbuser (név tetszőleges)

Ezután konfigurálunk egy jelszót a samba felhasználó számára, amelyet az azonosításkor fogunk használni.

$ sudo smbpasswd -a smbuser

Következő lépésként létrehozunk egy új csoportot a biztonságos samba megosztásunkhoz, és hozzáadjuk az új samba felhasználót.

$ sudo groupadd smb_group
$ sudo usermod -g smb_group smbuser

Ezután létrehozunk egy másik samba megosztást, amelyet biztonságosan lehet elérni. A mi esetünkben egy másik könyvtárat hoztunk létre ugyanazon a helyen, mint az előző.

$ sudo mkdir -p  /szerver/könyvtár/útvonal/privát

Az samba megosztás fájljainak jogosultságait is konfiguráljuk.

$ sudo chmod -R 770 /szerver/könyvtár/útvonal/privát
$ sudo chcon -t samba_share_t /szerver/könyvtár/útvonal/privát (SELinux esetén)
$ sudo chown -R root:smb_group /szerver/könyvtár/útvonal/privát

Újra elérjük a Samba konfigurációs fájlt.

$ sudo nano /etc/samba/smb.conf

Hozzáadjuk ezeket a sorokat a biztonságos samba megosztás meghatározásához.

[Private]
path = /szerver/könyvtár/útvonal/privát
valid users = @smb_group
guest ok = no
writable = yes
browsable = yes

Mentse el a változásokat és lépjen ki.

Végül újraindítjuk az összes samba démont.

$ sudo systemctl restart smb
$ sudo systemctl restart nmb

Amikor ezúttal hozzáférsz a szerverhez, észre fogod venni a ‘Private’ mappát is. A mappa eléréséhez a Samba felhasználó hitelesítésére lesz szükség. Add meg az előző lépésben létrehozott felhasználó felhasználónevét és jelszavát, majd kattintson az ‘OK’ gombra.

Samba Megosztás elérése Linux Kliensről

A megosztáshoz való hozzáféréshez egyszerűen nyiss egy fájlkezelőt, és írd be:

smb://szerverip

Végül fontos mégegyszer elmondanom, hogy az NFS és az SMB kiválasztása fájlmegosztási protokollként főként attól függ, hogy a hálózatban használt számítógépeken milyen operációs rendszert alkalmaznak, valamint egyéb más tényezőktől. Mindkét protokoll megbízható, és különböző operációs rendszerekben és NAS eszközökön is használható. Bármelyiket is választod, fontos biztonsági másolatot készíteni fájljaidról. A NAKIVO Backup & Replication egy nagyon hasznos szoftver pl, amely használható SMB és NFS megosztások, valamint virtuális gépek, fizikai szerverek és a Microsoft 365-ben található adatok védelmére is.

Hálózati fájlmegosztás Linuxon: Az NFS és SMB

Vélemény, hozzászólás?

Az e-mail címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük