CAS et Kerberos
Pages enfant
  • Passage de l'authentification Kerberos à NFS (v4) (archive)

Comparaison des versions

Légende

  • Ces lignes ont été ajoutées. Ce mot a été ajouté.
  • Ces lignes ont été supprimées. Ce mot a été supprimé.
  • La mise en forme a été modifiée.
Commentaire: Migrated to Confluence 5.3

...

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

...

Editer configuration qui donne le mapping des utilisateurs pour tous les services basés sur RPC, dont NFS (/etc/samba/smbidmapd.conf comme suit ) :

Bloc de code
[global]
   use kerberos keytab = yes
   realm Domain = univ-rennes1.fr
Local-Realms = UNIV-RENNES1.FR
   security = ADS
   log file = /var/log/samba/log.%m
   max log size = 50
   log level = 3
   hosts allow = 148.60.10. 127.

[tmp]
   comment = Temporary file space
   path = /tmp
   read only = no
   public = yes

Configuration Kerberos

Il faut à la fois déclarer le client (host, déjà fait précédemment) et le service SMB (cifs) :

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
Bloc de code
[root@cas ~]# 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/krb5.keytab nfsroot/casclinux.ifsic.univ-rennes1.fr
Entry for principal nfsroot/casclinux.ifsic.univ-rennes1.fr with kvno 43, encryption type AES-256 CTS mode with 96-bit SHA-1 HMAC added to keytab WRFILE:/etc/krb5.keytab.
Entry for principal nfsroot/casclinux.ifsic.univ-rennes1.fr with kvno 43, encryption type AES-128 CTS mode with 96-bit SHA-1 HMAC added to keytab WRFILE:/etc/krb5.keytab.
Entry for principal nfsroot/casclinux.ifsic.univ-rennes1.fr with kvno 43, encryption type Triple DES cbc mode with HMAC/sha1 added to keytab WRFILE:/etc/krb5.keytab.
Entry for principal nfsroot/casclinux.ifsic.univ-rennes1.fr with kvno 43, encryption type ArcFour with HMAC/md5 added to keytab WRFILE:/etc/krb5.keytab.
Entry for principal nfsroot/casclinux.ifsic.univ-rennes1.fr with kvno 43, encryption type DES with HMAC/sha1 added to keytab WRFILE:/etc/krb5.keytab.
Entry for principal nfsroot/casclinux.ifsic.univ-rennes1.fr with kvno 43, encryption type DES cbc mode with RSA-MD5 added to keytab WRFILE:/etc/krb5.keytab.
kadmin:  exit
[root@cas ~]#  

Le fichier /etc/krb5.conf du serveur samba ne doit pas permettre l'usage du chiffrement 3DES. Le fichier /etc/krb5.conf du serveur kerberos doit être répliqué sur tous les principaux de services (HTTP, cifs, ...).

Tests

Clients Windows

...

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

...

Clients linux

:/ /mnt
[root@clinux ~]# 

Pour un montage automatique des répertoires, modifiers le fichier /etc/fstab :

Bloc de code

mount -t cifs étant réservé à l'utilisateur root, on valide le passage de l'authentification Kerberos avec smbclient en utilisant l'option -k :

Bloc de code
[paubry@clinux ~]$ smbclient //cas.ifsic.univ-rennes1.fr:/ /mnt nfs4 sec=krb5 
Astuce
titleInstallation Gentoo

Installer le package nfs-utils avec l'option kerberos:

Bloc de code
USE="kerberos" emerge nfs-utils

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    tmp -k
Domain=[WORKGROUP] OS=[Unix] Server=[Samba 3.4.2-47.fc12]
smb: \> ls
  .                dc=univ-rennes1,dc=fr
ldap.base.passwd             ou=people,dc=univ-rennes1,dc=fr
ldap.enable      D        0  Fri Jan 22 15:25:32 2010
  ..   on
ldap.minimum_bind_level      anonymous
ldap.port                    389
ldap.servers           DR      ldapglobal.univ-rennes1.fr
ldap.servers.preferred  0  Fri Jan 15 15:15:44 2010
  [...]
		36048 blocks of size 2097152. 32054 blocks available
smb: \> exit
[paubry@clinux ~]$  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.