Projet

Général

Profil

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

Christophe Martin, 21/09/2010 07:01

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 4 Christophe Martin
L'application, le script de setup, le paquet contient une clef secrete appelée @register-key@
8 1 Christophe Martin
9 5 Christophe Martin
Le script crée si besoin un utilisateur local @bckpciuem@ et lui donne les privilèges suffisantpour qu'il puisse faire les sauvegardes et les restaurations. Cetutilisateur a dans son home un script spécial appelé @rsyncsend.sh@
10 1 Christophe Martin
11 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).
12
13 4 Christophe Martin
Le script fait une connexion ssh
14
* au serveur de sauvegarde,
15
* en utilisant le clef secrete @register-key@
16
* vers le compte @backuppc@
17
* demande l'exécution d'une hypothétique commande de la forme OS:logon
18
19 1 Christophe Martin
Le serveur exécute alors une commande spéciale associée à la clef secrete, sous le compte backuppc.
20 4 Christophe Martin
21 5 Christophe Martin
Cette commande récupère le paramètre OS:logon via la variable d'environnement SSH_ORIGINAL_COMMANDE, passée par sshd
22 4 Christophe Martin
23
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 :
24
25 1 Christophe Martin
<pre>
26
success
27
</pre>
28 4 Christophe Martin
Sur la première ligne.
29 3 Christophe Martin
30 4 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.
31
32
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 :
33 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@ »
34 3 Christophe Martin
* @url@ L'URL que l'utilisateur doit visiter pour personnaliser ses sauvegardes.
35 4 Christophe Martin
36 5 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'utilistaeur local @bckpciuem@
37 3 Christophe Martin
38 2 Christophe Martin
h1. exemple de commande et dialogue
39 3 Christophe Martin
40
<pre>
41
su bckpciuem -c "env SSH_AUTH_SOCK= ssh -x -a -i register-key -l backuppc dugong mac:cmartin" >"/tmp/resultat.$$" 2>&1
42
</pre>
43
Le serveur répond 
44
<pre>
45
success
46
url: http://dugong.univ-brest.fr/backuppc/?host=dormeur
47
key: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDEBV4umLQWumkHBgznsLNaNZn9pxkLpmPWO09Sqft7OFX/HUcfOF040nscxu7MyMI4Y8TzhMGDtMertYo+PdGTEfg1qyjPgUrH4xLoyiBJ6ygsZiw6YK7IsBPgmGXlHMgBciJnJMaNAyOvLIPxua34Nxp1QmY3i0hiqO/qU5jtIp4nXSFIIvd+1ql/kvO4GDKtSGsiEpgmduOxWX1Z9cYa/F0TAPScJ5cHIO6FmeePC8xIaBEsaunFQt3XfFydVCnap97YUY9gbN6tnUhmb3T9/W9LMkgm8CfR1cbZTSX6xcjs+Za/ALKizMvV6750eqczXqg+nUIjb5Rnf2F7W/0z backuppc server to client dormeur ssh key"
48 1 Christophe Martin
</pre>