diff --git a/gestion/gen_confs/firewall.py b/gestion/gen_confs/firewall.py index aa2e93e9..490125b5 100755 --- a/gestion/gen_confs/firewall.py +++ b/gestion/gen_confs/firewall.py @@ -504,6 +504,24 @@ class firewall_komaz(firewall_crans) : # On ne va pas plus loin si il ne s'agit pas de bittorrent iptables("-t mangle -A POSTROUTING -m mark ! --mark %s -j ACCEPT" % conf_fw.mark['bittorrent']) + print OK + + # On marque les paquets bittorrent uniquement + iptables("-t mangle -A PREROUTING -p tcp -j CONNMARK --restore-mark") + iptables("-t mangle -A PREROUTING -p tcp -m mark ! --mark 0x0 " + + "-j ACCEPT") + iptables("-t mangle -A PREROUTING -p tcp -m ipp2p --bit -j MARK " + + "--set-mark %s" % conf_fw.mark['bittorrent']) + iptables("-t mangle -A PREROUTING -p tcp -m mark " + + "--mark %s -j CONNMARK --save-mark" % conf_fw.mark['bittorrent']) + + warn = '' + # Par défaut on envoit les paquets dans la classe 9998 + for net in NETs['all'] : + iptables("-t mangle -A POSTROUTING -o crans -d %s " % net + + "-j CLASSIFY --set-class 1:9998") + iptables("-t mangle -A POSTROUTING -o ens -s %s " % net + + "-j CLASSIFY --set-class 1:9998") # On crée les chaînes de sous-réseaux for net in NETs['all'] : for mask in conf_fw.mask : @@ -517,23 +535,11 @@ class firewall_komaz(firewall_crans) : prev_chain = "SUBNET-%s" % prev_subnet next_chain = "SUBNET-%s" % subnet redirect_chain('mangle', prev_chain, next_chain, subnet) - print OK - - # On marque les paquets bittorrent uniquement - iptables("-t mangle -A PREROUTING -p tcp -j CONNMARK --restore-mark") - iptables("-t mangle -A PREROUTING -p tcp -m mark ! --mark 0x0 " + - "-j ACCEPT") - iptables("-t mangle -A PREROUTING -p tcp -m ipp2p --bit -j MARK " + - "--set-mark %s" % conf_fw.mark['bittorrent']) - iptables("-t mangle -A PREROUTING -p tcp -m mark " + - "--mark %s -j CONNMARK --save-mark" % conf_fw.mark['bittorrent']) - + adherents = db.search('paiement=ok')['adherent'] # On calcule le débit garanti pour un adhérent debit_adh = p2p.debit_max/(len(adherents)+1) - self.anim = anim('\tGénération des classes de filtrage p2p', len(adherents)) - warn = '' # Création des classes et qdisc for interface in [self.eth_ext, self.eth_int] : # On vide les classes et qdisc @@ -547,12 +553,8 @@ class firewall_komaz(firewall_crans) : tc("class add dev %s parent 1: classid 1:1 htb rate %s ceil %s" % (interface, p2p.debit_max, p2p.debit_max)) tc("class add dev %s parent 1:1 classid 1:9998 htb rate %s ceil %s" % (interface, debit_adh, debit_adh)) tc("qdisc add dev %s parent 1:9998 handle 9999: sfq perturb 10" % interface) - # Par défaut on envoit les paquets dans la classe 9998 - for net in NETs['all'] : - iptables("-t mangle -I POSTROUTING 2 -o crans -d %s " % net + - "-j CLASSIFY --set-class 1:9998") - iptables("-t mangle -I POSTROUTING 2 -o ens -s %s " % net + - "-j CLASSIFY --set-class 1:9998") + + self.anim = anim('\tGénération des classes de filtrage p2p', len(adherents)) # On construit ensuite les classes et qdisc pour chaque adhérent for adherent in adherents : self.anim.cycle()