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