Projet

Général

Profil

Era24 » Historique » Version 12

Gwenael Remond, 28/01/2013 16:12

1 1 Gwenael Remond
h1. Era24
2 1 Gwenael Remond
3 1 Gwenael Remond
h2. Décoreller le backend du frontend
4 1 Gwenael Remond
5 9 Gwenael Remond
* commencer par faire le bilan des types de règles générés par Era
6 4 Gwenael Remond
7 4 Gwenael Remond
h2. bilan des règles iptables générées par Era 
8 1 Gwenael Remond
9 12 Gwenael Remond
h3. règles sandards
10 12 Gwenael Remond
11 12 Gwenael Remond
* <code>BasicDirectiveProcessor</code>
12 12 Gwenael Remond
13 12 Gwenael Remond
* ACCEPT-DROP
14 12 Gwenael Remond
15 12 Gwenael Remond
* SNAT
16 12 Gwenael Remond
17 12 Gwenael Remond
* DNAT
18 12 Gwenael Remond
19 12 Gwenael Remond
* REDIRECT
20 12 Gwenael Remond
21 12 Gwenael Remond
22 12 Gwenael Remond
h2. règles spécifiques 
23 12 Gwenael Remond
24 6 Gwenael Remond
* directive avec log
25 1 Gwenael Remond
* directive avec time
26 8 Gwenael Remond
27 8 Gwenael Remond
* possibilités d'inversions :
28 8 Gwenael Remond
29 8 Gwenael Remond
  * inversion d'une source (pour une source unique)
30 1 Gwenael Remond
  * inversion d'une destination (pour une destination unique)
31 9 Gwenael Remond
  * inversion d'un service (pas d'un groupe de services)
32 6 Gwenael Remond
33 6 Gwenael Remond
types de piles 
34 6 Gwenael Remond
35 6 Gwenael Remond
* pile principale <code>rules</code>
36 6 Gwenael Remond
* pile secondaire (à la fin), pour les règles implicites <code>implicit_rules</code> 
37 6 Gwenael Remond
38 11 Gwenael Remond
création d'une règle dans <code>processor.py</code>  : 
39 6 Gwenael Remond
40 6 Gwenael Remond
<pre>
41 6 Gwenael Remond
   def create_rule(self, target, chain_name, table, match_params, service_param, param_list):
42 6 Gwenael Remond
        # On crée la règle avec la bonne chaine
43 6 Gwenael Remond
        rule = TargettedRule(target, chain_name, table)
44 6 Gwenael Remond
        # On ajoute tous les paramètres à la règle
45 6 Gwenael Remond
        rule.add_parameter(service_param)
46 6 Gwenael Remond
        for param in param_list:
47 6 Gwenael Remond
            rule.add_parameter(param)
48 6 Gwenael Remond
        # on process les paramètre du module time
49 6 Gwenael Remond
        self.process_time(rule)
50 6 Gwenael Remond
        return rule
51 1 Gwenael Remond
</pre>
52 11 Gwenael Remond
53 11 Gwenael Remond
<code>iptrules.ParameterFactory</code> permet de générer des bouts de règles en une seule fois
54 6 Gwenael Remond
55 6 Gwenael Remond
56 1 Gwenael Remond
* règle de log
57 1 Gwenael Remond
58 1 Gwenael Remond
exemple DROP :
59 1 Gwenael Remond
60 1 Gwenael Remond
<pre>
61 1 Gwenael Remond
/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"
62 1 Gwenael Remond
/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
63 1 Gwenael Remond
</pre>
64 1 Gwenael Remond
65 2 Gwenael Remond
exemple ACCEPT avec une règle de log qui a une plage horaire
66 3 Gwenael Remond
67 3 Gwenael Remond
<pre>
68 2 Gwenael Remond
/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"
69 2 Gwenael Remond
/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
70 2 Gwenael Remond
/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
71 3 Gwenael Remond
</pre>
72 2 Gwenael Remond
73 1 Gwenael Remond
exemple SNAT : 
74 1 Gwenael Remond
75 1 Gwenael Remond
<pre>
76 1 Gwenael Remond
/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
77 1 Gwenael Remond
/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"
78 1 Gwenael Remond
/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
79 1 Gwenael Remond
</pre>
80 12 Gwenael Remond
81 12 Gwenael Remond
82 12 Gwenael Remond
* règle spécifique container 
83 12 Gwenael Remond
84 12 Gwenael Remond
<code>build_container_rule()</code>
85 12 Gwenael Remond
86 12 Gwenael Remond
TODO 
87 12 Gwenael Remond
88 1 Gwenael Remond
89 1 Gwenael Remond
h2. bilan des règles ipsets générées par Era
90 9 Gwenael Remond
91 9 Gwenael Remond
TODO 
92 9 Gwenael Remond
93 9 Gwenael Remond
h2. bilan des règles d'authentification (nufw) générée par Era
94 5 Gwenael Remond
95 5 Gwenael Remond
TODO