Nous montrons dans cette partie comment configurer NFS (v4) pour authentifier les utilisateurs avec Kerberos.
Les tests sont fait sur la machine cas.ifsic.univ-rennes1.fr, sur laquelle on installe le serveur NFS (v4 par défaut).
Configuration du serveur
Editer le fichier de configuration qui donne le mapping des utilisateurs pour tous les services basés sur RPC, dont NFS (/etc/idmapd.conf) :
Domain = ifsic.univ-rennes1.fr Local-Realms = UNIV-RENNES1.FR
Ajouter un principal pour le service NFS :
xxx
Préciser dans le fichier /etc/exports les répertoires à exporter :
/tmp gss/krb5(sync,rw,fsid=0,no_subtree_check,anonuid=65534,anongid=65534)
Editer le fichier /etc/sysconfig/nfs et indiquer que l'on veut utiliser un NFS sécurisé :
SECURE_NFS="yes"
(re)Démarrer les services NFS et rpcidmapd :
Configuration du client
Ajouter dans la keytab du client le principal de root pour pouvoir faire les montages NFS :
[root@clinux ~]# kadmin Authenticating as principal root/admin@UNIV-RENNES1.FR with password. Password for root/admin@UNIV-RENNES1.FR: kadmin: addprinc -randkey root/clinux.ifsic.univ-rennes1.fr WARNING: no policy specified for root/clinux.ifsic.univ-rennes1.fr@UNIV-RENNES1.FR; defaulting to no policy Principal "root/clinux.ifsic.univ-rennes1.fr@UNIV-RENNES1.FR" created. kadmin: ktadd -k /etc/keytab root/clinux.ifsic.univ-rennes1.fr Entry for principal root/clinux.ifsic.univ-rennes1.fr with kvno 3, encryption type AES-256 CTS mode with 96-bit SHA-1 HMAC added to keytab WRFILE:/etc/keytab. Entry for principal root/clinux.ifsic.univ-rennes1.fr with kvno 3, encryption type AES-128 CTS mode with 96-bit SHA-1 HMAC added to keytab WRFILE:/etc/keytab. Entry for principal root/clinux.ifsic.univ-rennes1.fr with kvno 3, encryption type Triple DES cbc mode with HMAC/sha1 added to keytab WRFILE:/etc/keytab. Entry for principal root/clinux.ifsic.univ-rennes1.fr with kvno 3, encryption type ArcFour with HMAC/md5 added to keytab WRFILE:/etc/keytab. Entry for principal root/clinux.ifsic.univ-rennes1.fr with kvno 3, encryption type DES with HMAC/sha1 added to keytab WRFILE:/etc/keytab. Entry for principal root/clinux.ifsic.univ-rennes1.fr with kvno 3, encryption type DES cbc mode with RSA-MD5 added to keytab WRFILE:/etc/keytab. kadmin: exit [root@clinux ~]#
Activer le module rpcsec_gss_krb5 dans le noyau si nécessaire :
[root@clinux ~]# lsmod| grep rpc auth_rpcgss 31232 1 nfs sunrpc 158428 9 nfs,lockd,nfs_acl,auth_rpcgss [root@clinux ~]# modprobe rpcsec_gss_krb5 WARNING: All config files need .conf: /etc/modprobe.d/anaconda, it will be ignored in a future release. [root@clinux ~]# lsmod| grep rpc rpcsec_gss_krb5 8824 0 auth_rpcgss 31232 2 rpcsec_gss_krb5,nfs sunrpc 158428 10 rpcsec_gss_krb5,nfs,lockd,nfs_acl,auth_rpcgss [root@clinux ~]#
Editer le fichier /etc/sysconfig/nfs et indiquer que l'on veut utiliser un NFS sécurisé :
SECURE_NFS="yes"
Démarrer le démon rpcgssd :
[root@clinux ~]# /etc/init.d/rpcgssd status
rpc.gssd is stopped
[root@clinux ~]# chkconfig rpcgssd on
[root@clinux ~]# /etc/init.d/rpcgssd start
Starting RPC gssd: WARNING: All config files need .conf: /etc/modprobe.d/anaconda, it will be ignored in a future release.
[ OK ]
[root@clinux ~]# /etc/init.d/rpcgssd status
rpc.gssd (pid 29697) is running...
[root@clinux ~]#
Effectuer les mêmes modification de /etc/idmapd.conf que sur le serveur et redémarrer le démon rpcidmapd :
[root@clinux ~]# /etc/init.d/rpcidmapd restart Stopping RPC idmapd: [ OK ] Starting RPC idmapd: [ OK ] [root@clinux ~]
Monter à la main les répertoires :
[root@clinux ~]# mount -t nfs4 -osec=krb5 cas.ifsic.univ-rennes1.fr:/ /mnt [root@clinux ~]#
Pour un montage automatique des répertoires, modifiers le fichier /etc/fstab :
cas.ifsic.univ-rennes1.fr:/ /mnt nfs4 sec=krb5