[gen_confs/firewall.py] Rejet du trafic bittorrent au dessus de la limite des faux-positifs

darcs-hash:20081108163529-ffbb2-1a7ad41138e6b20017467fc6f4bdb5db0dd726bd.gz
This commit is contained in:
Nicolas Dandrimont 2008-11-08 17:35:29 +01:00
parent 6c80a0b995
commit ac1dd8f7cd

View file

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