TL; DR

v Průvodci serverem Ubuntu je k dispozici mnohem kratší průvodce, pokud potřebujete více informací, přečtěte si níže.

Úvod

NFS (Network File System) umožňuje „sdílet“ adresář umístěný na jednom síťovém počítači s jinými počítači/zařízeními v této síti. Počítač, kde se nachází adresář, se nazývá server a počítače nebo zařízení připojující se k tomuto serveru se nazývají klienti. Klienti obvykle ‚mount‘ sdílené adresáře, aby to součástí jejich vlastní adresářovou strukturu.,

NFS je ideální pro vytváření nas (síťové připojené úložiště) v prostředí Linux/Unix. Jedná se o nativní protokol Linux/Unix na rozdíl od Samba, který používá protokol SMB vyvinutý společností Microsoft. Apple OS má dobrou podporu pro NFS. Windows 7 má nějakou podporu pro NFS.

NFS je možná nejlepší pro více „trvalých“ síťových adresářů, jako jsou adresáře /home nebo pravidelně přístupné sdílené zdroje. Pokud chcete síťový podíl, ke kterému se mohou hostující uživatelé snadno připojit, Samba je vhodnější., Je to proto, že nástroje existují snadněji ve starých a proprietárních operačních systémech, aby se dočasně připojily a oddělily od akcií Samba.

Ubuntu Před nasazením NFS, měli byste být obeznámeni s:

  • Linux soubor a adresář oprávnění
  • Montáž a odpojení (odpojení) souborové systémy

Toto HowTo dělá Ubuntu server NFSv4 připraven.

NFS quick start

pokud pochopíte, co děláte, použijte tento krátký průchod k nastavení serveru NFSv4 na Ubuntu (bez zabezpečení autentizace). Poté připojte podíl na klienta Ubuntu., Byl testován na Ubuntu 14.04.

NFS server

Chcete-li zkontrolovat, že server NFS není nainstalován, můžete to udělat…

  • $ dpkg -l | grep nfs-kernel-server

nainstalujte požadované balíčky…

  • # apt-get install nfs-kernel-server

Pro snadnější údržbu budeme izolovat všechny NFS exportu v jediném adresáři, kde skutečné adresáře bude připojen s možností vazby.

  • Řekněme, že chceme exportovat domácí adresáře našich uživatelů do/home / users., Nejprve jsme vytvořit exportovat souborový systém:

    # mkdir -p /export/users 

    je důležité, že /export a /export/uživatelé 777 permissions, jak budeme v přístupu k sdílené položce systému souborů NFS z klientského bez LDAP/NIS ověřování. To neplatí, pokud používáte autentizaci (viz níže)., Nyní namontujte reálných uživatelů adresáře:

    # mount --bind /home/users /export/users

    , Aby nás zachránil z přepisování to po každém restartu jsme přidat následující

    řádek do /etc/fstab

    /home/users /export/users none bind 0 0
  • jediná důležitá volba v /etc/default/nfs-kernel-server pro teď je NEED_SVCGSSD. Ve výchozím nastavení je nastavena na“ ne“, což je v pořádku, protože tentokrát neaktivujeme zabezpečení NFSv4.

aby byla jména ID automaticky mapována, klient i server vyžadují/etc / idmapd.,conf soubor mít stejný obsah se správnými názvy domén. Navíc, tento soubor by měl mít následující řádky v Mapování sekce:

  • Nobody-User = nobodyNobody-Group = nogroup

    Nicméně, klient může mít různé požadavky na Nikoho, ani na Uživatele, a Nikdo-Skupiny. Například u variant RedHat je to nfsnobody pro oba. cat/etc /passwd a cat/etc / skupina by měla ukázat účty „nikdo“.

tímto způsobem server a klient nepotřebují uživatele ke sdílení stejného UID / GUID.,

pro ty, kteří používají ověřování založené na LDAP, přidejte do idmapd klienta následující řádky.conf:

Method = nsswitch

To způsobí, idmapd vědět, podívat se na nsswitch.conf určit, kde by měl hledat informace o pověření (a pokud máte ověřování LDAP již funguje, nsswitch by neměl vyžadovat další vysvětlení).

náš export adresáře do lokální sítě 192.168.1.0/24 přidáme následující dva řádky do /etc/exports

Portmap Uzamčení

volitelné

Přidejte následující řádek do /etc/hosts.,deny:

