Simplification par Bilou

darcs-hash:20051018194506-6d78a-8eae508674cdd8da1ef3a2bfcc180175da8bdcd1.gz
This commit is contained in:
pessoles 2005-10-18 21:45:06 +02:00
parent 9eb57d9a9d
commit 2ef94e1a0d

View file

@ -157,7 +157,7 @@ curseur.execute(requete)
######## ########
# Dans le table virus on sélectionne les ip_src qui appartiennent au reseau # Dans le table virus on sélectionne les ip_src qui appartiennent au reseau
requete = "SELECT ip_src FROM virus WHERE (ip_src<<=inet('138.231.136.0/21') or ip_src<<=inet('138.231.148.0/22')) and date > timestamp 'now' - interval '1 hour' order by ip_src" requete = "SELECT ip_src,count(ip_src) FROM virus WHERE (ip_src<<=inet('138.231.136.0/21') or ip_src<<=inet('138.231.148.0/22')) and date > timestamp 'now' - interval '1 hour' group by ip_src"
curseur.execute(requete) curseur.execute(requete)
veroles = curseur.fetchall() veroles = curseur.fetchall()
@ -165,110 +165,79 @@ veroles = curseur.fetchall()
requete = "SELECT ip_crans FROM avertis_virus" requete = "SELECT ip_crans FROM avertis_virus"
curseur.execute(requete) curseur.execute(requete)
infectes = curseur.fetchall() infectes = curseur.fetchall()
ip1=str('0.0.0.0')
N=0 for verole in veroles:
if veroles:
ip1=veroles[0][0] ip=verole[0]
for i in range(0,len(veroles)): nombre=verole[1]
ip=veroles[i][0]
if ip != ip1 : # si le type dépasse le seuil, on le blacklist
ip1=ip if nombre < virus.virus or [ip] not in infectes :
N=0 continue
else :
N=N+1 # lecture des infos de ldap
if N >= virus.virus and [ip] not in infectes: machine = ldap.search('ipHostNumber=%s' % ip,'w' )['machine'][0]
# Recuperation des infectes pour ne pas les reblacklister hostname = machine.nom()
machine = ldap.search('ipHostNumber=%s' % ip,'w' )['machine'][0] proprio = machine.proprietaire()
hostname = machine.nom() blacklist = proprio.blacklist()
proprio = machine.proprietaire()
bl = proprio.blacklist() # Inscription dans la table des infectes
# Inscription dans la table des infectes requete="INSERT INTO avertis_virus (ip_crans,date) VALUES ('%s','now')" % ip
requete="INSERT INTO avertis_virus (ip_crans,date) VALUES ('%s','now')" % ip1 curseur.execute(requete)
curseur.execute(requete)
requete = "SELECT ip_crans FROM avertis_virus" print "Deconnexion virus : %s" % hostname
curseur.execute(requete)
infectes = curseur.fetchall() # on récupère les index des lignes de bl ou il y a marqué virus
print "Deconnexion virus : %s" %hostname index = [blacklist.index(x) for x in blacklist if 'virus' in x ]
# Blacklistage if index :
for ligne in bl: proprio.blacklist(( index[0] , ['now','-','virus',hostname] ))
# On réédite si possible les lignes existantes pour ne pas charger la blackliste proprio.save()
if 'virus,' in ligne : else :
liste=ligne.split(',') proprio.blacklist(['now','-','virus',hostname])
date = time() proprio.save()
debut = localtime(date)
argument=['now','-','virus',hostname]
index = bl.index(ligne)
proprio.blacklist((index,argument))
proprio.save()
break
else :
date = time()
debut = localtime(date)
proprio.blacklist(["%d/%d/%d %d:%d" % (debut[2],debut[1],debut[0],debut[3],debut[4]),'-','virus',hostname])
proprio.save()
#date = time()
#debut = localtime(date)
#proprio.blacklist(["%d/%d/%d %d:%d" % (debut[2],debut[1],debut[0],debut[3],debut[4]),'-','virus',hostname])
#proprio.save()
# Flood # Flood
######## ########
# Dans le table virus on sélectionne les ip_src qui appartiennent au reseau # Dans le table virus on sélectionne les ip_src qui appartiennent au reseau
requete = "SELECT ip_src FROM flood WHERE (ip_src<<=inet('138.231.136.0/21') or ip_src<<=inet('138.231.148.0/22')) and date > timestamp 'now' - interval '1 hour' order by ip_src" requete = "SELECT ip_src,count(ip_src) FROM flood WHERE (ip_src<<=inet('138.231.136.0/21') or ip_src<<=inet('138.231.148.0/22')) and date > timestamp 'now' - interval '1 hour' group by ip_src"
curseur.execute(requete) curseur.execute(requete)
veroles = curseur.fetchall() veroles = curseur.fetchall()
# Recuperation des infectes pour ne pas les reblacklister # Recuperation des infectes pour ne pas les reblacklister
requete = "SELECT ip_crans FROM avertis_virus " requete = "SELECT ip_crans FROM avertis_virus"
curseur.execute(requete) curseur.execute(requete)
infectes = curseur.fetchall() infectes = curseur.fetchall()
ip1=str('0.0.0.0')
N=0 for verole in veroles:
if veroles:
ip1=veroles[0][0] ip=verole[0]
for i in range(0,len(veroles)): nombre=verole[1]
ip=veroles[i][0]
if ip != ip1 : # si le type dépasse le seuil, on le blacklist
ip1=ip if nombre < virus.flood or [ip] not in infectes :
N=0 continue
else :
N=N+1 # lecture des infos de ldap
if N >= virus.flood and [ip] not in infectes: machine = ldap.search('ipHostNumber=%s' % ip,'w' )['machine'][0]
machine = ldap.search('ipHostNumber=%s' % ip,'w' )['machine'][0] hostname = machine.nom()
hostname = machine.nom() proprio = machine.proprietaire()
proprio = machine.proprietaire() blacklist = proprio.blacklist()
# Inscription dans la table des infectes
requete="INSERT INTO avertis_virus (ip_crans,date) VALUES ('%s','now')" % ip1 # Inscription dans la table des infectes
curseur.execute(requete) requete="INSERT INTO avertis_virus (ip_crans,date) VALUES ('%s','now')" % ip
requete = "SELECT ip_crans FROM avertis_virus" curseur.execute(requete)
curseur.execute(requete)
infectes = curseur.fetchall() print "Deconnexion flood : %s" % hostname
bl = proprio.blacklist()
# Blacklistage # on récupère les index des lignes de bl ou il y a marqué virus
for ligne in bl: index = [blacklist.index(x) for x in blacklist if 'virus' in x ]
# On réédite si possible les lignes existantes pour ne pas charger la blackliste if index :
if 'virus,' in ligne : proprio.blacklist(( index[0] , ['now','-','virus',hostname] ))
liste=ligne.split(',') proprio.save()
date = time() else :
debut = localtime(date) proprio.blacklist(['now','-','virus',hostname])
argument=['now','-','virus',hostname] proprio.save()
index = bl.index(ligne)
proprio.blacklist((index,argument))
proprio.save()
break
else :
date = time()
debut = localtime(date)
proprio.blacklist(["%d/%d/%d %d:%d" % (debut[2],debut[1],debut[0],debut[3],debut[4]),'-','virus',hostname])
proprio.save()
#date = time()
#debut = localtime(date)
#proprio.blacklist(["%d/%d/%d %d:%d" % (debut[2],debut[1],debut[0],debut[3],debut[4]),'-','virus',hostname])
#proprio.save()
print "Deconnexion flood %s" % hostname
# Reconnexion si le virus a disparu # Reconnexion si le virus a disparu
################################### ###################################
@ -310,6 +279,7 @@ for i in range(0,len(infectes)):
# Gestion du P2P : # Gestion du P2P :
################## ##################
# Dans le table virus on sélectionne les ip_src qui appartiennent au reseau # Dans le table virus on sélectionne les ip_src qui appartiennent au reseau
requete = "SELECT ip_src,id_p2p FROM p2p WHERE (ip_src<<=inet('138.231.136.0/21') or ip_src<<=inet('138.231.148.0/22')) and date > timestamp 'now' - interval '1 day' order by ip_src" requete = "SELECT ip_src,id_p2p FROM p2p WHERE (ip_src<<=inet('138.231.136.0/21') or ip_src<<=inet('138.231.148.0/22')) and date > timestamp 'now' - interval '1 day' order by ip_src"
curseur.execute(requete) curseur.execute(requete)
@ -318,6 +288,7 @@ pair = curseur.fetchall()
requete = "SELECT ip_crans FROM avertis_p2p WHERE date > timestamp 'now' - interval '1 day'" requete = "SELECT ip_crans FROM avertis_p2p WHERE date > timestamp 'now' - interval '1 day'"
curseur.execute(requete) curseur.execute(requete)
avertisp2p = curseur.fetchall() avertisp2p = curseur.fetchall()
N=0
ip1=str('0.0.0.0') ip1=str('0.0.0.0')
if pair : if pair :