Projet

Général

Profil

SphynxGenerateurDeConf » Historique » Version 13

Gwenael Remond, 12/02/2010 10:02

1 1 Gwenael Remond
h1. SphynxGenerateurDeConf
2 1 Gwenael Remond
3 8 Emmanuel GARETTE
h2. Implémentation
4 8 Emmanuel GARETTE
5 13 Gwenael Remond
Remarque : les notations utilisées sont génériques et font référence à la théorie des graphes 
6 13 Gwenael Remond
7 13 Gwenael Remond
http://en.wikipedia.org/wiki/Glossary_of_graph_theory
8 13 Gwenael Remond
9 8 Emmanuel GARETTE
_node_
10 8 Emmanuel GARETTE
11 8 Emmanuel GARETTE
Définition : concentrateur VPN.
12 8 Emmanuel GARETTE
13 8 Emmanuel GARETTE
Exemple : Etablissement 1, collectivité, Sphynx
14 11 Emmanuel GARETTE
lié à : connect
15 8 Emmanuel GARETTE
16 8 Emmanuel GARETTE
_credential_
17 8 Emmanuel GARETTE
18 8 Emmanuel GARETTE
Définition : certificat permettant d'établir une connexion ipsec.
19 8 Emmanuel GARETTE
20 9 Emmanuel GARETTE
_extremity_
21 8 Emmanuel GARETTE
22 8 Emmanuel GARETTE
Définition : adresse IP publique et éventuellement privée du node.
23 8 Emmanuel GARETTE
24 8 Emmanuel GARETTE
_vertex_
25 8 Emmanuel GARETTE
26 8 Emmanuel GARETTE
Définition : sous-réseau ou machine
27 8 Emmanuel GARETTE
28 8 Emmanuel GARETTE
Exemple : Scribe de l'établissement 1, pédago de l'établissement 2
29 8 Emmanuel GARETTE
30 8 Emmanuel GARETTE
Lié à : un node et un template
31 8 Emmanuel GARETTE
32 8 Emmanuel GARETTE
_template_
33 8 Emmanuel GARETTE
34 8 Emmanuel GARETTE
Définition : nom d'un sous-réseau ou machine générique existant dans 1-n node(s).
35 8 Emmanuel GARETTE
36 8 Emmanuel GARETTE
Exemple : admin, pédago, Scribe
37 8 Emmanuel GARETTE
38 8 Emmanuel GARETTE
_edge_
39 1 Gwenael Remond
40 1 Gwenael Remond
Définition : tunnel VPN entre 2 IP nodes et 2 credentials
41 1 Gwenael Remond
42 1 Gwenael Remond
_connect_
43 1 Gwenael Remond
44 1 Gwenael Remond
Définition : lien sécurisé entre 2 nodes
45 10 Emmanuel GARETTE
46 10 Emmanuel GARETTE
Lié à :
47 10 Emmanuel GARETTE
1-n credential(s)
48 10 Emmanuel GARETTE
1-n extremity
49 8 Emmanuel GARETTE
50 12 Emmanuel GARETTE
_extremity_
51 12 Emmanuel GARETTE
52 12 Emmanuel GARETTE
Définition : ip publique ou privée d'un node.
53 12 Emmanuel GARETTE
54 1 Gwenael Remond
h2. Modélisation 
55 1 Gwenael Remond
56 1 Gwenael Remond
_tunnel_ 
57 1 Gwenael Remond
58 1 Gwenael Remond
  mise en relation de deux _extrémités_ (sphynx-amon, amon-amon, amon-autre...)
59 1 Gwenael Remond
  de type 1-1
60 1 Gwenael Remond
61 1 Gwenael Remond
_réseau sécurisé_
62 1 Gwenael Remond
63 1 Gwenael Remond
64 1 Gwenael Remond
  un _réseau sécurisé_ est composé de _n_ tunnels
65 1 Gwenael Remond
66 6 Gwenael Remond
_maître_
67 1 Gwenael Remond
68 6 Gwenael Remond
  extrémité responsable du tunnel
69 6 Gwenael Remond
70 6 Gwenael Remond
_esclave_
71 6 Gwenael Remond
72 6 Gwenael Remond
  extrémité qui n'est pas responsable du tunnel
73 6 Gwenael Remond
74 1 Gwenael Remond
Entre les deux extrémités d'un tunnel, il y a forcément un _maître_ et un _esclave_
75 6 Gwenael Remond
car la configuration générée doit dépendre d'une seule responsabilité donnée d'un côté (et pas des deux).
76 1 Gwenael Remond
77 6 Gwenael Remond
La sortie doit ressembler à une base tagguée de manière à connaître à tout moment le responsable du tunnel (le _maître_). 
78 6 Gwenael Remond
Un tunnel est de la responsabilité d'un seul maître (d'une seule extrémité). 
79 6 Gwenael Remond
Le maître connaît les esclaves mais les esclaves ne savent pas d'où vient le maître. 
80 1 Gwenael Remond
81 6 Gwenael Remond
*Donc le tunnel est indexé sur l'extrémité* maître, et L'ensemble des tunnels est une _diversité disjointe_.
82 6 Gwenael Remond
83 5 Gwenael Remond
h2. La génération des _configurations_
84 5 Gwenael Remond
85 1 Gwenael Remond
_configuration_
86 3 Gwenael Remond
87 7 Gwenael Remond
  base de données, fichier, etc, templatisée ou pas, 
88 7 Gwenael Remond
  à mettre sur une machine EOLE ou non 
89 7 Gwenael Remond
 (fichier cible identique à une base de données strongswan)
90 1 Gwenael Remond
91 1 Gwenael Remond
Les configurations doivent pouvoir être **aggrégées** (puisque sur un Amon par exemple il peut y avoir plusieurs tunnels)
92 1 Gwenael Remond
Une configuration finale sur une machine cible est constituée d'une aggrégation qui provient de diverses extrémités. 
93 3 Gwenael Remond
94 6 Gwenael Remond
Les configurations doivent pouvoir être **templatisées** de manière à être "instanciables", par exemple sur un EOLE, elles doivent pouvoir être générées directement sous un format compatible strongswan. (comme pour le lance.firewall non encore instancié dans Era par exemple)
95 1 Gwenael Remond
 
96 1 Gwenael Remond
h3. outils de génération des configurations
97 5 Gwenael Remond
98 6 Gwenael Remond
L'outil de génération doit pouvoir être lancé en local (_pas d'appli web_), en ligne de commande ou bien une interface graphique mais lancée uniquement en framebuffer. 
99 3 Gwenael Remond
L'éditeur doit pouvoir manipuler des séries de paramètres-valeurs dynamiquement (comme dans ltsconfeditor par exemple)
100 3 Gwenael Remond
101 3 Gwenael Remond
h3. cohérence des configurations
102 3 Gwenael Remond
103 4 Gwenael Remond
Sur une machine cible, la seule vérification de cohérence est de type "ACID":http://fr.wikipedia.org/wiki/Transaction_informatique
104 6 Gwenael Remond
et surtout aucune de type de cohérence d'intégrité fonctionnelle, ce qui est infaisable. 
105 6 Gwenael Remond
En clair, cela veut dire que la seule vérification à faire _in fine_ c'est que les tunnels ne soient pas identiques (plusieurs tunnels sur une même machine qui aient la même IP).