Projet

Général

Profil

Communications client-serveur lors de l'installation » Historique » Version 6

Christophe Martin, 21/09/2010 07:06

1 1 Christophe Martin
h1. Communications client-serveur lors de l'installation
2
3
Dans le principe :
4
5 4 Christophe Martin
Tout démarre sur le client.
6 2 Christophe Martin
7 6 Christophe Martin
L'application, le script de setup, le paquet est appelé « le setup » ci après.
8 1 Christophe Martin
9 6 Christophe Martin
Le setup crée si besoin un utilisateur local @bckpciuem@ et lui donne les privilèges suffisants pour qu'il puisse faire les sauvegardes et les restaurations. Cet utilisateur a dans son home un script spécial appelé @rsyncsend.sh@
10 1 Christophe Martin
11 6 Christophe Martin
le setup contient une clef secrète ssh appelée @register-key@
12
13 5 Christophe Martin
Le script obtient de manière interactive le logon de l'utilisateur principal de l'ordinateur (logon défini dans l'annuaire LDAP).
14
15 4 Christophe Martin
Le script fait une connexion ssh
16
* au serveur de sauvegarde,
17
* en utilisant le clef secrete @register-key@
18
* vers le compte @backuppc@
19
* demande l'exécution d'une hypothétique commande de la forme OS:logon
20
21 1 Christophe Martin
Le serveur exécute alors une commande spéciale associée à la clef secrete, sous le compte backuppc.
22 5 Christophe Martin
23 4 Christophe Martin
Cette commande récupère le paramètre OS:logon via la variable d'environnement SSH_ORIGINAL_COMMANDE, passée par sshd
24
25
Cette commande effectue alors toute une série de vérifications sur le client, l'OS demandé et le logon, etc... et si tout va bien répond :
26 1 Christophe Martin
<pre>
27
success
28
</pre>
29 4 Christophe Martin
Sur la première ligne.
30 3 Christophe Martin
31 6 Christophe Martin
NB Tout autre réponse du serveur doit être considérée comme un message d'erreur. +L'ensemble de cette ligne et les suivantes constituent alors le message d'erreur+.
32 1 Christophe Martin
33 4 Christophe Martin
Quand la première ligne est « @success@ » viennent ensuite dans un ordre non spécifié des lignes de la forme @mot-clef:valeur@. pour l'instant sont définis les mots-clef suivants :
34 1 Christophe Martin
* @key@ Il s'agit de la clef publique correspondant à la clef privée utilisée par le serveur pour effectuer les sauvegardes. Cette clef devra être utilisée dans le fichier @~bckpciuem/authorized_keys@ pour affecter les connexions du serveur à la commande de backup/restauration « @rsyncsend.sh@ »
35 3 Christophe Martin
* @url@ L'URL que l'utilisateur doit visiter pour personnaliser ses sauvegardes.
36 4 Christophe Martin
37 6 Christophe Martin
Le client analyse la réponse du serveur et prend les mesures qui s'imposent. Au minimum, la clef ssh publique doit être associée à la commande @rsyncsend.sh@ de l'utilisateur local @bckpciuem@
38 3 Christophe Martin
39 2 Christophe Martin
h1. exemple de commande et dialogue
40 3 Christophe Martin
41
<pre>
42
su bckpciuem -c "env SSH_AUTH_SOCK= ssh -x -a -i register-key -l backuppc dugong mac:cmartin" >"/tmp/resultat.$$" 2>&1
43
</pre>
44
Le serveur répond 
45
<pre>
46
success
47
url: http://dugong.univ-brest.fr/backuppc/?host=dormeur
48
key: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDEBV4umLQWumkHBgznsLNaNZn9pxkLpmPWO09Sqft7OFX/HUcfOF040nscxu7MyMI4Y8TzhMGDtMertYo+PdGTEfg1qyjPgUrH4xLoyiBJ6ygsZiw6YK7IsBPgmGXlHMgBciJnJMaNAyOvLIPxua34Nxp1QmY3i0hiqO/qU5jtIp4nXSFIIvd+1ql/kvO4GDKtSGsiEpgmduOxWX1Z9cYa/F0TAPScJ5cHIO6FmeePC8xIaBEsaunFQt3XfFydVCnap97YUY9gbN6tnUhmb3T9/W9LMkgm8CfR1cbZTSX6xcjs+Za/ALKizMvV6750eqczXqg+nUIjb5Rnf2F7W/0z backuppc server to client dormeur ssh key"
49 1 Christophe Martin
</pre>