Simplification par Bilou
darcs-hash:20051018194506-6d78a-8eae508674cdd8da1ef3a2bfcc180175da8bdcd1.gz
This commit is contained in:
parent
9eb57d9a9d
commit
2ef94e1a0d
1 changed files with 65 additions and 94 deletions
|
@ -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 :
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue