diff --git a/gestion/gen_confs/firewall.py b/gestion/gen_confs/firewall.py index 24e19a2c..2ede30ce 100755 --- a/gestion/gen_confs/firewall.py +++ b/gestion/gen_confs/firewall.py @@ -443,14 +443,16 @@ class firewall_komaz(firewall_crans) : table filter : FORWARD (policy par défaut : ACCEPT) 1) passage par BLACKLIST - 2) passage pas FILTRE_P2P (ACCEPT sur le trafic p2p, sanction gérées par déconnexion.py) + 2) passage par FILTRE_P2P (ACCEPT sur le trafic de filtres_p2p, REJECT sur le trafic de + filtres_p2p_bloq, sanctions gérées par déconnexion.py) 3) ce qui a pour source les serveurs de serveurs_crans est dirigé vers SERVEURS_VERS_EXT 4) ce qui a pour destination les serveurs de serveurs_crans est dirigé EXT_VERS_SERVEURS 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 BLACKLIST fitre des ip blacklistées (REJECT) - FILTRE_P2P filtre le traffic de p2p + FILTRE_P2P filtre le traffic de p2p : logging des paquets matchés par les protocoles de filtres_p2p + rejet des paquets matchés par les protocoles de filtres_p2p_bloq au dessus de la limite EXT_VERS_CRANS et CRANS_VERS_EXT ACCEPT pour les paquets vers les machines du crans (test port-ip) REJECT pour le reste @@ -473,8 +475,7 @@ class firewall_komaz(firewall_crans) : ports_virus = { 'tcp' : [ 135, 445 ] , 'udp' : [] } # Filtrage du peer to peer - filtres_p2p = [ ('bit', 'Bittorrent'), - ('apple', 'AppleJuice'), + filtres_p2p = [ ('apple', 'AppleJuice'), ('soul', 'SoulSeek'), ('winmx', 'WinMX'), ('edk', 'eDonkey'), @@ -482,6 +483,10 @@ class firewall_komaz(firewall_crans) : ('kazaa', 'KaZaa'), ('ares', 'Ares'), ('gnu', 'GNUtella') ] + + filtres_p2p_bloq = [ ('bit', 'Bittorrent'), ] + + ports_p2p = [ '412', '1214', '4662:4665' , '6346:6347', '6699', '6881:6889' ] liste_reseaux_non_routables = [ '10.0.0.0/8', '172.16.0.0/12', @@ -992,6 +997,13 @@ class firewall_komaz(firewall_crans) : iptables('-A FILTRE_P2P -m ipp2p --%s -j RETURN' % filtre[0]) self.anim.cycle() + for filtre in self.filtres_p2p_bloq: + iptables('-A FILTRE_P2P -m ipp2p --%s -j LOG --log-prefix "IPP2P=%s "' % (filtre[0], + filtre[1])) + iptables('-A FILTRE_P2P -m ipp2p -m limit --%s --limit=%d/hour -j RETURN' % (filtre[0], p2p.limite[filtre[1]]/2)) + iptables('-A FILTRE_P2P -m ipp2p --%s -j REJECT --reject-with icmp-admin-prohibited' % filtre[0]) + self.anim.cycle() + self.anim.reinit() print OK