NFSv4 - RHEL 5.3
Ce document décrit comment configurer un client RHEL pour faire du NFSv4 avec authentification Kerberos sur un NAS et un Active Directory de test. Les éléments de l'infrastructure de tests sont les suivants :
Elément
|
Nom IP
|
Adresse IP |
Domain controler |
ad-nfsv4.sds.ch |
128.178.109.188 |
Serveur NFSv4 |
nastest3p.sds.ch |
128.178.102.4 |
La configuration fournie ci-dessous est fonctionnelle mais peut-être pas optimale.
Date et heure :
Contrôler que la date et l'heure soient corrects et redémarrer la machine si nécessaire.
Création des utilisateurs :
L'idéal (mais ce n'est pas obligatoire) est d'avoir, sur la machine client, des utilisateurs portant les mêmes noms que ceux qui sont dans AD et qui seront utilisés pour accéder aux données. Dans notre infrastructure de test, 2 utilisateurs ont été crées dans SDS.CH :
Utilisateur
|
Mot de passe |
user1 |
P4ssw0rd |
user2 |
P4ssw0rd |
Installation des packages nécessaires à NFSv4 :
Pour pouvoir faire du NFSv4, certains packages sont nécessaire, ceux-ci sont les suivants :
- nfs-utils
- portmap
- krb5-libs
- krb5-workstation
- krb5-auth-dialog
- pam_krb5
- libgssapi
Configuration DNS :
Pour que cela fonctionne, il faut faire en sorte d'interroger le DNS de l'Active Directory de test. Le fichier /etc/resolv.conf doit donc avoir le contenu suivant.
/etc/resolv.conf
search sds.ch
nameserver 128.178.109.188 |
En plus de /etc/resolv.conf, il y a également le fichier /etc/sysconfig/networking/devices/ifcfg-eth0 à modifier.
/etc/sysconfig/networking/devices/ifcfg-eth0
DEVICE=eth0
BOOTPROTO=none
BROADCAST=128.178.109.255
HWADDR=00:50:56:88:49:97
IPADDR=128.178.109.189
NETMASK=255.255.255.0
NETWORK=128.178.109.0
ONBOOT=yes
DNS1=128.178.109.188
SEARCH="sds.ch"
NM_CONTROLLED=yes
GATEWAY=128.178.109.1
TYPE=Ethernet
USERCTL=no
PEERDNS=yes
IPV6INIT=no |
Configuration de /etc/hosts :
Il faut ajouter une ligne dans le fichier pour faire en sorte d'associer l'IP du serveur NFSv4 avec son nom IP dans le domaine SDS.CH et nom dans EPFL.CH
/etc/hosts (remplacer <client> par le nom de votre client et <yourClientIP> par l'IP)
# Do not remove the following line, or various programs
# that require network functionality will fail.
<yourClientIP> <client>.sds.ch <client>
127.0.0.1 localhost.localdomain localhost
128.178.102.4 nastest3p.sds.ch nastest3p
|
Configuration Kerberos :
C'est ici que l'on va dire quel est le domaine dans lequel on va travailler et quels sont les DC à contacter.
/etc/krb5.conf
[logging]
default = FILE:/var/log/krb5libs.log
kdc = FILE:/var/log/krb5kdc.log
admin_server = FILE:/var/log/kadmind.log
[libdefaults]
default_realm = SDS.CH
dns_lookup_realm = false
dns_lookup_kdc = false
ticket_lifetime = 24h
forwardable = yes
default_keytab_name = FILE:/etc/krb5.keytab
default_tkt_enctypes = des-cbc-crc
default_tgs_enctypes = des-cbc-crc
permitted_enctypes = des3-cbc-sha1 arcfour-hmac aes256-cts des-cbc-md5 des-cbc-crc arcfour-hmac-exp
[realms]
SDS.CH = {
kdc = ad-nfsv4.sds.ch:88
admin_server = ad-nfsv4.sds.ch:749
default_domain = sds.ch
}
[domain_realm]
.sds.ch = SDS.CH
sds.ch = SDS.CH
[appdefaults]
pam = {
debug = false
ticket_lifetime = 36000
renew_lifetime = 36000
forwardable = true
krb4_convert = false
}
|
Configuration de Samba :
Editer le fichier de configuration /etc/samba/smb.conf et modifier les lignes suivantes :
security = ADS
realm = SDS.CH
workgroup = SDS |
Configuration NFS :
Vu que l'on veut faire du NFSv4 avec Kerberos, il faut le dire au système. Pour ce faire, il faut éditer le fichier /etc/sysconfig/nfs et modifier les lignes suivantes :
# Set to turn on Secure NFS mounts.
SECURE_NFS="yes" |
Démarrage du deamon pour la sécurité :
/etc/init.d/rpcgssd start
Starting RPC gssd: [ OK ]
|
Importer le keytab sur la machine cliente :
Le keytab a importer peut être trouvé ici : nfs4.keytab
Pour l'importer, suivre les opérations suivantes.
- Mettre le fichier nfsv4.keytab dans /etc
- Aller dans le dossier /etc
- Supprimer le fichier /etc/krb5.keytab s'il existe
- Lancer l'utilitaire d'importation
- Lire le fichier nfsv4.keytab
- Lister le contenu du fichier
> l
slot KVNO Principal
---- ---- ---------------------------------------------------------------------
1 3 nfs/nfsv4-user@SDS.CH |
- Ecrire le fichier krb5.keytab et quitter
Créer le point de montage dans /mnt :
Modification du fichier /etc/fstab pour effectuer le montage de l'export :
Ajouter la ligne suivante au fichier.
nastest3p:/fs-nfsv4/data/ /mnt/ns704g nfs4 user,proto=tcp,sec=krb5,acl,port=2049,rw 0 0 |
Mount de l'export :
Changer d'utilisateur (user1) et récupération du ticket Kerberos :
# su user1
# kinit user1@SDS.CH
Password for user1@SDS.CH:
# |
Accéder au mount et lister le contenu :
# cd /mnt/ns704g
# ls -alh
total 20K
drwxrwxrwx 2 nobody nogroup 1.0K 2009-04-28 13:11 .
drwxr-xr-x 3 root root 4.0K 2009-03-20 14:33 ..
-rw-r--r-- 1 nobody nogroup 3.3K 2009-04-22 08:55 tmpuser1
-rw-r--rw- 1 nobody nogroup 0 2009-04-21 17:01 user1
|
Gestion des permissions
Si vous désirez pouvoir gérer les permissions sur les fichiers, il faudra installer un package supplémentaire, nfs4-acl-tools. Ce package vous permettra d'obtenir les programmes nfs4_getfacl et nfs4_setfacl. Pour savoir comment ceux-ci fonctionnent, utilisez la commande man.
|