Détails du script serveur d'enregistrement des clients » Historique » Version 1
Christophe Martin, 21/09/2010 12:18
1 | 1 | Christophe Martin | h1. Détails du script serveur d'enregistrement des clients |
---|---|---|---|
2 | |||
3 | h2. principe de fonctionnement du script |
||
4 | |||
5 | voir [[communications client-serveur lors de l'installation]] |
||
6 | |||
7 | h2. détails de fonctionnement. |
||
8 | |||
9 | Le script logue tout, success et erreurs via syslog. |
||
10 | |||
11 | Il envoie un mail s'il y a réussite. |
||
12 | |||
13 | L'affichage du script est strictement contrôlé. Rien ne doit être affiché avant de savoir si il faut émettre une ligne contenant le seul mot @success@. |
||
14 | |||
15 | toute erreur est *fatale*, est loggée, et provoque l'affichage d'un message d'erreur (donc pas de ligne @success@ dans ce cas) |
||
16 | |||
17 | Le script est lancé par une clef ssh et reçoit un paramètre dans la variable d'environnement passée par sshd $SSH_ORIGINAL_COMMAND |
||
18 | |||
19 | Le script vérifie les points suivants. tout échec est fatal. : |
||
20 | |||
21 | * variable $SSH_CONNECTION |
||
22 | ** non vide |
||
23 | ** Le premier mot de $SSH_CONNECTION est une adresse IP valide |
||
24 | ** si un enregistrement PTR est dans le DNS, alors il pointe vers un nom en *.univ-brest.fr |
||
25 | * variable $SSH_ORIGINAL_COMMAND est de la forme OS:logon |
||
26 | ** OS |
||
27 | *** est non vide |
||
28 | *** ne contient que des lettres minuscules et des chiffres |
||
29 | *** commence par une lettre |
||
30 | *** pas plus de 20 caractères |
||
31 | *** OS est un des mots connu du script (en dur dans le script, initialement @linux@ @win@ @mac@) |
||
32 | ** logon |
||
33 | *** est non vide |
||
34 | *** Ne contient que des lettres minuscules des chiffres |
||
35 | *** commence par une lettre |
||
36 | *** pas plus de 16 caractères |
||
37 | *** présent dans l'annuaire LDAP sur annuaire-iuem.univ-brest.fr |
||
38 | * présence préalable de la machine dans le fichier hosts de backuppc |
||
39 | ** *NB* , seul le fichier hosts est vérifié, *pas la présence de sauvegarde précédentes éventuelles* |
||
40 | ** Aucune présence actuelle |
||
41 | ** présente avec le même nom d'utilisateur (évite usurpation d'identité). La présence est testée sous les deux formes |
||
42 | *** IP [01] logon |
||
43 | *** nom_dns [01] logon |
||
44 | * Le service ssh est disponible sur le client. |
||
45 | |||
46 | Toutes les actions du script sont vérifiées par le code d'erreur de la commande précédente. |
||
47 | |||
48 | h2. actions entreprises par le script |
||
49 | |||
50 | Dans l'ordre : |
||
51 | |||
52 | # Vérifications des variables d'environnement et calcul/obtention des valeur concernant le client : @ip@ , @client_hostname@ , @user@ |
||
53 | # Vérification de l'adresse IP |
||
54 | # Vérification de la présence préalable de la machine client |
||
55 | # Ajout de la machine client avec l'utilisateur |
||
56 | # message dans le log annonçant l'ajout de la machine |
||
57 | # Génération d'une clef ssh spécifique et enregistrement de cette clef dans un répertoire dédié aux clients. Chaque appel génère une nouvelle clef. |
||
58 | # scan ssh du client, enregistrement dans @.ssh/known_hosts@ |
||
59 | # génération d'un fichier de config pour le client d'après un modèle dépendant de l'OS. |
||
60 | # @reload@ du service backuppc |
||
61 | # affichage pour le client |
||
62 | ## success |
||
63 | ## url: url de config de la machine |
||
64 | ## key: partie publique du biclef ssh pour ce client. |
||
65 | # |
||
66 | # mail aux sysadmin pour prévenir de l'intégration de la machine. |