NFS neboli Network File System je síťový protokol, který umožňuje připojit vzdálený souborový systém přes síť. Protokol NFS využívá architekturu server-klient, server NFS, který poskytuje všechny adresáře nebo oddíly, které jsou připraveny k přístupu a připojení, a klienty, kteří používali protokol rpcbind pro přístup ke všem adresářům a souborovému systému prostřednictvím interního síťového připojení.
Aktuální stav protokolu Network File System je popsán níže.
1. NFSv2 a NFSv3 jsou stále podporovány hlavním operačním systémem, ale z bezpečnostních důvodů musíte omezit přístup serveru NFS na důvěryhodnou místní síť. NFSv2 a NFSv3 jsou doporučeny pro malé a střední typy nasazení.
2. Protokol NFSv4 poskytuje základní bezpečnostní funkce, jako je ověřování a šifrování, ale u těchto částí se spoléhá na Kerberos. Musíte tedy přidat další konfiguraci pro používání NFSv4 se základními bezpečnostními funkcemi.
V tomto tutoriálu se naučíte, jak nainstalovat a nakonfigurovat server NFS na nejnovější verzi Debian 11 Bullseye. Budete instalovat NFS server a zabezpečit přístup omezením hostitelů pomocí ufw firewallu. A pak se naučíte, jak nastavit klienta pro připojení adresářů a oddílů poskytovaných serverem NFS a jak nastavit server NFS s automatickým připojením při spouštění systému pomocí konfigurace '/etc/fstab'.
Předpoklady
1. Budeme používat dva různé počítače ve stejné síti, jak je uvedeno níže.
- debian64 - 192.168.1.25 - jako server NFS
– klient-debian – 192.168.1.30 – jako klient
2. Uživatel root nebo uživatel s oprávněními root. Tento uživatel bude použit pro instalaci nových balíčků a úpravu systémových konfigurací.
Instalace a konfigurace serveru NFS
Nejprve nainstalujete balíček serveru nfs a nastavíte sdílený adresář pro klienty.
1. Spuštěním následujícího příkazu nainstalujte balíčky nfs-server.
apt install nfs-kernel-server rpcbind
Zadejte „y “ a stiskněte „Enter ' pokračovat v instalaci.
2. Nyní vytvořte nový adresář, který chcete sdílet s klienty. V tomto příkladu budete klientům sdílet dva adresáře '/mnt/shared' a '/srv/data'. A nesdílejte výchozí kořenový adresář '/' nebo adresář '/etc'.
Vytvořte nový sdílený adresář pomocí příkazu mkdir níže.
mkdir -p /mnt/shared
mkdir -p /srv/data
Vytvořte nový soubor v každém adresáři spuštěním příkazu echo níže.
echo "test file nfs server" > /mnt/shared/test-file.txt
echo "test file nfs server" > /srv/data/test-file.txt
Nyní změňte vlastnictví obou sdílených adresářů na 'nobody:nogroup' provedením příkazu níže.
chown nobody:nogroup /mnt/shared /srv/data
A jste připraveni konfigurovat server NFS.
3. Chcete-li nakonfigurovat sdílený adresář pro nfs, upravte konfiguraci '/etc/exports' pomocí nano editoru.
nano /etc/exports
Níže jsou uvedeny příklady konfigurací pro některé scénáře
Sdílení adresáře pro klienta s jedním hostitelem s přístupem pro čtení i zápis.
/mnt/shared 192.168.1.30(rw,sync,no_subtree_check)
Sdílení adresáře pro více klientů, včetně skupiny hostitelské sítě.
/srv/data 172.16.1.0/24(rw,sync,no_root_squash,no_subtree_check) 10.11.12.0/24(rw,no_subtree_check)
Sdílejte adresář pro jednoho klienta s přístupem pouze pro čtení.
/srv/data 192.168.1.30(ro)
Níže je poslední příklad konfigurace.
/mnt/shared 192.168.1.30(rw,sync,no_subtree_check)
/srv/data 172.16.1.0/24(rw,sync,no_root_squash,no_subtree_check) 10.11.12.0/24(rw,no_subtree_check)
/srv/data 192.168.1.30(ro,no_root_squash)
Uložte konfiguraci stisknutím 'Ctrl+x ', zadejte 'y “ a poté stiskněte „Enter ' pro ukončení.
Možnosti, které musíte znát:
- rw :povolit přístup pro čtení a zápis pro server NFS i pro klienta ke svazku/adresáři.
- ro :povolit klientům přístup pouze pro čtení.
- synchronizovat :odpovídat na požadavky až poté, co byly změny potvrzeny do stabilního úložiště. Tato možnost je ve výchozím nastavení povolena.
- asynchronní :umožňuje serveru NFS porušit protokol NFS a odpovídat na požadavky dříve, než budou jakékoli změny provedené tímto požadavkem převedeny na stabilní úložiště.
- subtree_check :povolení a povolení kontroly podstromu. Tato možnost je ve výchozím nastavení povolena.
- no_subtree_check :deaktivuje kontrolu podstromu, která má mírné bezpečnostní důsledky, ale za určitých okolností může zlepšit spolehlivost.
- root_squash :Mapovat požadavky z uid/gid 0 na anonymní uid/gid. Všimněte si, že to neplatí pro žádná jiná uid nebo gid, která mohou být stejně citlivá, jako je uživatelská schránka nebo zaměstnanci skupiny.
- no_root_sqash :deaktivuje vymačkání kořenů. Tato možnost je užitečná hlavně pro klienty bez disku.
4. Dále restartujte službu nfs-server a použijte novou konfiguraci pomocí příkazu níže.
systemctl restart nfs-server
Nyní zkontrolujte a ověřte službu nfs-server pomocí následujícího příkazu.
systemctl is-enabled nfs-server
systemctl status nfs-server
A získáte podobný výstup jako níže.
Jak je vidět, služba nfs-server je „povolená“ a automaticky se spustí při startu systému. A aktuální stav nfs-service je 'active (exited)', což znamená, že služba běží, ale systemd nemůže najít démona, který by měl monitorovat.
Zabezpečení serveru NFS pomocí brány UFW Firewall
V této fázi budete instalovat ufw firewall a omezovat přístup k serveru NFS pouze pro konkrétní hostitele a sítě.
1. Spuštěním příkazu apt níže nainstalujte balíček ufw.
apt install ufw
Zadejte „y “ a stiskněte „Enter ' pro potvrzení a pokračování v instalaci.
2. Pokud je veškerá instalace dokončena, přidejte službu SSH do pravidel brány firewall ufw pomocí příkazu níže.
ufw allow ssh
3. Dále spusťte níže uvedené příkazy ufw a přidejte hostitele nebo sítě do vašeho firewallu ufw.
Povolit hostitele s adresou IP '192.168.1.30 ' pro přístup k serveru NFS.
ufw allow from 192.168.1.30 to any port nfs
Povolit blokům sítě přístup k serveru NFS.
ufw allow from 172.16.1.0/24 to any port nfs
ufw allow from 10.11.12.0/24 to any port nfs
4. Poté povolte ufw firewall pomocí následujícího příkazu.
ufw enable
Zadejte „y “ a stiskněte „Enter ' pro spuštění a povolení brány firewall ufw.
Nyní zkontrolujte stav brány firewall ufw pomocí příkazu níže.
ufw status
A uvidíte podobný výstup jako níže.
Jak je vidět, stav brány firewall ufw je 'aktivní' a služba NFS na výchozím portu '2049' je dostupná v seznamu pravidel.
Nastavení klienta NFS
V tomto kroku budete konfigurovat klienty pro přístup ke sdílenému adresáři a oddílu na serveru NFS.
1. Nejprve nainstalujte 'nfs-common ' pomocí příkazu apt níže.
apt install nfs-common
Zadejte „y “ a stiskněte „Enter ' pro potvrzení a pokračování v instalaci.
2. Po dokončení instalace vytvořte nový adresář pro adresář mount.
mkdir -p /nfs/shared; mkdir -p /nfs/data
3. Chcete-li připojit adresář nebo oddíl nfs ze serveru NFS, spusťte níže uvedený příkaz mount.
mount 192.168.1.25:/mnt/shared /nfs/shared
mount 192.168.1.25:/srv/data /nfs/data
Základní příkaz mount pro přístup k NFS je zadáním IP adresy serveru NFS '192.168.1.25' s adresářem pro připojení cesty '/mnt/shared' a '/srv/data' a cílovou cestou na straně klienta '/nfs /shared' a '/nfs/data'.
4. Dále spusťte následující příkaz, abyste ověřili, že připojení NFS bylo úspěšné.
df -h
Soubory, které jste právě vytvořili, můžete také zkontrolovat provedením následujících příkazů.
cat /nfs/shared/test-file.txt
cat /nfs/data/test-file.txt
Níže je výstup, který získáte.
Jak je vidět, úspěšně jste připojili NFS server do adresáře '/nfs/shared' a '/nfs/data' a budete moci číst soubory, které jste právě vytvořili.
Ověření přístupu pro čtení a zápis k serveru NFS
V této fázi budete ověřovat přístup pro čtení a zápis do adresáře serveru NFS.
1. změňte pracovní adresář na '/nfs/shared', zkontrolujte dostupné soubory v tomto adresáři a zobrazte obsah tohoto souboru pomocí příkazu, jak je uvedeno níže.
cd /nfs/shared
ls
cat test-file.txt
Dále vytvořte nový soubor pomocí příkazu echo níže.
echo "This file from nfs-client" > client.txt
cat client.txt
Pokud jste schopni vytvořit soubor 'client.txt', přístup pro zápis do adresáře NFS '/nfs/share' je úspěšný, jak je popsáno v konfiguraci níže.
/mnt/shared 192.168.1.30(rw,sync,no_subtree_check)
2. Dále, v konfiguraci, kterou jste vytvořili nahoře, má cline přístup pouze ke čtení do adresáře NFS '/nfs/data', jak můžete vidět v konfiguraci níže.
/srv/data 192.168.1.30(ro,no_root_squash)
Změňte pracovní adresář na '/nfs/data', zkontrolujte soubory v něm, zkontrolujte dostupné soubory v tomto adresáři a zobrazte obsah tohoto souboru pomocí příkazu, jak je uvedeno níže.
cd /nfs/data
ls
cat test-file.txt
Dále, pokud chcete vytvořit nový soubor, zobrazí se chyba „Systém souborů pouze pro čtení“. Protože máte oprávnění pouze k „pouze pro čtení“, jak je popsáno v horní konfiguraci.
echo "This is a file from client to data" > client-data.txt
Níže je podobný výstup, který získáte.
Oprávnění ke čtení a zápisu odpovídá aktuální konfiguraci serveru NFS.
Připojit NFS při spuštění
V této fázi se naučíte, jak připojit adresář/oddíl NFS při spouštění/spouštění systému prostřednictvím konfigurace '/etc/fstab'.
1. Upravte '/etc/fstab' konfiguraci pomocí nano editoru.
nano /etc/fstab
Změňte podrobnosti IP adresy, sdíleného adresáře a adresáře pro připojení cesty za vlastní a poté vložte konfiguraci.
192.168.1.25:/mnt/shared /nfs/shared nfs auto,nofail,noatime,nolock,intr,tcp,actimeo=1800 0 0
192.168.1.25:/srv/data /nfs/data nfs auto,nofail,noatime,nolock,intr,tcp,actimeo=1800 0 0
Uložte konfiguraci stisknutím 'Ctrl+x “ a zadejte „y “ a poté stiskněte „Enter ' pro ukončení.
2. Dále ověřte '/etc/fstab ' konfigurace je správná pomocí následujících příkazů.
Odpojte všechny mount adresáře pomocí příkazu níže.
umount -R /nfs/shared
umount -R /nfs/data
Provedením následujícího příkazu připojte všechny dostupné souborové systémy do konfiguračního souboru '/etc/fstab'.
mount -a
Ujistěte se, že nemáte žádné chyby.
Nyní spusťte následující příkaz pro zobrazení všech připojených souborových systémů.
df -h
Pokud je vaše konfigurace správná, uvidíte, že NFS server je připojen k cílovému adresáři, jak je popsáno v konfiguraci '/etc/fstab'.
3. Můžete restartovat klientský počítač a znovu se přihlásit, poté znovu ověřit pomocí příkazu, jak je uvedeno níže.
df -h
A uvidíte, že NFS server je automaticky připojen při spouštění systému na klientském počítači prostřednictvím souboru '/etc/fstab'.
Závěr
Gratulujeme! Úspěšně jste nainstalovali NFS Server na nejnovější Debian 11 Bullseye. Také jste úspěšně zabezpečili nasazení serveru NFS pomocí brány firewall ufw, nastavení klientských počítačů NFS a nastavení automatického připojení pomocí konfigurace '/etc/fstab'. Jako další krok by vás mohl zajímat protokol NFSv4, který poskytuje bezpečnostní mechanismy, jako je šifrování a ověřování prostřednictvím serveru Kerberos.