rpcbind mountd nfsd statd lockd rquotad : ALL

nejprve zablokováním všech klientů, pouze klientů v /etc/hosts.povolit níže bude umožněn přístup k serveru.

Nyní přidejte následující řádek do/etc / hosts.povolit:

rpcbind mountd nfsd statd lockd rquotad : list of IP addresses

„seznam IP adres“ řetězec, je třeba, aby se seznam IP adres, které se skládá ze serveru a všech klientů. Musí to být IP adresy kvůli omezení v portmap (nemá rád hostnames). Všimněte si, že pokud máte nastaveno NIS, stačí je přidat do stejného řádku.,

Poznámka: ujistěte se, že seznam povolených IP adresy obsahuje adresu localhost (127.0.0.1) jako spouštěcí skripty v posledních verzích Ubuntu pomocí příkazu rpcinfo objevit NFSv3 podporu, a to bude vypnuta, pokud localhost je schopen připojit.,unt kompletní export strom s jedním příkazem:

můžeme také připojit exportovaný podstromu s:

  • # mount -t nfs -o proto=tcp,port=2049 <nfs-server-IP>:/users /home/users

, Aby nás zachránil z přepisování to po každém restartu jsme přidat následující řádek do /etc/fstab:

  • <nfs-server-IP>:/ /mnt nfs auto 0 0

    Pokud se po montáži, záznam v souboru /proc/mounts se zobrazí jako <nfs-server-IP>:// (dvě lomítka), pak možná budete muset zadat dvě lomítka v /etc/fstab, jinak umount může stěžovat, že nemůže najít hoře.,

    možnost auto se připojí při spuštění. To však nebude fungovat, pokud váš klient používá wifi připojení spravované na uživatelské úrovni (po přihlášení), protože síť nebude k dispozici při spuštění. V Ubuntu 12.04 LTS a novější jsou WIFI připojení ve výchozím nastavení spravována na systémové úrovni, takže automatická montáž akcií NFS při zaváděcí době by měla fungovat dobře.

Ubuntu Server není dodáván s žádným init.d / netfs nebo jiné skripty, jak to udělat pro vás.

portmap Lockdown

volitelné

přidejte následující řádek do/etc / hosts.,deny:

rpcbind : ALL

nejprve zablokováním všech klientů, pouze klientů v/etc / hosts.povolit níže bude umožněn přístup k serveru.

Nyní přidejte následující řádek do/etc / hosts.povolit:

rpcbind : NFS server IP address

kde „IP adresa serveru NFS“ je IP adresa serveru. To musí být číselné! Je to způsob, jakým portmap funguje.

NFS Server

nastavení před instalací

žádný z následujících kroků před instalací není nezbytně nutný.

uživatelská oprávnění

uživatelská oprávnění NFS jsou založena na ID uživatele (UID)., Uid všech uživatelů na klientovi musí odpovídat těm na serveru, aby uživatelé měli přístup. Typické způsoby, jak to udělat, jsou:

  • Manuální heslem, synchronizace souborů
  • Použití LDAP

  • Použití NIS

je také důležité si uvědomit, že musíte být opatrní na systémy, kde hlavní uživatel má root přístup – uživatel může změnit UID je v systému tak, aby získaly přístup k nikomu soubory. Tato stránka předpokládá, že administrativní tým je jedinou skupinou s přístupem root a že jsou všichni důvěryhodní., Cokoli jiného představuje pokročilejší konfiguraci a nebude zde řešeno.

oprávnění skupiny

s NFS je přístup uživatele k souborům určen jeho členstvím ve skupinách na klientovi, nikoli na serveru. Nicméně, tam je důležitou omezení: maximálně 16 skupin jsou předávány z klienta na server, a, pokud je uživatel členem více než 16 skupin na klienta, některé soubory nebo adresáře, může být nečekaně nepřístupné.

názvy hostitelů

volitelné, pokud používáte DNS

přidejte do /etc/hosts jakékoli jméno klienta a IP adresy. Skutečný (ne 127.,0.0.1) IP adresa serveru by již měla být zde. Tím je zajištěno, že NFS bude stále fungovat, i když DNS klesne. Můžete se spolehnout na DNS, pokud chcete, je to na vás.

NIS

nepovinné – proveďte kroky pouze při použití NIS

Poznámka: Toto funguje pouze při použití NIS. V opačném případě nelze použít netgroups, a měl by určit jednotlivé IP nebo hostnames v /etc/exportu. Přečtěte si sekci chyby v man netgroup.

