MettreAFS : Différence entre versions

De Wiki du LAMA (UMR 5127)
Aller à : navigation, rechercher
(Installer OpenAFS)
 
(21 révisions intermédiaires par 4 utilisateurs non affichées)
Ligne 3 : Ligne 3 :
 
== Kerbériser la machine ==
 
== Kerbériser la machine ==
  
  > sudo apt-get install libpam-krb5 heimdal-clients
+
  > sudo apt-get install libpam-krb5 heimdal-clients libpam-afs-session
  
Dans /etc/krb5.conf :
+
Dans /etc/krb5.conf, virer tout et mettre :
 
  [libdefaults]
 
  [libdefaults]
 +
        ticket_lifetime = 24h
 
         default_realm = LAMA.UNIV-SAVOIE.FR
 
         default_realm = LAMA.UNIV-SAVOIE.FR
 
   
 
   
Ligne 20 : Ligne 21 :
 
         .univ-savoie.fr = LAMA.UNIV-SAVOIE.FR
 
         .univ-savoie.fr = LAMA.UNIV-SAVOIE.FR
 
         univ-savoie.fr = LAMA.UNIV-SAVOIE.FR
 
         univ-savoie.fr = LAMA.UNIV-SAVOIE.FR
 +
 +
Remarque : la durée par défaut des tickets demandés est donnée par la valeur de l'option ``ticket_lifetime``. Notez que la valeur maximum acceptée par le serveur est de sept jours (7d).
  
 
== Installer OpenAFS ==
 
== Installer OpenAFS ==
  
  > sudo apt-get install openafs-client openafs-krb5 libpam-afs-session
+
  > sudo apt-get install openafs-client openafs-krb5 libpam-afs-session openafs-modules-dkms
 
 
Peut-être aussi
 
 
 
> sudo apt-get install openafs-modules-dkms
 
  
 
Cellule AFS : lama.univ-savoie.fr
 
Cellule AFS : lama.univ-savoie.fr
Ligne 36 : Ligne 35 :
 
  193.48.123.134 # lama.univ-savoie.fr
 
  193.48.123.134 # lama.univ-savoie.fr
  
Puis faire (si vous le voulez des liens pour les homes) :
+
Avant d'aller plus loin, testez votre installation, vous devriez observer quelque chose qui ressemble à :
 +
> $ kinit
 +
> mon_login@LAMA.UNIV-SAVOIE.FR's Password:
 +
> $ klist
 +
> Credentials cache: FILE:/tmp/krb5cc_1000_Xzw9Vd
 +
>        Principal: mon_login@LAMA.UNIV-SAVOIE.FR
 +
>
 +
>  Issued                Expires              Principal
 +
> Sep  4 09:42:59 2014  Sep  4 19:42:58 2014  krbtgt/LAMA.UNIV-SAVOIE.FR@LAMA.UNIV-SAVOIE.FR
 +
> Sep  4 09:42:59 2014  Sep  4 19:42:58 2014  afs@LAMA.UNIV-SAVOIE.FR
 +
> $ aklog -d
 +
> Authenticating to cell lama.univ-savoie.fr (server lama.univ-savoie.fr).
 +
> Trying to authenticate to user's realm LAMA.UNIV-SAVOIE.FR.
 +
> Getting tickets: afs/lama.univ-savoie.fr@LAMA.UNIV-SAVOIE.FR
 +
> We've deduced that we need to authenticate to realm LAMA.UNIV-SAVOIE.FR.
 +
> Getting tickets: afs/lama.univ-savoie.fr@LAMA.UNIV-SAVOIE.FR
 +
> Getting tickets: afs/lama.univ-savoie.fr@LAMA.UNIV-SAVOIE.FR
 +
> Getting tickets: afs@LAMA.UNIV-SAVOIE.FR
 +
> Using Kerberos V5 ticket natively
 +
> Identical tokens already exist; skipping.
 +
> $ ls /afs
 +
> lama.univ-savoie.fr
 +
 
 +
PROBLÈME COURANT observé sous Debian (aklog échoue et klist n'affiche qu'une seule entrée ) :
 +
 
 +
> $ aklog
 +
> aklog: a pioctl failed while obtaining tokens for cell lama.univ-savoie.fr
 +
> $ klist
 +
> Credentials cache: FILE:/tmp/krb5cc_1000_Xzw9Vd
 +
>    Principal: mon_login@LAMA.UNIV-SAVOIE.FR
 +
>
 +
>  Issued                Expires              Principal
 +
