Linuxové systémy nabízení zajímavý protokol pro sdílení částí souborového systému mezi sebou. Jmenuje se NFS – Network File System. Umožňuje přímo v souborovém systému Linuxu připojit vzdálené sdílené adresáře a pracovat s nimi stejně jako s lokálními daty. Jeho použití je snadné.
Tento návod je postaven pro distribuce založené na Ubuntu. Pracujeme pod uživatelem root. V Ubuntu se do něj permanentně přepneme příkazem sudo -i
.
Konfigurace serveru
Na serveru je nejprve potřeba nainstalovat balíky nfs-kernel-server
, rpcbind
a nfs-common
.
$ apt install nfs-kernel-server nfs-common
Konfigurační soubor nfs-serveru je /etc/exports
, kde každý nezakomentovaný řádek představuje jedno sdílení. Na jeden takový se podrobněji podíváme.
/sklad 192.168.1.2(rw,no_root_squash,sync)
Rozebereme si to hezky bod po bodu. Není to nic tak složitého:
- /sklad – Určení zdrojového adresáře pro sdílení dat.
- 192.0.0.0/255.0.0.0 – Tímto způsobem povolíme sdílení pro celou síť.
- 192.168.1.2 – Tato volba ukazuje povolení přístupu z konkrétního počítače.
- Shrnutí pro první údaj, zde nastavíme IP adresy, které mají mít přístup ke sdílenému adresáři.
- rw – Parametr uděluje právo čtení a zápisu.
- no_root_squash – Zde je to obecně je to trochu složitější, v tomto případě to znamená, že pokud se přihlásí root přes klienta bude root i na serveru. Podrobnější vysvětlení je v dalším odstavci.
- sync – Synchronní režim.
Squashování UID/GID znamená, že pokud se na sdílený adresář snaží přistoupit user s UID 100, tak na NFS serveru bude mít UID 65435. UID se překlopí ke konci rozsahu. Stejně to funguje i pro GID. Lze nastavit i konkrétní UID, na které se budou všichni klienti přemapovávat. NFS rozlišuje mezi squashováním obyčejných uživatelů (all_squash
) a roota (no_root_squash
). Squashování pro uživatele je ve výchozím nastavení vypnuté a pro roota zapnuté. Jestli pro roota vypnout, záleží na konkrétní situaci v konkrétním nasazení.
Máme připraveno a můžeme to celé hezky nastartovat. Start NFS provedeme pomocí tohoto příkazu.
$ service nfs start
Firewall
Nyní je potřeba nastavit a nakonfigurovat firewall. Provedeme veškerá potřebná povolení portů. Bude potřeba nastavit povolení TCP a UDP portu 2049 pro NFS. Ukážeme si, jak na to v programu UFW – ten je výchozím firewallem v Ubuntu a v příbuzných distribucích. Po doinstalování se dá použít i v Debianu.
Za prvé se podíváme na stav svého firewallu. Použijeme příkaz:
$ sudo ufw status
Pokud není aktivní a chceme ho aktivovat, použijeme příkaz:
#160;sudo ufw enable
Samotné přidání pravidla provedeme pomocí:
$ sudo ufw allow nfs
Tento postup funguje i v Debianu. Jen je potřeba program ufw
nainstalovat z repozitářů.
Konfigurace klienta
Server NFS je připraven. Nyní půjdeme konfigurovat klienta, z kterého se budeme připojovat na server. I u klienta budeme pracovat pod uživatelem root. Budeme potřebovat nainstalovat balíky rpcbind
a nfs-common
. Použijeme tento příkaz pro instalaci:
$ apt install rpcbind nfs-common
Jako první budeme potřebovat přípojný bod pro připojení sdíleného obsahu se serveru. Tak si vytvoříme k tomu určený adresář. Například:
$ mkdir /media/data_server
Nyní můžeme připojit sdílený adresář z našeho serveru.
$ mount 192.168.1.10:/sklad /media/data
Pokud budeme potřebovat permanentní připojení sdíleného adresáře ze severu, je cestou editace souboru /etc/fstab
. Zápis řádku pro trvalé připojení vypadá takto:
192.168.1.10:/sklad /media/data_server nfs sync,rw,exec 0 0
Zase se na syntaxi tohoto zápisu trochu podíváme.
- 192.168.1.10:/sklad – určuje server a sdílený adresář na serveru
- /media/data_server – určuje přípojná bod adresáře
- nfs – určuje souborový systém
Klient potřebuje povolený TCP a UDP port firewallu 111. Pokud používáte, povolte.
Tak a máme nastaveno. Pro spojení mezi linuxovými systémy jde pro mě o preferovanou alternativu.