Les variables Creole

ERA[1] a été conçu dans le cadre du projet EOLE et pour le pare-feu Amon. Il peut très bien être utilisé en dehors de ce cadre, mais c'est sur un module Amon qu'il devient vraiment possible de déployer toutes les possibilités du logiciel.

Il est possible, à plusieurs endroits de l'interface, d'insérer des variables Creole[2] (elles commencent par %%) plutôt que des valeurs fixes.

Le fichier XML de description de pare-feu devient alors un template[3] Creole.

Exemple

Dans la fenêtre d'édition d'une zone, entrer une valeur du type %%ip_variable plutôt qu'une valeur IP fixe.

Une adresse IP de zone peut être templatisée (IP en variable Creole)
Une adresse IP de zone peut être templatisée (IP en variable Creole)

Ces variables seront instanciées sur un serveur EOLE. Mais elles peuvent aussi être utilisées pour le déploiement d'autres pare-feux tant que Netfilter est présent.

Limitations de l'intégration entre ERA et Creole

Cette intégration des variables Creole dans ERA a des limites dans le cas des variables multivaluées. Une variable multivaluée au sens de Creole est une variable dont les valeurs sont multiples (c'est une liste d'ips, de networks, etc...).

Il est autorisé d'utiliser des variables multivaluées dans ERA, mais il y a une limitation : si dans une directive donnée plusieurs variables multivaluées sont utilisées (par exemple au niveau d'une extrémité source, d'une extrémité de destination ou d'un service, ou d'un port de redirection...), alors il faut que les autres variables multivaluées utilisées soient déclarées dans le dictionnaire Creole comme esclaves de la première variable multi-valuée, sinon le cas d'utilisation ne sera pas géré.

Le support des groupes de variables multivaluées est très partiel dans ERA, si dans une directive une variable multivaluée est utilisée alors elle doit être déclarée comme maître dans le dictionnaire Creole, et il ne faut pas qu'il y ait dans cette directive une deuxième variable multivaluée indépendante, donc les autres variables impliquées sont soit des variables multivaluées esclaves, soit simplement des variables Creole non-multivaluées.