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).
La dernière partie montre al configuration d'un filer NetApp.
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) :
Bloc de code |
---|
Domain = univ-rennes1.fr Local-Realms = UNIV-RENNES1.FR |
Ajouter un principal pour le service NFS (nfs/cas.ifsic.univ-rennes1.fr) et l'ajouter au fichier /etc/krb5.keytab.
Préciser dans le fichier /etc/exports les répertoires à exporter :
Bloc de code |
---|
/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é :
Bloc de code |
---|
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 :
Bloc de code |
---|
[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 :
Bloc de code |
---|
[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 ~]# |
*Ajouter ici comment insérer le module à chaque redémarrage.
Editer le fichier /etc/sysconfig/nfs et indiquer que l'on veut utiliser un NFS sécurisé :
Bloc de code |
---|
SECURE_NFS="yes" |
Démarrer le démon rpcgssd :
Bloc de code |
---|
[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 :
Bloc de code |
---|
[root@clinux ~]# /etc/init.d/rpcidmapd restart Stopping RPC idmapd: [ OK ] Starting RPC idmapd: [ OK ] [root@clinux ~] |
Monter à la main les répertoires :
Bloc de code |
---|
[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 :
Bloc de code |
---|
cas.ifsic.univ-rennes1.fr:/ /mnt nfs4 sec=krb5 |
Astuce | ||
---|---|---|
| ||
Installer le package nfs-utils avec l'option kerberos:
|
Configuration NFS v4 avec un filer NetApp
Créer le principal du service nfs (nfs/netapp.univ-rennes1.fr) en utilisant l'option -e des_cbc_crc:normal (le seul chiffrement compris par NetApp), l'exporter dans Unix_krb5.keytab (toujours avec l'option -e des_cbc_crc:normal), puis copier ce fichier dans la hiérarchie /etc du filer (après un montage NFS v3 par exemple ou un FTP).
Executer nfs setup sur le filer, en spécifiant que l'on s'appuie sur un KDC Unix.
Lors de l'ajout d'un partage, spécifier krb5 dans le paramètre SECURITY (égal à sys par défaut).
Enfin, la récupération des identités des utilisateurs doit être configuré de la manière suivante :
Bloc de code |
---|
ldap.base dc=univ-rennes1,dc=fr ldap.base.passwd ou=people,dc=univ-rennes1,dc=fr ldap.enable on ldap.minimum_bind_level anonymous ldap.port 389 ldap.servers ldapglobal.univ-rennes1.fr ldap.servers.preferred ldapglobal.univ-rennes1.fr ldap.usermap.attribute.unixaccount uid ldap.usermap.attribute.windowsaccount uid ldap.usermap.enable on |
Les principals root/client.ifsic.univ-rennes1.fr doivent également être créés (et exportés dans le /etc/krb5.keytab des clients) en utilisant l'option -e des_cbc_crc:normal.