> Sep  4 09:42:59 2014  Sep  4 19:42:58 2014  krbtgt/LAMA.UNIV-SAVOIE.FR@LAMA.UNIV-SAVOIE.FR
 +
 
 +
Le problème est que le service "openafs-client" n'a pas été démarré. Afin que le service soit démarré automatiquement :
 +
> sudo update-rc.d openafs-client defaults
 +
Puis redémarrez.
 +
 
 +
 
 +
Une fois que tout est ok, faire (si vous le voulez) des liens pour les homes :
  
 
  > sudo rm /home
 
  > sudo rm /home
Ligne 48 : Ligne 86 :
  
 
à la fin des deux fichiers '''/etc/pam.d/common-auth''' et '''/etc/pam.d/common-session'''.
 
à la fin des deux fichiers '''/etc/pam.d/common-auth''' et '''/etc/pam.d/common-session'''.
 +
 +
== Sur MAC OS X 10.7, 10.6 (marche peut-être avec 10.5) ==
 +
 +
* Créer un fichier <code>/Library/Preferences/edu.mit.Kerberos</code> lisible par tous (éventuellement chmod a+r) contenant:
 +
 +
[libdefaults]
 +
        default_realm = LAMA.UNIV-SAVOIE.FR
 +
 +
[realms]
 +
        LAMA.UNIV-SAVOIE.FR = {
 +
                kdc = lama.univ-savoie.fr
 +
                admin_server = lama.univ-savoie.fr
 +
        }
 +
[domain_realm]
 +
        www.lama.univ-savoie.fr = LAMA.UNIV-SAVOIE.FR
 +
        .lama.univ-savoie.fr = LAMA.UNIV-SAVOIE.FR
 +
        lama.univ-savoie.fr = LAMA.UNIV-SAVOIE.FR
 +
        .univ-savoie.fr = LAMA.UNIV-SAVOIE.FR
 +
        univ-savoie.fr = LAMA.UNIV-SAVOIE.FR
 +
 +
 +