upravit / etc / netgroup a přidat řádek pro klasifikaci své klienty. (Tento krok není nutný, ale je pro pohodlí).,

myclients (client1,,) (client2,,)

samozřejmě lze přidat další klienty. myclients může být cokoliv se vám líbí; toto je název netgroup.

Spustit tento příkaz obnovit YP databáze:

sudo make -C /var/yp

Portmap Uzamčení

volitelné

Přidejte následující řádek do /etc/hosts.deny:

rpcbind mountd nfsd statd lockd rquotad : ALL

nejprve zablokováním všech klientů, pouze klientů v /etc/hosts.povolit níže bude umožněn přístup k serveru.

Nyní přidejte následující řádek do/etc / hosts.,povolit:

rpcbind mountd nfsd statd lockd rquotad : list of IP addresses

„seznam IP adres“ řetězec, je třeba, aby se seznam IP adres, které se skládá ze serveru a všech klientů. Musí to být IP adresy kvůli omezení v portmap (nemá rád hostnames). Všimněte si, že pokud máte nastaveno NIS, stačí je přidat do stejného řádku.,

Instalace a Konfigurace

Nainstalovat NFS Server

sudo apt-get install rpcbind nfs-kernel-server

Akcie a

Upravit /etc/exports a přidat akcie:

/home @myclients(rw,sync,no_subtree_check)/usr/local @myclients(rw,sync,no_subtree_check)

výše uvedené akcie /home a /usr/local pro všechny klienty v myclients netgroup.

výše uvedené akcie / home a / usr / local dvěma klientům s pevnými IP adresami. Nejlépe se používá pouze u strojů, které mají statické IP adresy.

/home 192.168.0.0/255.255.255.0(rw,sync,no_subtree_check)/usr/local 192.168.0.0/255.255.255.0(rw,sync,no_subtree_check)

výše uvedené akcie / home a / usr / local pro všechny klienty v soukromé síti spadající do určeného rozsahu IP adres.,

