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
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