Projet

Général

Profil

Era24 » Historique » Version 12

Version 11 (Gwenael Remond, 28/01/2013 15:38) → Version 12/24 (Gwenael Remond, 28/01/2013 16:12)

h1. Era24

h2. Décoreller le backend du frontend

* commencer par faire le bilan des types de règles générés par Era

h2. bilan des règles iptables générées par Era

h3. règles sandards

* <code>BasicDirectiveProcessor</code>

* ACCEPT-DROP

* SNAT

* DNAT

* REDIRECT

h2. règles spécifiques

*
directive avec log
* directive avec time

* possibilités d'inversions :

* inversion d'une source (pour une source unique)
* inversion d'une destination (pour une destination unique)
* inversion d'un service (pas d'un groupe de services)

types de piles

* pile principale <code>rules</code>
* pile secondaire (à la fin), pour les règles implicites <code>implicit_rules</code>

création d'une règle dans <code>processor.py</code> :

<pre>
def create_rule(self, target, chain_name, table, match_params, service_param, param_list):
# On crée la règle avec la bonne chaine
rule = TargettedRule(target, chain_name, table)
# On ajoute tous les paramètres à la règle
rule.add_parameter(service_param)
for param in param_list:
rule.add_parameter(param)
# on process les paramètre du module time
self.process_time(rule)
return rule
</pre>

<code>iptrules.ParameterFactory</code> permet de générer des bouts de règles en une seule fois

* règle de log

exemple DROP :

<pre>
/sbin/iptables -t filter -A dmz-ext -m state --state NEW -p tcp --dport 8500 --tcp-flags SYN,RST,ACK SYN -i eth3 -o %%interface_gw -s 0/0 -d 0/0 -j LOG --log-prefix "iptables: era dmz-ext"
/sbin/iptables -t filter -A dmz-ext -m state --state NEW -p tcp --dport 8500 --tcp-flags SYN,RST,ACK SYN -i eth3 -o %%interface_gw -s 0/0 -d 0/0 -j DROP
</pre>

exemple ACCEPT avec une règle de log qui a une plage horaire

<pre>
/sbin/iptables -t filter -A dmz-ext -m state --state NEW -p tcp --dport 8500 --tcp-flags SYN,RST,ACK SYN -i eth3 -o %%interface_gw -s 0/0 -d 0/0 -m time --timestart 10:00 --timestop 12:00 --weekdays Mon,Tue -j LOG --log-prefix "iptables: era dmz-ext"
/sbin/iptables -t filter -A dmz-ext -m state --state NEW -p tcp --dport 8500 --tcp-flags SYN,RST,ACK SYN -i eth3 -o %%interface_gw -s 0/0 -d 0/0 -m time --timestart 10:00 --timestop 12:00 --weekdays Mon,Tue -j DROP
/sbin/iptables -t filter -A dmz-ext -i eth3 -o %%interface_gw -s 19.168.234.15/255.255.255.255 -d 0/0 -j ACCEPT
</pre>

exemple SNAT :

<pre>
/sbin/iptables -t nat -A POSTROUTING -o %%interface_gw -s 19.168.234.15/255.255.255.255 -d 0/0 -j SNAT --to-source %%adresse_ip_eth0
/sbin/iptables -t filter -A dmz-ext -i eth3 -o %%interface_gw -s 19.168.234.15/255.255.255.255 -d 0/0 -j LOG --log-prefix "iptables: era dmz-ext"
/sbin/iptables -t filter -A dmz-ext -i eth3 -o %%interface_gw -s 19.168.234.15/255.255.255.255 -d 0/0 -j ACCEPT
</pre>

* règle spécifique container

<code>build_container_rule()</code>


TODO

h2. bilan des règles ipsets générées par Era

TODO

h2. bilan des règles d'authentification (nufw) générée par Era

TODO