NFS v3 server configuratie
-
Upload
frederik-vos -
Category
Documents
-
view
221 -
download
0
description
Transcript of NFS v3 server configuratie
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 file-server in CentOS 6.x of andere RedHat compatible distributie.
Naast het configureren van de aan te bieden shares, zal in dit document ookaandacht worden geschonken aan beveiliging. Als het echt veilig moet zijn, ishet beter om te kiezen voor NFS v4, maar deze nieuwere versie van het NFSprotocol 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 ookde benodigdheden voor versie 4 aanwezig.
1http://issuu.com/inktvis75/docs/jeos-centos
4 FIREWALL CONFIGURATIE
3. Service starten
Omdat alles al geïnstalleerd is, kan de NFS server gestart worden. Controleereerst 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 wordttijdens het booten van Linux:
chkconfig rpcbind onchkconfig nfs on
4. Firewall configuratie
NFS is firewall-technisch geen eenvoudig verhaal: wanneer je de default in-stellingen gebruikt, is er een portmapper service (rpcbind) die dan dynamischpoorten 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 voorde volgende regels:
RQUOTAD_PORT=875LOCKD_TCPPORT=32803LOCKD_UDPPORT=32769MOUNTD_PORT=892STATD_PORT=662STATD_OUTGOING_PORT=2020
Vervolgens kunnen alle benodigde firewall poorten worden opengezet:
lokkit -p 111:tcplokkit -p 111:udplokkit -p 2049:tcplokkit -p 2049:udplokkit -p 875:tcplokkit -p 875:udplokkit -p 32803:tcplokkit -p 32769:udplokkit -p 892:tcplokkit -p 892:udplokkit -p 662:tcplokkit -p 662:udplokkit -p 2020:tcplokkit -p 2020:udplokkit --update
2
5 FILE SHARE
Dit levert in het bestand /etc/sysconfig/iptables de volgende regels op:
-A INPUT -m state --state NEW -m udp -p udp --dport 111 -j ACCEPT-A INPUT -m state --state NEW -m tcp -p tcp --dport 111 -j ACCEPT-A INPUT -m state --state NEW -m udp -p udp --dport 875 -j ACCEPT-A INPUT -m state --state NEW -m tcp -p tcp --dport 875 -j ACCEPT-A INPUT -m state --state NEW -m tcp -p tcp --dport 892 -j ACCEPT-A INPUT -m state --state NEW -m udp -p udp --dport 892 -j ACCEPT-A INPUT -m state --state NEW -m tcp -p tcp --dport 662 -j ACCEPT-A INPUT -m state --state NEW -m udp -p udp --dport 662 -j ACCEPT-A INPUT -m state --state NEW -m tcp -p tcp --dport 2020 -j ACCEPT-A INPUT -m state --state NEW -m udp -p udp --dport 2020 -j ACCEPT-A INPUT -m state --state NEW -m tcp -p tcp --dport 2049 -j ACCEPT-A INPUT -m state --state NEW -m udp -p udp --dport 2049 -j ACCEPT-A INPUT -m state --state NEW -m tcp -p tcp --dport 32803 -j ACCEPT-A INPUT -m state --state NEW -m udp -p udp --dport 32769 -j ACCEPT
Vergeet wanneer je dit bestand manueel aanpast niet daarna nog de firewall teherstarten:
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 entryopnemen:
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 NFSprotocol:
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 wild-cards 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 gebrui-ker+groep van het account nfsnobody. De remote gebruiker root mag geenroot-rechten krijgen, maar worden gemapped naar deze id’s. Om dit mecha-nisme te laten werken moeten er ook nog aanpassingen gemaakt worden in hetbestand: /etc/idmapd.conf:
[Mapping]Nobody-User = nfsnobodyNobody-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 show-mount of alles werkt, uiteraard 127.0.0.1 dan vervangen door het ip adres vande NFS server.
6. Mounten
Mount op een andere Linux installatie nu de share, dit moet als root!
sudo -smkdir /mnt/nfstestmount -t nfs server:/export/share1 /mnt/nfstestcd /mnt/nfstest
Vervolgens controleren of de mapping naar nfsnobody functioneert:
touch testls -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 tekunnen lezen en schrijven op deze share. Een methode is om een 777 te zettenop de directory, maar een andere methode zou kunnen zijn om een groep nf-susers aan te maken op zowel client als server. Hierbij is het belangrijk dat degroup-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 nfsuserstouch /mnt/nfstest/test3
Maak een een gebruiker lid van deze groep en test opnieuw:
usermod -aG nfsusers gebruikersu gebruikertouch /mnt/fnstest/test4
8. Auteur
Dit document is geschreven door Frederik Vos, werkzaam als Senior TechnicalTrainer bij XTG.
5