Le format XML interne

Les composantes du tableau des flux sont :

  • les flux ;
  • les zones ;
  • les directives montantes et descendantes.

Le format XML interne suit une DTD qui correspond à la modélisation par flux. Les noms des balises correspondent aux noms des objets ERA. Il y a la liste des zones, puis les extrémités et les services, les groupes de services, et enfin les flux contenant les directives.

La représentation interne en objets est la suivante :

La représentation interne (objets)
La représentation interne (objets)
  • Directive(FwObject) : directive ;
  • Service(FwObject), ServiceGroupe(FwObject) : service et liste de services ;
  • Zone(FwObject), Extremite(FwObject) ;
  • Flux(FwObject).

Les directives optionnelles

Dans le fichier era.noyau.constants.py il y a deux constantes intéressantes ici

  • DIRECTIVE_OPTIONAL = 1
  • DIRECTIVE_ACTIVE = 2

Ces filtres permettent de savoir si une directive est optionnelle ou non. Pour cela, il faut regarder l'attribut attrs de la directive.

Si directive.attrs = 0, alors la directive n'est ni optionnelle, ni active.

  • attrs=0 : pas optionnelle
  • attrs=1 : optionnelle mais pas active
  • attrs=3 : optionnelle et active
  • la valeur 2 correspond à non optionnelle mais active, ce qui n'a pas de sens. Les valeurs autorisées sont donc [0,1,3]
  • ACTION_DENY = 1 : barrage
  • ACTION_ALLOW = 2 : pont
  • ACTION_FORWARD = 4 : redirect
  • ACTION_DNAT = 8 : dnat
  • ACTION_MASK = 16 : masque

Exemple

Exemple d'une directive de type masque :

action="16" attrs="0" nat_extr="exterieur_bastion" nat_port="0"

Exemple d'une directive de type dnat :

action="8" attrs="0" nat_extr="serveur_web" nat_port="80"