NFSv4 - Solaris 10
Ce document décrit comment configurer un client Solaris 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 :
- SUNWkrbr
- SUNWkrbu
- SUNWfsckr
- SUNWfscr
- SUNWfscu
- SUNWgss
- SUNWgssc
- SUNWrsg
Ces packages peuvent être installés depuis le CDROM d'installation de Solaris à l'aide de la commande suivante :
kgadd -d /cdrom/cdrom0/Solaris_10/Product <packageName> |
Configuration DNS :
Pour que cela fonctionne, il faut faire en sorte d'interroger le DNS de l'Active Directory de test. Sous Solaris, pour faire ça, il faut éditer 2 fichiers, /tec/resolv.conf et /etc/default/dhcpagent et modifier les lignes suivantes.
/etc/resolv.conf
search sds.ch
nameserver 128.178.109.188 |
/etc/default/dhcpagent
PARAM_REQUEST_LIST=1,3,12,28,43,15 |
Il faut également faire en sorte de d'abord interroger le fichier /etc/hosts avant d'aller voir dans le DNS. Pour ce faire, il faut éditer le fichier /etc/nsswitch.conf et modifier une ligne
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)
# Do not remove the following line, or various programs
# that require network functionality will fail.
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
# The following krb5.conf variables are only for MIT Kerberos.
krb4_config = /etc/krb.conf
krb4_realms = /etc/krb.realms
kdc_timesync = 1
ccache_type = 4
forwardable = true
proxiable = true
dns_lookup_realm = false
dns_lookup_kdc = false
ticket_lifetime = 24h
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
# The following libdefaults parameters are only for Heimdal Kerberos.
v4_instance_resolve = false
v4_name_convert = {
host = {
rcmd = host
ftp = ftp
}
plain = {
something = something-else
}
}
fcc-mit-ticketflags = true
[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
[login]
krb4_convert = true
krb4_get_tickets = false
[appdefaults]
pam = {
debug = false
ticket_lifetime = 36000
renew_lifetime = 36000
forwardable = true
krb4_convert = false
}
|
Configuration de Samba :
Editer le fichier de configuration /etc/sfw/smb.conf et modifier les lignes suivantes :
security = ADS
realm = SDS.CH
workgroup = SDS |
Activation de la sécurité Kerberos pour 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/nfssec.conf et décommenter les lignes suivantes :
krb5 390003 kerberos_v5 default - # RPCSEC_GSS
krb5i 390004 kerberos_v5 default integrity # RPCSEC_GSS
krb5p 390005 kerberos_v5 default privacy # RPCSEC_GSS |
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:
# klist
Ticket cache: FILE:/tmp/krb4cc_1001
Default principal: user1@SDS.CH
Valid starting Expire Service principal
04/28/09 13:14:59 04/28/09 23:15:02 krbtgt/SDS.CH@SDS.CH
renew until 04/29/09 13:14:59
Kerberos 4 ticket cache: /tmp/tkt1001
klist: You have no tickets cached
|
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 télécharger et installer un package supplémentaire. Ce package vous permettra d'obtenir les programmes nfs4_getfacl et nfs4_setfacl. Pour savoir comment ceux-ci fonctionnent, utilisez la commande man. Cependant, il n'a pas été possible d'effectuer la compilation du package en question dans un temps raisonnable, donc cela n'a pas été fait. Si vous désirez néanmoins essayer, vous pouvez télécharger les sources (dernière version, 0.3.3) ici http://www.citi.umich.edu/projects/nfsv4/linux/nfs4-acl-tools/
|