NFS v3 server configuratie

Page 1

Configuratie NFS v3 file-server Frederik Vos

Inhoudsopgave 1 Inleiding

1

2 Benodigdheden

1

3 Service starten

2

4 Firewall configuratie

2

5 File share

3

6 Mounten

4

7 Read/Write voor gebruikers

5

8 Auteur

5

1. Inleiding Dit document beschrijft de installtie en configuratie van een NFS versie 3 fileserver in CentOS 6.x of andere RedHat compatible distributie. Naast het configureren van de aan te bieden shares, zal in dit document ook aandacht worden geschonken aan beveiliging. Als het echt veilig moet zijn, is het beter om te kiezen voor NFS v4, maar deze nieuwere versie van het NFS protocol wordt niet door elke NFS client ondersteund.

2. Benodigdheden Als basis gebruiken we de installatie zoals beschreven is in het document: “CentOS als VMware JeOS Appliance”1 . Optioneel kun je de metagroup “NFS file server” installeren, daarmee zijn ook de benodigdheden voor versie 4 aanwezig. 1 http://issuu.com/inktvis75/docs/jeos-centos


4

FIREWALL CONFIGURATIE

3. Service starten Omdat alles al ge誰nstalleerd is, kan de NFS server gestart worden. Controleer eerst of de service rpcbind gestart is: service rpcbind status Als dat het geval is, kan de nfs server gestart worden: service nfs start Zo niet: service rpcbind start En moet er nog voor worden zorg gedragen dat de NFS service gestart wordt tijdens het booten van Linux: chkconfig rpcbind on chkconfig nfs on 4. Firewall configuratie NFS is firewall-technisch geen eenvoudig verhaal: wanneer je de default instellingen gebruikt, is er een portmapper service (rpcbind) die dan dynamisch poorten toewijst bij de start van de NFS server. Gelukkig is dit gedrag te veranderen in statische poorten. Open het bestand /etc/sysconfig/nfs in een editor en haal het commentaar teken (#) weg voor de volgende regels: RQUOTAD_PORT=875 LOCKD_TCPPORT=32803 LOCKD_UDPPORT=32769 MOUNTD_PORT=892 STATD_PORT=662 STATD_OUTGOING_PORT=2020

Vervolgens kunnen alle benodigde firewall poorten worden opengezet: lokkit lokkit lokkit lokkit lokkit lokkit lokkit lokkit lokkit lokkit lokkit lokkit lokkit lokkit lokkit

-p 111:tcp -p 111:udp -p 2049:tcp -p 2049:udp -p 875:tcp -p 875:udp -p 32803:tcp -p 32769:udp -p 892:tcp -p 892:udp -p 662:tcp -p 662:udp -p 2020:tcp -p 2020:udp --update 2


5

FILE SHARE

Dit levert in het bestand /etc/sysconfig/iptables de volgende regels op: -A -A -A -A -A -A -A -A -A -A -A -A -A -A

INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT

-m -m -m -m -m -m -m -m -m -m -m -m -m -m

state state state state state state state state state state state state state state

--state --state --state --state --state --state --state --state --state --state --state --state --state --state

NEW NEW NEW NEW NEW NEW NEW NEW NEW NEW NEW NEW NEW NEW

-m -m -m -m -m -m -m -m -m -m -m -m -m -m

udp tcp udp tcp tcp udp tcp udp tcp udp tcp udp tcp udp

-p -p -p -p -p -p -p -p -p -p -p -p -p -p

udp tcp udp tcp tcp udp tcp udp tcp udp tcp udp tcp udp

--dport --dport --dport --dport --dport --dport --dport --dport --dport --dport --dport --dport --dport --dport

111 -j ACCEPT 111 -j ACCEPT 875 -j ACCEPT 875 -j ACCEPT 892 -j ACCEPT 892 -j ACCEPT 662 -j ACCEPT 662 -j ACCEPT 2020 -j ACCEPT 2020 -j ACCEPT 2049 -j ACCEPT 2049 -j ACCEPT 32803 -j ACCEPT 32769 -j ACCEPT

Vergeet wanneer je dit bestand manueel aanpast niet daarna nog de firewall te herstarten: service iptables restart Eventueel zou je de aangemaakte regels nog wat stricter kunnen configureren, bijvoorbeeld door alleen verkeer vanaf een bepaald subnet toe te laten: -A INPUT s 192.168.1.0/24 -m state...

Aanvullend kun je dan in het bestand /etc/hosts.allow de volgende entry opnemen: portmap:192.168.1.0.

Herstart na deze wijzingen de NFS server: service nfs restart En controleer of alle services op juiste poort draaien met: rpcinfo -p 127.0.0.1

5. File share Als allereerste maken we de directory aan die we willen sharen via het NFS protocol: mkdir -p /export/share1 En veranderen de eigenaar van deze directories van root naar nfsnobody: chown -R nfsnobody:nfsnobody /export/share1 Vervolgens maken we de shares aan in het bestand /etc/exports /export/share1 *(rw,sync,anonuid=65534,anongid=65534)

Uiteraard kunnen we ook hier de toegang beperken tot een bepaald subnet: vervang dan het * door bijvoorbeeld 192.168.1.0/255.255.255.0, je kunt ook 3


6

MOUNTEN

1 specifiek ip adres gebruiken of op hostnames filteren (incl. gebruik van wildcards bijv: *.example.com). Verder kan toegang in plaats van read/write (rw) ook aangepast worden naar (ro). In de bestanden /etc/passwd en /etc/group is de id bepaald van de gebruiker+groep van het account nfsnobody. De remote gebruiker root mag geen root-rechten krijgen, maar worden gemapped naar deze id’s. Om dit mechanisme te laten werken moeten er ook nog aanpassingen gemaakt worden in het bestand: /etc/idmapd.conf: [Mapping] Nobody-User = nfsnobody Nobody-Group = nfsnobody

Herstart nu de rcpimapd service: service rpcidmapd restart Bij wijzigen in het bestand /etc/exports moeten de shares altijd opnieuw geĂŤporteerd worden: exportfs -ra Controleer het resultaat met: showmount -e 127.0.0.1 Controleer vervolgens vanaf een andere Linux-installatie eveneens met showmount of alles werkt, uiteraard 127.0.0.1 dan vervangen door het ip adres van de NFS server.

6. Mounten Mount op een andere Linux installatie nu de share, dit moet als root! sudo -s mkdir /mnt/nfstest mount -t nfs server:/export/share1 /mnt/nfstest cd /mnt/nfstest Vervolgens controleren of de mapping naar nfsnobody functioneert: touch test ls -al test De output zou er als volgt uit moeten zien: -rw-r--r--.

1 nfsnobody nfsnobody

0 Aug 11 16:00 test

Controleer ook of de gebruiker nfsnobody kan schrijven: sudo -u nfsnobody touch test2 Op dezelfde manier controleren of andere gebruikers niet kunnen schrijven! 4


8

AUTEUR

7. Read/Write voor gebruikers Er zijn meerdere manieren om gebruikers voldoende rechten te geven om te kunnen lezen en schrijven op deze share. Een methode is om een 777 te zetten op de directory, maar een andere methode zou kunnen zijn om een groep nfsusers aan te maken op zowel client als server. Hierbij is het belangrijk dat de group-id aan client en server kant identiek is. groupadd -g 200 nfsusers Op de share nu de rechten aanpassen voor deze groep: setfacl -R -m "g:nfsusers:rwx" /export/share1 Testen op de client machine: newgrp nfsusers touch /mnt/nfstest/test3 Maak een een gebruiker lid van deze groep en test opnieuw: usermod -aG nfsusers gebruiker su gebruiker touch /mnt/fnstest/test4

8. Auteur Dit document is geschreven door Frederik Vos, werkzaam als Senior Technical Trainer bij XTG.

5


Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.