Projet

Général

Profil

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.