NFSv4 Clients Config
[Test] Solaris
français | english
Navigation
Home
Sitemap
This wiki
This page

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

hosts:       files dns


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

# mv nfs4.keytab /etc

- Aller dans le dossier /etc

# cd /etc

- Supprimer le fichier /etc/krb5.keytab s'il existe

# rm /etc/krb5.keytab

- Lancer l'utilitaire d'importation

# ktutil

- Lire le fichier nfsv4.keytab

> rkt 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

> wkt krb5.keytab
> q


Créer le point de montage dans /mnt :

mkdir /mnt/ns704g


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 :

# mount /mnt/ns704g

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/

 

 

Search
Share