Mise jour des commentaires + esthtique

On ne fait pas dans nat_table des rgles dj appliques dans mangle_table

darcs-hash:20060424220040-72cb0-12db96914f416f33eb9a1856e5722089eb17568f.gz
This commit is contained in:
salles 2006-04-25 00:00:40 +02:00
parent 9e5af3f690
commit daa54f5b9b

View file

@ -80,23 +80,21 @@ def tc(cmd):
class firewall_crans : class firewall_crans :
""" """
Classe parente pour les firewalls du crans Classe parente pour les firewalls du crans
Implementee directement a partir du firewall de komaz, initialement Implémentée directement à partir du firewall de komaz, initialement
ecrit par Manuel Sabban et Fred Pauget. écrit par Manuel Sabban et Frédéric Pauget.
* les méthodes a surcharger pour l'impementation eme des firewall * les méthodes à surcharger pour l'implémentation eme des firewall
sont nat_table, filter_table, pour la preparation du fw, sont mangle_table, nat_table, filter_table, pour la préparation
start_fw_funcs pour la mise en place du filtrage. du fw, start_fw_funcs pour la mise en place du filtrage.
* enable_route et disable_route utilisees seulement par komaz
* serveurs_maj, adh_maj_list_to_do et serveurs_maj_list_to_do, * serveurs_maj, adh_maj_list_to_do et serveurs_maj_list_to_do,
pour la mise en place de la MAC-IP. pour la mise en place de la MAC-IP.
en particulier, adh_maj_list_to_do et serveurs_maj_list_to_do en particulier, adh_maj_list_to_do et serveurs_maj_list_to_do
sont factorisees pour la simple et bonne raison que les sources sont factorisées pour la simple et bonne raison que les sources
de la liste to_do originale ne seront pas forcement identiques de la liste to_do originale ne seront pas forcément identiques
(c'est un peu sale...) (c'est un peu sale...)
* La classe parente contient a peu de choses pres tout ce qu'il * la classe parente contient à peu de choses prés tout ce qu'il
faut pour mettre en place un fw basique n'effectuant que la faut pour mettre en place un fw basique n'effectuant que la
verif MAC-IP. verif MAC-IP.
""" """
@ -400,8 +398,17 @@ Komaz
class firewall_komaz(firewall_crans) : class firewall_komaz(firewall_crans) :
""" """
Structure du firewall : Structure du firewall :
table mangle :
PREROUTING (policy par défaut : ACCEPT)
1) proxy transparent
2) marquage des paquets bittorrent
POSTROUTING (policy par défaut : ACCEPT)
1) passage dans le sous-réseau 24 de l'ip crans : SUBNET
SUBNET classe pour chaque ip de son réseau dans la classe htb correspondante
table nat : table nat :
PREROUTING (policy par defaut : DROP) PREROUTING (policy par défaut : ACCEPT)
1) passage par TEST_VIRUS_FLOOD pour tout ce qui n'est pas dans zone_serveur 1) passage par TEST_VIRUS_FLOOD pour tout ce qui n'est pas dans zone_serveur
2) passage dans RESEAUX_NON_ROUTABLES_DST 2) passage dans RESEAUX_NON_ROUTABLES_DST
3) passage est paquets venant de l'extérieur dans RESEAUX_NON_ROUTABLES_SRC 3) passage est paquets venant de l'extérieur dans RESEAUX_NON_ROUTABLES_SRC
@ -416,7 +423,7 @@ class firewall_komaz(firewall_crans) :
TEST_MAC-IP envoi les bon paquets vers CRANS_VERS_EXT TEST_MAC-IP envoi les bon paquets vers CRANS_VERS_EXT
table filter : table filter :
FORWARD (policy par defaut : ACCEPT) FORWARD (policy par défaut : ACCEPT)
1) passage par BLACKLIST 1) passage par BLACKLIST
2) passage pas FILTRE_P2P (ACCEPT sur le trafic p2p, sanction gérées par déconnexion.py) 2) passage pas FILTRE_P2P (ACCEPT sur le trafic p2p, sanction gérées par déconnexion.py)
3) ce qui a pour source les serveurs de serveurs_crans est dirigé vers SERVEURS_VERS_EXT 3) ce qui a pour source les serveurs de serveurs_crans est dirigé vers SERVEURS_VERS_EXT
@ -424,7 +431,7 @@ class firewall_komaz(firewall_crans) :
5) tout ce qui vient de l'interface externe est dirigé vers EXT_VERS_CRANS 5) tout ce qui vient de l'interface externe est dirigé vers EXT_VERS_CRANS
6) ce qui a pour source les serveurs de serveurs_crans est dirigé vers EXT_VERS_CRANS 6) ce qui a pour source les serveurs de serveurs_crans est dirigé vers EXT_VERS_CRANS
BLACKLIST fitre des ip blacklistées (reject) BLACKLIST fitre des ip blacklistées (REJECT)
FILTRE_P2P filtre le traffic de p2p FILTRE_P2P filtre le traffic de p2p
EXT_VERS_CRANS et CRANS_VERS_EXT EXT_VERS_CRANS et CRANS_VERS_EXT
ACCEPT pour les paquets vers les machines du crans (test port-ip) ACCEPT pour les paquets vers les machines du crans (test port-ip)
@ -571,21 +578,10 @@ class firewall_komaz(firewall_crans) :
iptables("-t nat -P OUTPUT ACCEPT") iptables("-t nat -P OUTPUT ACCEPT")
# Proxy transparent # Proxy transparent
iptables("-t mangle -F PREROUTING")
iptables("-t mangle -A PREROUTING -s %s -j RETURN" % self.zone_serveur)
iptables("-t mangle -A PREROUTING -p tcp --destination-port 80 " +
"-s 138.231.136.0/21 -d \! 138.231.148.0/22 -j MARK " +
"--set-mark %s" % conf_fw.mark['proxy'])
iptables("-t nat -A PREROUTING -p tcp -m mark --mark %s " % conf_fw.mark['proxy'] + iptables("-t nat -A PREROUTING -p tcp -m mark --mark %s " % conf_fw.mark['proxy'] +
"-j DNAT --to-destination 138.231.144.10:3128") "-j DNAT --to-destination 138.231.144.10:3128")
iptables("-t mangle -A PREROUTING -m mark --mark %s -j ACCEPT" % conf_fw.mark['proxy'])
print OK print OK
def proxy_transparent(self):
# Proxy transparent
iptables("-t nat -A PREROUTING -p tcp -m mark --mark %s " % conf_fw.mark['proxy'] +
"-j DNAT --to-destination 138.231.144.10:3128")
def filter_table_tweaks(self) : def filter_table_tweaks(self) :
self.anim = anim('\tRègles spécifiques à komaz') self.anim = anim('\tRègles spécifiques à komaz')
for chaine in [ 'ADMIN_VLAN', 'EXT_VERS_SERVEURS', 'SERVEURS_VERS_EXT' , 'EXT_VERS_CRANS', 'CRANS_VERS_EXT', 'BLACKLIST_SRC', 'BLACKLIST_DST' , 'FILTRE_P2P' ] : for chaine in [ 'ADMIN_VLAN', 'EXT_VERS_SERVEURS', 'SERVEURS_VERS_EXT' , 'EXT_VERS_CRANS', 'CRANS_VERS_EXT', 'BLACKLIST_SRC', 'BLACKLIST_DST' , 'FILTRE_P2P' ] :
@ -913,9 +909,9 @@ class firewall_zamok(firewall_crans) :
SERV_OUT_ADM SERV_OUT_ADM
TEST_MAC-IP TEST_MAC-IP
table filter : table filter :
FORWARD (policy par defaut : DROP) FORWARD (policy par défaut : DROP)
rien ne passe pas la chaine FORWARD rien ne passe pas la chaine FORWARD
INPUT (policy par defaut : ACCEPT pour l'instant) INPUT (policy par défaut : ACCEPT)
""" """
@ -996,9 +992,9 @@ class firewall_rouge(firewall_crans) :
SERV_OUT_ADM SERV_OUT_ADM
TEST_MAC-IP TEST_MAC-IP
table filter : table filter :
FORWARD (policy par defaut : DROP) FORWARD (policy par défaut : DROP)
rien ne passe pas la chaine FORWARD rien ne passe pas la chaine FORWARD
INPUT (policy par defaut : ACCEPT pour l'instant) INPUT (policy par défaut : ACCEPT)
""" """
@ -1039,9 +1035,9 @@ class firewall_vert(firewall_crans) :
table nat : table nat :
MAC-IP MAC-IP
table filter : table filter :
FORWARD (policy par defaut : DROP) FORWARD (policy par défaut : DROP)
rien ne passe pas la chaine FORWARD rien ne passe pas la chaine FORWARD
INPUT (policy par defaut : ACCEPT pour l'instant) INPUT (policy par défaut : ACCEPT)
""" """