diff --git a/gestion/gen_confs/firewall.py b/gestion/gen_confs/firewall.py index 85dd0832..19124139 100755 --- a/gestion/gen_confs/firewall.py +++ b/gestion/gen_confs/firewall.py @@ -308,28 +308,31 @@ class firewall_crans : self.anim = anim('\tActualisation TEST_MAC-IP') for regle in iptables("-t nat -L TEST_MAC-IP -n").split('\n')[2:] : regle = regle.split() + if regle[0] == 'DROP': + # On est arrivé à la fin de la liste + break ip = regle[3] mac = regle[6].lower() if ip in mac_ip_maj.keys() : # La règle correspond à une ip à mettre à jour machine = mac_ip_maj[ip] - try : + try: if not machine : # Il faut détruire cette entrée - iptables("-t nat -D TEST_MAC-IP -s %s -m mac --mac-source %s -j ACCEPT" % (ip, mac)) + iptables("-t nat -D TEST_MAC-IP -s %s -m mac --mac-source %s -j RETURN" % (ip, mac)) else : if (isinstance(machine, MachineWifi) and mac != self.mac_wifi) \ or (not isinstance(machine, MachineWifi) and mac != machine.mac()): # La correspondance MAC-IP est fausse => on ajoute la bonne règle self.__test_mac_ip(machine) # Supression de l'ancienne ligne - iptables("-t nat -D TEST_MAC-IP -s %s -m mac --mac-source %s -j ACCEPT" % (ip, mac)) + iptables("-t nat -D TEST_MAC-IP -s %s -m mac --mac-source %s -j RETURN" % (ip, mac)) # Toutes les autres occurences devront être détruites mac_ip_maj[ip]=None - except IptablesError, c : - warn += c + except IptablesError, c: + warn += str(c) + '\n' # Ajout des machines qui n'étaient pas dans le firewall for machine in mac_ip_maj.values() : @@ -344,7 +347,7 @@ class firewall_crans : self.exception_catcher(procedure) def build_chaine_adherent(self,chaine,methode) : - # On construit d'abord les autorisations particuli\uffffres + # On construit d'abord les autorisations particulières if not self.build_chaine(chaine, methode) : # Puis si pas de problèmes les autorisations par défaut self.anim.reinit()