rw dělá podíl čtení / zápis, a sync vyžaduje, aby server odpovědět pouze na požadavky, jakmile všechny změny byly propláchnuty na disk. Toto je nejbezpečnější možnost (async je rychlejší, ale nebezpečný. Důrazně se doporučuje, abyste četli vývoz člověka.

po nastavení /etc/exports exportujte akcie:

sudo exportfs -ra

Tento příkaz budete chtít provést kdykoli /etc/export bude změněn.,

Restart Služby

Pokud /etc/default/portmap byl změněn, portmap bude muset být restartován:

sudo service portmap restart

NFS kernel server bude také vyžadovat restartování počítače:

sudo service nfs-kernel-server restart

Zabezpečení Poznámka

Kromě UID otázek uvedených výše, je třeba poznamenat, že útočník by mohl potenciálně maskovat jako stroj, který je povolen na mapě podíl, který jim umožňuje vytvořit libovolný Uid pro přístup k souborům. Jedním z možných řešení je IPSec, viz také sekce NFS a IPSec níže., Můžete nastavit všechny své členy domény mluvit jen mezi sebou přes IPSec, který bude účinně ověřit, že váš klient je, kdo to říká, že je.

IPSec pracuje šifrováním provozu na server pomocí klíče serveru a server odešle zpět všechny odpovědi šifrované klíčem klienta. Provoz je dešifrován příslušnými klíči. Pokud klient nemá klíče, které má mít klient, nemůže odesílat ani přijímat data.

alternativou k IPSec jsou fyzicky oddělené sítě., To vyžaduje samostatný síťový přepínač a samostatné ethernetové karty a fyzické zabezpečení této sítě.

NFS Klienta

Instalace

sudo apt-get install rpcbind nfs-common

Portmap Uzamčení

volitelné

Přidejte následující řádek do /etc/hosts.deny:

rpcbind : ALL

nejprve zablokováním všech klientů, pouze klientů v/etc / hosts.povolit níže bude umožněn přístup k serveru.

Nyní přidejte následující řádek do/etc / hosts.povolit:

rpcbind : NFS server IP address

kde „IP adresa serveru NFS“ je IP adresa serveru. To musí být číselné!, Je to způsob, jakým portmap funguje.

názvy hostitelů

volitelné, pokud používáte DNS

přidejte název serveru do/etc / hosts. Tím je zajištěno, že držáky NFS budou stále fungovat, i když DNS klesne. Můžete se spolehnout na DNS, pokud chcete, je to na vás.

držáky

zkontrolujte, zda vše funguje

měli byste to zkusit a připojit., Základní šablonu, kterou bude používat, je:

sudo mount ServerIP:/folder/already/setup/to/be/shared /home/username/folder/in/your/local/computer

například:

sudo mount 192.168.1.42:/home/music /home/poningru/music

Připojit při spuštění

NFS držáky mohou být buď automaticky montuje při přistupovat pomocí autofs, nebo může být nastavení pomocí statické držáky pomocí záznamů v /etc/fstab. Oba jsou vysvětleny níže.

automatické připojování

Install autofs:

sudo apt-get install autofs

následující příklad konfigurace nastaví domovské adresáře pro automount z NFS serveru po přihlášení. Další adresáře lze nastavit na automount při přístupu stejně.,

přidejte následující řádek na konec/etc / auto.master:

 /home /etc/auto.home

nyní vytvořte/etc / auto.domácí a vložte následující:

 * solarisbox1.company.com.au,solarisbox2.company.com.au:/export/home/&

Restartujte autofs povolit konfiguraci:

sudo service autofs start

Statické Držáky

Před nastavením držáky, ujistěte se, že adresáře, který bude sloužit jako přípojné body jsou již vytvořeny.

In / etc / fstab, přidat řádky pro akcie, jako jsou:

servername:dir /mntpoint nfs rw,hard,intr 0 0

RW připojí to číst / psát., Je zřejmé, že pokud server sdílí pouze čtení, klient jej nebude moci připojit jako nic víc než to. Pevný připojuje sdílení tak, že pokud server nebude k dispozici, program bude čekat, až bude k dispozici. Alternativa je měkká. intr umožňuje přerušit / zabít proces. V opačném případě vás bude ignorovat. Dokumentaci k nim naleznete v části Možnosti připojení pro NFS man mount.

souborové systémy lze nyní namontovat pomocí mount / mountpoint nebo mount-a pro montáž všeho, co by mělo být namontováno při zavádění.,

poznámky

minimalistické NFS nastavení

výše uvedené kroky jsou velmi komplexní. Minimální počet kroků potřebných k nastavení NFS jsou uvedeny zde:

http://www.ubuntuforums.org/showthread.php?t=249889

Použití Skupiny s NFS Akcií

Při použití skupin na NFS (NFSv2 nebo NFSv3), mějte na paměti, že to nemusí fungovat, pokud je uživatel členem více než 16 skupin. To je způsobeno omezeními protokolu NFS., Více informací najdete na Launchpadu („Oprávnění odepřen, pokud uživatel patří do skupiny, která vlastní skupinu zapisovatelný nebo setgid adresářů připojen pomocí nfs“) a v tomto článku: „Co je to dohoda o 16 id skupiny omezení v NFS?“

IPSec Notes

Pokud používáte IPSec, výchozí příkaz vypnutí v Breezy / Dapper způsobí, že klient visí, protože je vypnutý, protože IPSec se vypne dříve, než NFS., Opravit to udělat:

sudo update-rc.d -f setkey removesudo update-rc.d setkey start 37 0 6 S .

chyba byla podána zde: https://launchpad.net/distros/ubuntu/+source/ipsec-tools/+bug/37536

Odstraňování problémů

Montážní NFS podílů v zašifrované home nebude fungovat na boot

Montážní sdílení NFS uvnitř šifrovaného domovského adresáře bude fungovat pouze poté, co jste úspěšně přihlášeni a váš domov je dešifrovat. To znamená, že použití/etc / fstab pro připojení akcií NFS na boot nebude fungovat-protože váš domov nebyl v době montáže dešifrován., Existuje jednoduchý způsob, jak kolem této Symbolické odkazy:

  • Vytvořit alternativní adresář pro mount NFS podílů v:
$ sudo mkdir /nfs$ sudo mkdir /nfs/music
  • Upravit /etc/fstab mount NFS sdílené položky do adresáře místo:

nfsServer:hudba /nfs/hudba nfs auto 0 0

  • Vytvořit symbolický odkaz uvnitř vašeho domova, což ukazuje na skutečné mount umístění (v našem případě odstraňte „Music“ adresář již existující tam první):
$ rmdir /home/user/Music$ ln -s /nfs/music/ /home/user/Music