Nfs

Uit Linuxdocs.nl
Ga naar: navigatie, zoeken

Linux computers via netwerk aan elkaar koppelen via NFS

Door: Michaell Bakker
Aangevuld door:Laurens
Versie: 09-06-2009 + 06-12-2011
Website: www.linuxdocs.nl


Inleiding:

Net zoals Microsoft Windows is het ook met Linux mogelijk om schijven en/of mappen te delen met andere Linux computers.
Dit kan met Linux op 2 manieren:

  1. Via NFS
  2. Via CIFS of het inmiddels verouderde SMB

Wat is NFS:

NFS staat voor Network FileSystem en lijkt erg op het bestanddelen van Windows.

Met NFS kun je op de server een map delen die op andere Linux computers te benaderen is.
Je kan deze mappen ook beveiligen zodat je b.v. vanaf deze bron alleen kan lezen, of niet kan uitvoeren.
Ook kun je bepalen op basis van IP-adres/netwerk of iemand iets wel of niet mag.

Het opzetten van de server

Elke computer die zijn Linux schijven en bestanden wil gaan delen met de rest moet de NFS server gaan starten. En zoals velen servers op een Linux machine moeten we een aantal services gaan starten. Maar voordat we zover zijn gaan we eerst beginnen met de configuratie.

Het enige wat we eigenlijk nog moeten doen bij Linux; is het toevoegen van toegelaten cliënten en hun opties in het bestand /etc/exports.

Als we het bestand /etc/exports gaan openen met een editor zoals emacs of VI dan zal het bestand meestal gewoon leeg zijn maar vergis je niet, dit nog lege bestand is van groot belang voor NFS.

[root@michaell.nl root]# vi /etc/exports

In dit bestand moet je alle toegelaten computers of netwerken plaatsen die toegang mogen krijgen. Dit gaat op de volgende wijze:
(gedeelde dir) (computer) (optie) (computer2) (optie)

(gedeelde dir) is de directory die op de server gedeeld moet worden
(computer) is de NFS Cliënt
(optie) dit kan een van de volgende opties zijn:

<lo>

  • ro: deze directory is gedeeld als "alleen lezen"
  • rw deze directory is gedeeld als "lezen en schrijven"
  • no_root_squash: Indien de systeembeheerder "root" zich wil aanmelden, zal op de NFS server deze gebruiken van zijn rechten worden ontnomen. Op de server zal "root" de gebruiker "nobody" worden.
  • no_subtree_check: De server zal bij aanmelden niet eerst alle bestanden en mappen gaan doorzoeken. Dit versneld het aanmelden.
  • </lo>

    In dit voorbeeld gaan we de NFS server opzetten voor 2 werkstations. Deze hebben IPnr 192.168.0.1 en 192.168.0.2 die we graag toegang willen geven tot 2 gedeelde mappen op de server. Dan kan het bestand /etc/exports er b.v. zo uitzien.

    /mnt/linux 192.168.0.1(rw) 192.168.0.2(ro)
    /home 192.168.0.1(rw) 192.168.0.2(rw)

    Indien je een groot netwerk hebt, kan je het bestand ook zo inrichten:

    /mnt/linux 192.168.0.0/255.255.255.0(ro)
    /home      192.168.0.0/255.255.255.0(rw)

    Dit laat dan alle PC's met IPreeks 192.168.0.x met netmask 255.255.255.0 toe. Het is ook mogelijk om in plaats van IP-adressen hostnamen te gebruiken zoals b.v. michaell.nl.

    Let op!!

    Maak bij NFS geen gebruik van HDD's die het bestandssysteem FAT12, FAT16 of FAT32 hebben.
    FAT is namelijk niet gemaakt voor een multi-user OS en kan dus voor problemen zorgen met de beveiliging.

    De beveiliging

    Het is natuurlijk niet de bedoeling dat iedereen zo meteen door jouw gedeelde mappen komt browsen als de service eenmaal gestart is. Hiervoor maken we weer trouw gebruik van chmod.

    De NFS server zal eerst naar de rechten kijken van het bestandssysteem. Pas daarna zullen de rechten zoals opgegeven in /etc/exports toegepast worden.

    Geef dus als root de juiste rechten over elke map die je wilt delen en alle sub mappen daaronder.
    Indien je niet helemaal weet hoe chmod werkt, raad ik aan onze chmod handleiding er even bij te pakken.

    Het starten van de server

    Geef de volgende opdrachten in deze volgorde aan het systeem als root:

    [root@michaell.nl root]# /etc/rc.d/init.d/nfs start

    Met dit script worden alle bijbehorende services gestart en is de server klaar.

    De werkstations

    De werkstations zijn feitelijk klaar. Je hoeft alleen even een map aan te maken in /mnt en de gedeelde map dav de server eraan te koppelen. Dit gaat als volgt:

    [root@michaell.nl root]# mkdir /mnt/nfs

    Om nu de map /mnt/linux van de server te mounten in jouw /mnt/nfs map geef je de volgende opdracht:

    [root@michaell.nl root]# mount 192.168.0.3:/mnt/linux /mnt/nfs

    (waarbij 192.168.0.3 het IPnr van de server is)

    En dat is alles.
    Om de dir te umounten geef je het commando "umount /mnt/nfs" op de cliënt
    Mocht je niet kunnen schrijven in de dir omdat je de error Permission Denied krijgt terwijl je wel de optie rw in /etc/exports hebt staan, dan moet je op de server even de map /mnt/linux de juiste rechten geven met chmod.

    Extra beveiliging, serverzijde

    De te delen gegevens kunnen ook in de server en de cliënt worden vastgelegd. Hieronder eerst de serverkant, te beginnen met /etc/hosts.*.

    /etc/hosts.deny

    portmap:                ALL
    lockd:                  ALL
    mountd:                 ALL
    rquotad:                ALL
    statd:                  ALL

    /etc/hosts.allow

    portmap:                ip_adres_of_hostnaam_1 , ip_adres_of_hostnaam_2 , ip_adres_of_hostnaam_3
    lockd:                  ip_adres_of_hostnaam_1 , ip_adres_of_hostnaam_2 , ip_adres_of_hostnaam_3
    mountd:                 ip_adres_of_hostnaam_1 , ip_adres_of_hostnaam_2 , ip_adres_of_hostnaam_3
    rquotad:                ip_adres_of_hostnaam_1 , ip_adres_of_hostnaam_2 , ip_adres_of_hostnaam_3
    statd:                  ip_adres_of_hostnaam_1 , ip_adres_of_hostnaam_2 , ip_adres_of_hostnaam_3

    Nu kunnen enkel de toegestane machines de gedeelde mappen aankoppelen.

    Permanente verbindingen, clientzijde

    Voor de client geldt enkel het instellen van /etc/fstab.

    Dit gaat erg eenvoudig. Voeg simpel een regel toe zoals hieronder:

    ip_adres_of_hostnaam:/te_delen_map                  /te_mounten_map              nfs             defaults,rw                 0       0

    rw indien volledige toegang, en ro indien deze map enkel bedoeld is om te lezen.



    How-TO's | Hoofdpagina | Linux Nieuws | Externe links | Help