From ed855e941fab6d2ae2a9ea7d84d3ddc77c3c3ec0 Mon Sep 17 00:00:00 2001 From: Michel Blockelet Date: Tue, 16 Mar 2010 21:05:52 +0100 Subject: [PATCH] [gen_confs/,surveillance/] virus splitte vers virus et autodisc_virus Pour que le systeme n'enleve pas les deconnexions manuelles, et pour pouvoir mettre un message different aux gens deconnectes manuellement darcs-hash:20100316200552-ddb99-86effb62af5f560cd99563326d98d9721e51e289.gz --- gestion/gen_confs/generate.py | 4 ++++ gestion/gen_confs/squid.py | 5 +++++ gestion/ldap_crans.py | 3 ++- radius_auth.py | 3 ++- surveillance/deconnexion.py | 14 +++++++------- 5 files changed, 20 insertions(+), 9 deletions(-) diff --git a/gestion/gen_confs/generate.py b/gestion/gen_confs/generate.py index b68e1cb2..1fe89926 100644 --- a/gestion/gen_confs/generate.py +++ b/gestion/gen_confs/generate.py @@ -282,6 +282,10 @@ class sable(base_reconfigure): from gen_confs.squid import squid_p2p self._do(squid_p2p()) + def blacklist_autodisc_virus(self): + from gen_confs.squid import squid_autodisc_virus + self._do(squid_autodisc_virus()) + def blacklist_autodisc_upload(self): from gen_confs.squid import squid_autodisc_upload self._do(squid_autodisc_upload()) diff --git a/gestion/gen_confs/squid.py b/gestion/gen_confs/squid.py index 8fd19dd9..6a36a18b 100644 --- a/gestion/gen_confs/squid.py +++ b/gestion/gen_confs/squid.py @@ -76,6 +76,11 @@ class squid_autodisc_p2p(squid) : FICHIER = "/etc/squid3/blacklist_autodisc_p2p" chaine = "autodisc_p2p" +class squid_autodisc_virus(squid) : + """ Génère le fichier blacklist-virus pour squid """ + FICHIER = "/etc/squid3/blacklist_autodisc_virus" + chaine = "autodisc_virus" + class squid_virus(squid) : """ Génère le fichier blacklist-virus pour squid """ FICHIER = "/etc/squid3/blacklist_virus" diff --git a/gestion/ldap_crans.py b/gestion/ldap_crans.py index 04ec50bf..f37b757c 100644 --- a/gestion/ldap_crans.py +++ b/gestion/ldap_crans.py @@ -90,10 +90,11 @@ else: ################################################################################## ### Items de la blackliste blacklist_items = { u'bloq': u'Bloquage total de tous les services', - u'virus': u'Bloquage sur squid', + u'virus': u'Passage en VLAN isolement', u'upload': u"Bloquage total de l'accès à l'extérieur", u'warez': u'Bloquage sur squid', u'p2p': u"Bloquage total de l'accès à l'extérieur", + u'autodisc_virus': u'Autodisconnect pour virus', u'autodisc_upload': u'Autodisconnect pour upload', u'autodisc_p2p': u'Autodisconnect pour P2P', u'ipv6_ra': u'Isolement pour RA' } diff --git a/radius_auth.py b/radius_auth.py index d37e0d4d..50460950 100644 --- a/radius_auth.py +++ b/radius_auth.py @@ -55,7 +55,8 @@ def do_auth(mac): return (-1, "Bloquage total des services pour cette machine", "") # les gens qui doivent être isolés - if 'virus' in m[0].blacklist_actif() or 'ipv6_ra' in m[0].blacklist_actif() : + if ('virus' in m[0].blacklist_actif() or 'ipv6_ra' in m[0].blacklist_actif() + or 'autodisc_virus' in m[0].blacklist_actif()): return (0, "Bad boy", "isolement") # L'adherent ne paie pas, on le met sur le vlan radin diff --git a/surveillance/deconnexion.py b/surveillance/deconnexion.py index 6085384b..d49fb2aa 100644 --- a/surveillance/deconnexion.py +++ b/surveillance/deconnexion.py @@ -294,14 +294,14 @@ for ip, nombre in infectes: curseur.execute(requete) # On récupère les index des lignes de bl où il y a marqué virus - index = [blacklist.index(x) for x in blacklist if 'virus' in x ] + index = [blacklist.index(x) for x in blacklist if 'autodisc_virus' in x ] if index: # L'adhérent est déjà blacklisté - proprio.blacklist((index[0], ['now', '-', 'virus', hostname])) + proprio.blacklist((index[0], ['now', '-', 'autodisc_virus', hostname])) proprio.save() else: # L'adhérent n'est pas encore blacklisté - proprio.blacklist(['now', '-', 'virus', hostname]) + proprio.blacklist(['now', '-', 'autodisc_virus', hostname]) proprio.save() ################################################################################ @@ -340,14 +340,14 @@ for ip, nombre in infectes: curseur.execute(requete) # On récupère les index des lignes de bl où il y a marqué virus - index = [ blacklist.index(x) for x in blacklist if 'virus' in x ] + index = [ blacklist.index(x) for x in blacklist if 'autodisc_virus' in x ] if index: # L'adhérent est déjà blacklisté - proprio.blacklist((index[0], ['now', '-', 'virus', hostname])) + proprio.blacklist((index[0], ['now', '-', 'autodisc_virus', hostname])) proprio.save() else: # L'adhérent n'est pas encore blacklisté - proprio.blacklist(['now', '-', 'virus', hostname]) + proprio.blacklist(['now', '-', 'autodisc_virus', hostname]) proprio.save() @@ -390,7 +390,7 @@ for IP in infectes: # ont pu s'ajouter. lignes_enlevees = 0 for ligne in bl: - if '$-$virus$%s' % hostname in ligne: + if '$-$autodisc_virus$%s' % hostname in ligne: liste = ligne.split('$') argument = [liste[0], 'now', liste[2], liste[3]] index = bl.index(ligne)