Era24 » Historique » Version 21
Gwenael Remond, 28/01/2013 17:25
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 | 17 | Gwenael Remond | * rappel : les types de directives : |
8 | 17 | Gwenael Remond | |
9 | 17 | Gwenael Remond | <pre> |
10 | 17 | Gwenael Remond | if directive.action in (1, 2): # ACTION_DENY, ACTION_ALLOW |
11 | 17 | Gwenael Remond | return BasicDirectiveProcessor(directive, default_policy=default_policy) |
12 | 17 | Gwenael Remond | if directive.action == 4: # ACTION_REDIRECT |
13 | 17 | Gwenael Remond | return RedirectDirectiveProcessor(directive) |
14 | 17 | Gwenael Remond | if directive.action == 8: # ACTION_DNAT |
15 | 17 | Gwenael Remond | return DNATDirectiveProcessor(directive, is_container) |
16 | 17 | Gwenael Remond | if directive.action == 16: # ACTION_MASK |
17 | 17 | Gwenael Remond | return SNATDirectiveProcessor(directive) |
18 | 17 | Gwenael Remond | if directive.action == 32: # ACTION_FORWARD |
19 | 17 | Gwenael Remond | return ForwardDirectiveProcessor(directive) |
20 | 17 | Gwenael Remond | </pre> |
21 | 17 | Gwenael Remond | |
22 | 4 | Gwenael Remond | h2. bilan des règles iptables générées par Era |
23 | 1 | Gwenael Remond | |
24 | 12 | Gwenael Remond | h3. règles sandards |
25 | 12 | Gwenael Remond | |
26 | 12 | Gwenael Remond | * <code>BasicDirectiveProcessor</code> |
27 | 12 | Gwenael Remond | |
28 | 15 | Gwenael Remond | * ACCEPT |
29 | 1 | Gwenael Remond | |
30 | 15 | Gwenael Remond | <pre> |
31 | 15 | Gwenael Remond | /sbin/iptables -t filter -A ext-bas -m state --state NEW -p tcp --dport 8500 --tcp-flags SYN,RST,ACK SYN -s 0/0 -d 0.0.0.0 -j ACCEPT |
32 | 15 | Gwenael Remond | </pre> |
33 | 1 | Gwenael Remond | |
34 | 15 | Gwenael Remond | * DROP |
35 | 1 | Gwenael Remond | |
36 | 15 | Gwenael Remond | <pre> |
37 | 15 | Gwenael Remond | /sbin/iptables -t filter -A bas-ext -m state --state NEW -p tcp --dport 8500 --tcp-flags SYN,RST,ACK SYN -s 0.0.0.0 -d 0/0 -j DROP |
38 | 15 | Gwenael Remond | </pre> |
39 | 15 | Gwenael Remond | |
40 | 21 | Gwenael Remond | h3. directive non basiques : |
41 | 18 | Gwenael Remond | |
42 | 16 | Gwenael Remond | * SNAT |
43 | 13 | Gwenael Remond | |
44 | 19 | Gwenael Remond | <pre> |
45 | 19 | Gwenael Remond | /sbin/iptables -t nat -A POSTROUTING -p tcp --dport 8500 --tcp-flags SYN,RST,ACK SYN -s 0/0 -d 0.0.0.0 -j ACCEPT |
46 | 19 | Gwenael Remond | /sbin/iptables -t filter -A ext-bas -p tcp --dport 8500 --tcp-flags SYN,RST,ACK SYN -s 0/0 -d 0.0.0.0 -j ACCEPT |
47 | 19 | Gwenael Remond | </pre> |
48 | 13 | Gwenael Remond | |
49 | 13 | Gwenael Remond | * DNAT |
50 | 18 | Gwenael Remond | |
51 | 18 | Gwenael Remond | <pre> |
52 | 18 | Gwenael Remond | /sbin/iptables -t nat -A PREROUTING -p tcp --dport 8500 --tcp-flags SYN,RST,ACK SYN -s 0/0 -d 0.0.0.0 -j ACCEPT |
53 | 18 | Gwenael Remond | </pre> |
54 | 13 | Gwenael Remond | |
55 | 1 | Gwenael Remond | * REDIRECT |
56 | 1 | Gwenael Remond | |
57 | 13 | Gwenael Remond | <pre> |
58 | 13 | Gwenael Remond | /sbin/iptables -t filter -A ext-bas -p tcp --dport 56 -j ACCEPT |
59 | 13 | Gwenael Remond | /sbin/iptables -t nat -A PREROUTING -p tcp --dport 8500 --tcp-flags SYN,RST,ACK SYN -s 0/0 -d 0.0.0.0 -j REDIRECT --to-ports 56 |
60 | 13 | Gwenael Remond | </pre> |
61 | 13 | Gwenael Remond | |
62 | 13 | Gwenael Remond | * FORWARD |
63 | 13 | Gwenael Remond | |
64 | 13 | Gwenael Remond | <pre> |
65 | 17 | Gwenael Remond | /sbin/iptables -t filter -I FORWARD -p tcp --dport 8500 --tcp-flags SYN,RST,ACK SYN -s 0/0 -d 0.0.0.0 -j ACCEPT |
66 | 17 | Gwenael Remond | /sbin/iptables -t filter -I FORWARD -p tcp --dport 8500 --tcp-flags SYN,RST,ACK SYN -s 0/0 -d 0.0.0.0 -m state --state RELATED,ESTABLISHED -j ACCEPT |
67 | 13 | Gwenael Remond | </pre> |
68 | 12 | Gwenael Remond | |
69 | 12 | Gwenael Remond | h2. règles spécifiques |
70 | 12 | Gwenael Remond | |
71 | 6 | Gwenael Remond | * directive avec log |
72 | 1 | Gwenael Remond | * directive avec time |
73 | 8 | Gwenael Remond | |
74 | 8 | Gwenael Remond | * possibilités d'inversions : |
75 | 8 | Gwenael Remond | |
76 | 8 | Gwenael Remond | * inversion d'une source (pour une source unique) |
77 | 1 | Gwenael Remond | * inversion d'une destination (pour une destination unique) |
78 | 9 | Gwenael Remond | * inversion d'un service (pas d'un groupe de services) |
79 | 6 | Gwenael Remond | |
80 | 6 | Gwenael Remond | types de piles |
81 | 6 | Gwenael Remond | |
82 | 6 | Gwenael Remond | * pile principale <code>rules</code> |
83 | 6 | Gwenael Remond | * pile secondaire (à la fin), pour les règles implicites <code>implicit_rules</code> |
84 | 6 | Gwenael Remond | |
85 | 11 | Gwenael Remond | création d'une règle dans <code>processor.py</code> : |
86 | 6 | Gwenael Remond | |
87 | 6 | Gwenael Remond | <pre> |
88 | 6 | Gwenael Remond | def create_rule(self, target, chain_name, table, match_params, service_param, param_list): |
89 | 6 | Gwenael Remond | # On crée la règle avec la bonne chaine |
90 | 6 | Gwenael Remond | rule = TargettedRule(target, chain_name, table) |
91 | 6 | Gwenael Remond | # On ajoute tous les paramètres à la règle |
92 | 6 | Gwenael Remond | rule.add_parameter(service_param) |
93 | 6 | Gwenael Remond | for param in param_list: |
94 | 6 | Gwenael Remond | rule.add_parameter(param) |
95 | 6 | Gwenael Remond | # on process les paramètre du module time |
96 | 6 | Gwenael Remond | self.process_time(rule) |
97 | 6 | Gwenael Remond | return rule |
98 | 1 | Gwenael Remond | </pre> |
99 | 11 | Gwenael Remond | |
100 | 11 | Gwenael Remond | <code>iptrules.ParameterFactory</code> permet de générer des bouts de règles en une seule fois |
101 | 6 | Gwenael Remond | |
102 | 6 | Gwenael Remond | |
103 | 1 | Gwenael Remond | * règle de log |
104 | 1 | Gwenael Remond | |
105 | 1 | Gwenael Remond | exemple DROP : |
106 | 1 | Gwenael Remond | |
107 | 1 | Gwenael Remond | <pre> |
108 | 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" |
109 | 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 |
110 | 1 | Gwenael Remond | </pre> |
111 | 1 | Gwenael Remond | |
112 | 2 | Gwenael Remond | exemple ACCEPT avec une règle de log qui a une plage horaire |
113 | 3 | Gwenael Remond | |
114 | 3 | Gwenael Remond | <pre> |
115 | 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" |
116 | 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 |
117 | 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 |
118 | 3 | Gwenael Remond | </pre> |
119 | 2 | Gwenael Remond | |
120 | 1 | Gwenael Remond | exemple SNAT : |
121 | 1 | Gwenael Remond | |
122 | 1 | Gwenael Remond | <pre> |
123 | 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 |
124 | 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" |
125 | 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 |
126 | 1 | Gwenael Remond | </pre> |
127 | 12 | Gwenael Remond | |
128 | 14 | Gwenael Remond | |
129 | 14 | Gwenael Remond | * marquage (MARK) |
130 | 14 | Gwenael Remond | |
131 | 14 | Gwenael Remond | TODO |
132 | 12 | Gwenael Remond | |
133 | 20 | Gwenael Remond | * ipsec |
134 | 20 | Gwenael Remond | |
135 | 20 | Gwenael Remond | TODO |
136 | 20 | Gwenael Remond | |
137 | 12 | Gwenael Remond | * règle spécifique container |
138 | 12 | Gwenael Remond | |
139 | 12 | Gwenael Remond | <code>build_container_rule()</code> |
140 | 12 | Gwenael Remond | |
141 | 12 | Gwenael Remond | TODO |
142 | 12 | Gwenael Remond | |
143 | 1 | Gwenael Remond | |
144 | 1 | Gwenael Remond | h2. bilan des règles ipsets générées par Era |
145 | 9 | Gwenael Remond | |
146 | 9 | Gwenael Remond | TODO |
147 | 9 | Gwenael Remond | |
148 | 9 | Gwenael Remond | h2. bilan des règles d'authentification (nufw) générée par Era |
149 | 5 | Gwenael Remond | |
150 | 5 | Gwenael Remond | TODO |