Comportement d'une directive dans la matrice de flux
Dans le fichier constants.py
il y a
deux constantes intéressantes ici :
DIRECTIVE_OPTIONAL = 1 DIRECTIVE_ACTIVE = 2
Ensuite, dans la classe Directive
de
fwobjects.py
, il faut regarder
l'attribut attrs
. Si directive.attrs = 0
,
alors la directive n'est ni optionnelle, ni active.
Valeur autorisées pour attrs
Pour savoir si une directive est optionnelle ou active, faire un
directive.is_active()
ou un directive.is_optional()
.
attrs=0
: pas optionnelleattrs=1
: optionnelle mais pas activeattrs=3
: optionnelle et active
Attention : la valeur 2 correspond à non optionnelle mais active, ce
qui n'a pas de sens. Les valeurs autorisées sont donc [0,1,3]
Les identifiants de directives
constitution d'un identifiant nomfichier_chiffre (sinon il y a un problème avec les importations) avec une incrémentation en fonction du plus grand identifiant (lit tout le fichier et regarde le numéro le plus élevé)
Description des types de directives
Les directives de redirection
types de directives :
- ACTION_DENY = 1 : barrage
- ACTION_ALLOW = 2 : pont
- ACTION_FORWARD = 4 : redirect
- ACTION_DNAT = 8 : dnat
- ACTION_MASK = 16 : masque
Note:
Dans le cas d'une directive de type masque, si le port de
redirection est nul, alors cela veut dire que ce sont tous les
services qui sont concernés
Exemple de directive de type redirection
<directive service="http" priority="2" action="4" attrs="0" nat_port="3128" src_inv="0" dest_inv="0" serv_inv="0" libelle="pas de description"> <source name="admin"/> <destination name="tout_exterieur"/> </directive>
nat_port="3128"
en plus d'une directive standard.
Exemple de directive de type masque
<directive service="tous" priority="1" action="16" attrs="0" nat_extr="exterieur_bastion" nat_port="0" src_inv="0" dest_inv="0" serv_inv="0" libelle="pas de description"> <source name="admin"/> <destination name="tout_exterieur"/> </directive>
nat_extr="exterieur_bastion"
en plus d'une
directive de redirection.
Exemple de directive de type dnat
<directive service="http" priority="4" action="8" attrs="0" nat_extr="serveur_web" nat_port="80" src_inv="0" dest_inv="0" serv_inv="0" libelle="pas de description"> <source name="tout_exterieur"/> <destination name="bastion"/> </directive>