* Installer openAFS depuis la page : [http://www.openafs.org/macos.html http://www.openafs.org/macos.html] et mettre <code>lama.univ-savoie.fr</code> comme cellule par défaut.
 +
* Copier le fichier <code>/etc/openafs/CellServDB</code> dans <code>/var/db/openafs/etc/</code> s'il n'y est pas déjà. L'éditer et y ajouter les lignes :
 +
 +
>lama.univ-savoie.fr
 +
193.48.123.134 # lama.univ-savoie.fr
 +
 +
C'est la seule ligne qui servira si vous n'avez pas de compte dans une université américaine; vous pouvez supprimer le reste.
 +
Remarque : on peut théoriquement éditer ce ficher depuis le panneaux de préférence d'openAFS ... sauf que ça semble ne pas marcher (un pb de permission ?).
 +
* redémarrer le MAC pour être sur de redémarrer openAFS (on doit pouvoir éviter ça).
 +
* dans le panneau de préférence openAFS cocher ''Use aklog'' et ''get credential at login time''.
 +
* pour plus de confort créer un lien où bon vous semble pour votre home sur le serveur lama qui est dans <code>/afs/lama.univ-savoie.fr/user/mon_login</code>
 +
 +
== OS X 10.9 (et sans doute 10.8) ==
 +
 +
Comme ci-dessus, mais il faut en plus
 +
 +
- installer la version 1.6.6
 +
- autoriser les logiciels venant de "n'importe où" à cause d'un bug
 +
(cf Préférences -> Sécurité et Confidentialité -> Onglet Général)
  
 
== Vérification ==
 
== Vérification ==
  
Logger vous sur la machine et taper '''klist'''.
+
Loggez vous sur la machine et taper '''klist'''.
 
La réponse doit ressembler à:
 
La réponse doit ressembler à:
  
Ligne 61 : Ligne 139 :
 
  Aug 14 13:34:19  Aug 15 13:34:19  afs@LAMA.UNIV-SAVOIE.FR
 
  Aug 14 13:34:19  Aug 15 13:34:19  afs@LAMA.UNIV-SAVOIE.FR
  
Les deux dernières lignes vous indique que vous avez un ticket kerberos sur le  
+
Les deux dernières lignes vous indiquent que vous avez un ticket kerberos sur le  
 
royaume du LAMA et un ticket kerberos pour les serveur OpenAFS.
 
royaume du LAMA et un ticket kerberos pour les serveur OpenAFS.
  
Ligne 71 : Ligne 149 :
 
   --End of list--
 
   --End of list--
  
On vois sur l'avant dernière ligne, le jeton afs qui autorise la connection au serveur
+
On voit, sur l'avant dernière ligne, le jeton afs qui autorise la connection au serveur
 
et qui a été obtenu auprès du serveur afs en présentant le ticket kerberos afs.
 
et qui a été obtenu auprès du serveur afs en présentant le ticket kerberos afs.
  
Ligne 81 : Ligne 159 :
 
droits sur votre compte local et sur le compte sur lama.univ-savoie.fr.
 
droits sur votre compte local et sur le compte sur lama.univ-savoie.fr.
  
Pour cela, une fois loggé sur votre compte local, tapé
+
Pour cela, une fois loggé sur votre compte local, taper
  
 
  > kinit login_sur_lama
 
  > kinit login_sur_lama
Ligne 87 : Ligne 165 :
  
 
La première commande sert à obtenir un ticket Kerberos (on
 
La première commande sert à obtenir un ticket Kerberos (on
peut vérifir son ticket avec klist) la second commande présente le
+
peut vérifier son ticket avec klist) la second commande présente le
ticket pour opbtenir un jeton afs.
+
ticket pour obtenir un jeton afs.
  
 
Après ça vous devriez avoir les droits sur  
 
Après ça vous devriez avoir les droits sur  
Ligne 100 : Ligne 178 :
  
 
Il faut juste faire attention, le cache est par défaut dans
 
Il faut juste faire attention, le cache est par défaut dans
/var/cache/openafs et il ne faudrait pas qu'un cahce de 20Go
+
/var/cache/openafs et il ne faudrait pas qu'un cache de 20Go
 
remplisse votre partition /. Donc il faut mettre le cache là où il y a assez de place
 
remplisse votre partition /. Donc il faut mettre le cache là où il y a assez de place
 
(avec un lien symbolique ou en changeant le cache par défaut).
 
(avec un lien symbolique ou en changeant le cache par défaut).
Ligne 110 : Ligne 188 :
 
== Renouveler les tickets avec l'écran de veille ==
 
== Renouveler les tickets avec l'écran de veille ==
  
Dans /etc/pam.d/gnome-screensaver (ou /etc/pam.d/xscreensaver, non testé encore):
+
Dans /etc/pam.d/gnome-screensaver (ou /etc/pam.d/xscreensaver):
  
 
  auth    [success=ok default=1] pam_krb5.so minimum_uid=1000
 
  auth    [success=ok default=1] pam_krb5.so minimum_uid=1000
Ligne 129 : Ligne 207 :
  
 
Ce sujet a une page dédiée : [[SshAvecAfs]]
 
Ce sujet a une page dédiée : [[SshAvecAfs]]
 +
 +
= Synchronisation asynchrone =
 +
 +
Pour de meilleures performances, on peut dire à AFS de ne synchroniser les fichiers que lorsqu'un certain volume de données a été modifiées. Il faut être conscient que cela implique qu'une coupure entre la modification et la synchronisation peut entrainer la perte de ces modifications. Par défaut, chaque modification est immédiatement effectuée sur le serveur.
 +
 +
Dans le fichier /etc/rc.local ajouter la ligne :
 +
 +
> fs storebehind -allfiles 1000
 +
 +
Notes : cette ligne doit être située AVANT la ligne ``exit 0``. Le nombre ``1000`` est le nombre de KB, Christophe recommande une valeur énorme ``100000``, à vous de voir...

Version actuelle en date du 5 septembre 2014 à 13:00

Passer une machine de NFS vers AFS

Kerbériser la machine

> sudo apt-get install libpam-krb5 heimdal-clients libpam-afs-session

Dans /etc/krb5.conf, virer tout et mettre :

[libdefaults]
       ticket_lifetime = 24h
       default_realm = LAMA.UNIV-SAVOIE.FR

[realms]
       LAMA.UNIV-SAVOIE.FR = {
               kdc = lama.univ-savoie.fr
               admin_server = lama.univ-savoie.fr
       }
[domain_realm]
       www.lama.univ-savoie.fr = LAMA.UNIV-SAVOIE.FR
       .lama.univ-savoie.fr = LAMA.UNIV-SAVOIE.FR
       lama.univ-savoie.fr = LAMA.UNIV-SAVOIE.FR
       .univ-savoie.fr = LAMA.UNIV-SAVOIE.FR
       univ-savoie.fr = LAMA.UNIV-SAVOIE.FR

Remarque : la durée par défaut des tickets demandés est donnée par la valeur de l'option ``ticket_lifetime``. Notez que la valeur maximum acceptée par le serveur est de sept jours (7d).

Installer OpenAFS

> sudo apt-get install openafs-client openafs-krb5 libpam-afs-session openafs-modules-dkms

Cellule AFS : lama.univ-savoie.fr Taille du cache : Christophe veut un cache monstrueux (500 Mo par exemple, dépend de la taille de /var/cache/openafs).

Dans /etc/openafs/CellServDB, virer tout et laisser uniquement :

>lama.univ-savoie.fr
193.48.123.134 # lama.univ-savoie.fr

Avant d'aller plus loin, testez votre installation, vous devriez observer quelque chose qui ressemble à :

> $ kinit
> mon_login@LAMA.UNIV-SAVOIE.FR's Password: 
> $ klist
> Credentials cache: FILE:/tmp/krb5cc_1000_Xzw9Vd
>         Principal: mon_login@LAMA.UNIV-SAVOIE.FR
> 
>   Issued                Expires               Principal
> Sep  4 09:42:59 2014  Sep  4 19:42:58 2014  krbtgt/LAMA.UNIV-SAVOIE.FR@LAMA.UNIV-SAVOIE.FR
> Sep  4 09:42:59 2014  Sep  4 19:42:58 2014  afs@LAMA.UNIV-SAVOIE.FR
> $ aklog -d
> Authenticating to cell lama.univ-savoie.fr (server lama.univ-savoie.fr).
> Trying to authenticate to user's realm LAMA.UNIV-SAVOIE.FR.
> Getting tickets: afs/lama.univ-savoie.fr@LAMA.UNIV-SAVOIE.FR
> We've deduced that we need to authenticate to realm LAMA.UNIV-SAVOIE.FR.
> Getting tickets: afs/lama.univ-savoie.fr@LAMA.UNIV-SAVOIE.FR
> Getting tickets: afs/lama.univ-savoie.fr@LAMA.UNIV-SAVOIE.FR
> Getting tickets: afs@LAMA.UNIV-SAVOIE.FR
> Using Kerberos V5 ticket natively
> Identical tokens already exist; skipping. 
> $ ls /afs
> lama.univ-savoie.fr

PROBLÈME COURANT observé sous Debian (aklog échoue et klist n'affiche qu'une seule entrée ) :

> $ aklog
> aklog: a pioctl failed while obtaining tokens for cell lama.univ-savoie.fr
> $ klist
> Credentials cache: FILE:/tmp/krb5cc_1000_Xzw9Vd
>     Principal: mon_login@LAMA.UNIV-SAVOIE.FR
> 
>   Issued                Expires               Principal
> Sep  4 09:42:59 2014  Sep  4 19:42:58 2014  krbtgt/LAMA.UNIV-SAVOIE.FR@LAMA.UNIV-SAVOIE.FR

Le problème est que le service "openafs-client" n'a pas été démarré. Afin que le service soit démarré automatiquement :

> sudo update-rc.d openafs-client defaults

Puis redémarrez.


Une fois que tout est ok, faire (si vous le voulez) des liens pour les homes :

> sudo rm /home
> sudo rm /home2
> sudo ln -s /afs/lama.univ-savoie.fr/user /home
> sudo ln -s /afs/lama.univ-savoie.fr/user /home2

Enfin, ajouter la ligne

auth   optional   pam_afs_session.so

à la fin des deux fichiers /etc/pam.d/common-auth et /etc/pam.d/common-session.

Sur MAC OS X 10.7, 10.6 (marche peut-être avec 10.5)

  • Créer un fichier /Library/Preferences/edu.mit.Kerberos lisible par tous (éventuellement chmod a+r) contenant:
[libdefaults]
       default_realm = LAMA.UNIV-SAVOIE.FR

[realms]
       LAMA.UNIV-SAVOIE.FR = {
               kdc = lama.univ-savoie.fr
               admin_server = lama.univ-savoie.fr
       }
[domain_realm]
       www.lama.univ-savoie.fr = LAMA.UNIV-SAVOIE.FR
       .lama.univ-savoie.fr = LAMA.UNIV-SAVOIE.FR
       lama.univ-savoie.fr = LAMA.UNIV-SAVOIE.FR
       .univ-savoie.fr = LAMA.UNIV-SAVOIE.FR
       univ-savoie.fr = LAMA.UNIV-SAVOIE.FR


  • Installer openAFS depuis la page : http://www.openafs.org/macos.html et mettre lama.univ-savoie.fr comme cellule par défaut.
  • Copier le fichier /etc/openafs/CellServDB dans /var/db/openafs/etc/ s'il n'y est pas déjà. L'éditer et y ajouter les lignes :
>lama.univ-savoie.fr
193.48.123.134 # lama.univ-savoie.fr

C'est la seule ligne qui servira si vous n'avez pas de compte dans une université américaine; vous pouvez supprimer le reste. Remarque : on peut théoriquement éditer ce ficher depuis le panneaux de préférence d'openAFS ... sauf que ça semble ne pas marcher (un pb de permission ?).

  • redémarrer le MAC pour être sur de redémarrer openAFS (on doit pouvoir éviter ça).
  • dans le panneau de préférence openAFS cocher Use aklog et get credential at login time.
  • pour plus de confort créer un lien où bon vous semble pour votre home sur le serveur lama qui est dans /afs/lama.univ-savoie.fr/user/mon_login

OS X 10.9 (et sans doute 10.8)

Comme ci-dessus, mais il faut en plus

- installer la version 1.6.6 - autoriser les logiciels venant de "n'importe où" à cause d'un bug (cf Préférences -> Sécurité et Confidentialité -> Onglet Général)

Vérification

Loggez vous sur la machine et taper klist. La réponse doit ressembler à:

Credentials cache: FILE:/tmp/krb5cc_1066_T1K6vd
       Principal: raffalli@LAMA.UNIV-SAVOIE.FR

 Issued           Expires          Principal
Aug 14 13:34:19  Aug 15 13:34:19  krbtgt/LAMA.UNIV-SAVOIE.FR@LAMA.UNIV-SAVOIE.FR
Aug 14 13:34:19  Aug 15 13:34:19  afs@LAMA.UNIV-SAVOIE.FR

Les deux dernières lignes vous indiquent que vous avez un ticket kerberos sur le royaume du LAMA et un ticket kerberos pour les serveur OpenAFS.

Tapez aussi tokens avec une réponse attendue qui ressemble à:

Tokens held by the Cache Manager:

User's (AFS ID 1066) tokens for afs@lama.univ-savoie.fr [Expires Aug 15 13:34]
  --End of list--

On voit, sur l'avant dernière ligne, le jeton afs qui autorise la connection au serveur et qui a été obtenu auprès du serveur afs en présentant le ticket kerberos afs.

Possibilités supplémentaires

Avoir des droits depuis son compte local

Si vous avez un compte local sur votre machine, vous pouvez avoir simultanément les droits sur votre compte local et sur le compte sur lama.univ-savoie.fr.

Pour cela, une fois loggé sur votre compte local, taper

> kinit login_sur_lama
> aklog

La première commande sert à obtenir un ticket Kerberos (on peut vérifier son ticket avec klist) la second commande présente le ticket pour obtenir un jeton afs.

Après ça vous devriez avoir les droits sur

/afs/lama.univ-savoie.fr/user/login_sur_lama

Taille du cache

Il n'y a aucune raison que la taille du cache ne soit pas du même ordre de grandeur que la taille de vos fichiers personnels.

Il faut juste faire attention, le cache est par défaut dans /var/cache/openafs et il ne faudrait pas qu'un cache de 20Go remplisse votre partition /. Donc il faut mettre le cache là où il y a assez de place (avec un lien symbolique ou en changeant le cache par défaut).

La configuration du cache (taille max et position) est dans

/etc/openafs/cacheinfo

Renouveler les tickets avec l'écran de veille

Dans /etc/pam.d/gnome-screensaver (ou /etc/pam.d/xscreensaver):

auth    [success=ok default=1] pam_krb5.so minimum_uid=1000
auth    [default=4]        pam_afs_session.so nopag
auth    [success=3 default=ignore]      pam_unix.so nullok_secure try_first_pass
# here's the fallback if no module succeeds
auth    requisite                       pam_deny.so
# prime the stack with a positive return value if there isn't one already;
# this avoids us returning an error just because nothing sets a success code
# since the modules above will each just jump around
auth    required                        pam_permit.so
# and here are more per-package modules (the "Additional" block)
auth    optional                        pam_cap.so 

auth optional pam_gnome_keyring.so

SSh et AFS

Ce sujet a une page dédiée : SshAvecAfs

Synchronisation asynchrone

Pour de meilleures performances, on peut dire à AFS de ne synchroniser les fichiers que lorsqu'un certain volume de données a été modifiées. Il faut être conscient que cela implique qu'une coupure entre la modification et la synchronisation peut entrainer la perte de ces modifications. Par défaut, chaque modification est immédiatement effectuée sur le serveur.

Dans le fichier /etc/rc.local ajouter la ligne :

> fs storebehind -allfiles 1000

Notes : cette ligne doit être située AVANT la ligne ``exit 0``. Le nombre ``1000`` est le nombre de KB, Christophe recommande une valeur énorme ``100000``, à vous de voir...