Hlavní navigace

NFS: vzdálený přístup k souborům v linuxovém operačním systému

13. 4. 2022
Doba čtení: 3 minuty

Sdílet

 Autor: Depositphotos
Dnes se podíváme na protokol NFS. Jde pravděpodobně o nejlepší protokol pro sdílení adresářů mezi systémy na bází Linuxu a Unixu. Nakoukneme i k nastavení firewallu, které souvisí s touto službou.

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.

CS24 tip temata

  • 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.

Autor článku

Od roku 2008 se zabývá Linuxem a open-source softwarem. Má zkušenost systémového administrátora Linuxu z příspěvkové organizace. Ve volném čase se kromě počítačů věnuje také fotografování a úpravě fotografií.