Difference between revisions of "NFS"
(→NFS-client aanmaken) |
(→NFS-client aanmaken) |
||
Line 127: | Line 127: | ||
semodule -i nfs-audit7.pp | semodule -i nfs-audit7.pp | ||
</pre> | </pre> | ||
+ | Om op te ruimen kan je daarna de .pp en .te bestanden verwijderen. |
Revision as of 20:54, 11 March 2013
NFS is een acronym voor Network File System, een manier om partities over een netwerk te mounten. Binnen A–Eskwadraat gebruiken we dit om de volgende partities te delen tussen de workstations:
- `/archief`
- `/backup`
- `/home`
- `/scratch`
- `/srv/http` (zie Apache)
- `/srv/vm-images` (zie Windows)
- `/usr/local`
- `/var/mail`
Hiervan worden `/home` en `/var/mail` op quota gemonitord.
NFS met Kerberos maken
NFS-server aanmaken
De eerste stap die gedaan moet worden is dat op de ipa-server het volgende commando moet worden uitgevoerd:
ipa service-add nfs/<ipa-server-addres>
(Als root): Zorg dat de volgende packages geïnstalleerd zijn op de nfs-server: rpcbind nfs-utils nfs-utils-lib. Zo niet:
yum install rpcbind nfs-utils nfs-utils-lib
Zorg er vervolgens voor dat nfs, nfslock en rpcbind als deamons goed worden gestart:
chkconfig --level 35 nfs on chkconfig --level 35 nfslock on chkconfig --level 35 rpcbind on
Start dan de deamons:
service rpcbind start service nfslock start service nfs start
Vervolgens moeten de juiste poorten in de firewall opengezet worden:
- TCP/UDP 111: voor de portmapper
- TCP 2049: voor NFSD
en verander het volgende in /etc/sysconf/nfs:
LOCKD_TCPPORT=32803 LOCKD_UDPPORT=32769 MOUNTD_PORT=892 RQUOTAD_PORT=875 STATD_PORT=662 STATD_OUTGOING_PORT=2020
en zet het volgende in /etc/sysconf/iptables:
-A INPUT -m state --state NEW -p tcp --dport 32803 -j ACCEPT -A INPUT -m state --state NEW -p udp --dport 32769 -j ACCEPT -A INPUT -m state --state NEW -p tcp --dport 892 -j ACCEPT -A INPUT -m state --state NEW -p udp --dport 892 -j ACCEPT -A INPUT -m state --state NEW -p tcp --dport 875 -j ACCEPT -A INPUT -m state --state NEW -p udp --dport 875 -j ACCEPT -A INPUT -m state --state NEW -p tcp --dport 662 -j ACCEPT -A INPUT -m state --state NEW -p udp --dport 662 -j ACCEPT
Restart iptables en nfs:
service iptables restart service nfs resatr
In het bestand /etc/exports staan alle directories die je via nfs wilt delen. Voeg voor iedere dir die je wilt delen de volgende regels aan /etc/exports toe:
*path-to-dir* *(rw,fsid=0,insecure,no_subtree_check,no_root_squash) *path-to-dir* gss/krb5(rw,fsid=0,insecure,no_subtree_check) *path-to-dir* gss/krb5i(rw,fsid=0,insecure,no_subtree_check) *path-to-dir* gss/krb5p(rw,fsid=0,insecure,no_subtree_check)
Zet ook het volgende in /etc/sysconfig/nfs:
SECURE_NFS=yes
Restart de deamons:
service rpcbind restart service nfs restart
en vanwege de secure_nfs:
chkconfig rpcsvcgssd; service rpcsvcgssd restart
NFS-client aanmaken
(Als root:) Zorg ervoor dat de juiste package zijn geïnstalleerd:
yum install nfs-utils nfs-utils-lib
Zorg ervoor dat de nfs- en rpcbinddaemons zijn gestart:
service rpcbind start service nfs start chkconfig rpcbind on chkconfig nfs on
Nu kan je de map mounten:
mount <NFS-SERVER-IP>:<DIR> <MOUNTDIR>
Ook kan je de nfs automatisch laten mounten bij startup door de volgende regel toe te voegen in /etc/fstab:
<NFS-SERVER-IP>:<DIR> <MOUNTDIR> nfs4 rw,noatime,context="selinuxcontext" 0 0
Als je wilt zorgen dat homedirs automatisch op de client worden aangemaakt als een user voor de eerste keer inlogt moet je een aantal selinux-policies met de hand toevoegen. Voer het volgende uit (let op, voor audit2allow heb je policycoreutils-python nodig):
echo "type=AVC msg=audit(1362752162.919:44): avc: denied { associate } for pid=1803 comm="mkhomedir" name="root" \ scontext=unconfined_u:object_r:user_home_dir_t:s0 tcontext=system_u:object_r:home_root_t:s0 tclass=filesystem" | audit2allow -M nfs-audit1 echo "type=AVC msg=audit(1362752477.581:55): avc: denied { setattr } for pid=1847 comm="mkhomedir" name="root" dev=0:14 ino=25952257 \ scontext=unconfined_u:unconfined_r:oddjob_mkhomedir_t:s0-s0:c0.c1023 tcontext=system_u:object_r:home_root_t:s0 tclass=dir" | audit2allow -M nfs-audit2 echo "type=AVC msg=audit(1362752477.582:56): avc: denied { rmdir } for pid=1847 comm="mkhomedir" name="loostrum" dev=0:14 ino=25952257 \ scontext=unconfined_u:unconfined_r:oddjob_mkhomedir_t:s0-s0:c0.c1023 tcontext=system_u:object_r:home_root_t:s0 tclass=dir" | audit2allow -M nfs-audit3 echo "type=AVC msg=audit(1362752777.335:83): avc: denied { create } for pid=1892 comm="mkhomedir" name=".bash_profile" \ scontext=unconfined_u:unconfined_r:oddjob_mkhomedir_t:s0-s0:c0.c1023 tcontext=unconfined_u:object_r:home_root_t:s0 tclass=file" | audit2allow -M nfs-audit4 echo "type=AVC msg=audit(1362752938.945:91): avc: denied { write open } for pid=1911 comm="mkhomedir" name=".bash_profile" dev=0:14 \ ino=25952258 scontext=unconfined_u:unconfined_r:oddjob_mkhomedir_t:s0-s0:c0.c1023 tcontext=system_u:object_r:home_root_t:s0 tclass=file" | audit2allow -M nfs-audit5 echo "type=AVC msg=audit(1362753117.946:99): avc: denied { setattr } for pid=1933 comm="mkhomedir" name=".bash_profile" \ dev=0:14 ino=25952258 scontext=unconfined_u:unconfined_r:oddjob_mkhomedir_t:s0-s0:c0.c1023 tcontext=system_u:object_r:home_root_t:s0 tclass=file" | audit2allow -M nfs-audit6 echo "type=AVC msg=audit(1362753117.947:100): avc: denied { unlink } for pid=1933 comm="mkhomedir" name=".bash_profile" \ dev=0:14 ino=25952258 scontext=unconfined_u:unconfined_r:oddjob_mkhomedir_t:s0-s0:c0.c1023 tcontext=system_u:object_r:home_root_t:s0 tclass=file" | audit2allow -M nfs-audit7 semodule -i nfs-audit1.pp semodule -i nfs-audit2.pp semodule -i nfs-audit3.pp semodule -i nfs-audit4.pp semodule -i nfs-audit5.pp semodule -i nfs-audit6.pp semodule -i nfs-audit7.pp
Om op te ruimen kan je daarna de .pp en .te bestanden verwijderen.