ajout des uploads massifs, si la mise en page vous plait paas on peut la

mofifier

darcs-hash:20051027152048-4ec08-e68e85aacb9a8b3386cf92e70f7f755dc4bee222.gz
This commit is contained in:
chove 2005-10-27 17:20:48 +02:00
parent 33196e37b6
commit b3a3000b85

View file

@ -12,6 +12,8 @@ sys.path.append('/usr/scripts/gestion')
from config import p2p from config import p2p
import smtplib import smtplib
import socket import socket
from analyse import stats
############################### ###############################
# Ouverture des connections : # # Ouverture des connections : #
@ -34,14 +36,13 @@ curseur.execute(requete)
hard = curseur.fetchall() hard = curseur.fetchall()
liste_upload="" liste_upload=""
for i in range(0,len(hard)): for i in range(0,len(hard)):
IP=hard[i][0] IP=hard[i][0]
hostname = socket.gethostbyaddr("%s"%IP)[0] hostname = socket.gethostbyaddr("%s"%IP)[0]
upload = round((hard[i][1]),2) upload = round((hard[i][1]),2)
download = round((hard[i][2]),2) download = round((hard[i][2]),2)
liste_upload += "%10s%10s\t%s\n"%(str(upload),str(download),str(hostname)) liste_upload += "%10s%10s\t%s\n"%(str(upload),str(download),str(hostname))
liste_upload
# Upload exemptés : # Upload exemptés :
################### ###################
@ -50,32 +51,32 @@ curseur.execute(requete)
exemptes = curseur.fetchall() exemptes = curseur.fetchall()
liste_exemptes="" liste_exemptes=""
for i in range(0,len(exemptes)): for i in range(0,len(exemptes)):
IP=exemptes[i][0] IP=exemptes[i][0]
hostname = socket.gethostbyaddr("%s"%IP)[0] hostname = socket.gethostbyaddr("%s"%IP)[0]
upload=round(exemptes[i][1],2) upload=round(exemptes[i][1],2)
download=round(exemptes[i][2],2) download=round(exemptes[i][2],2)
liste_exemptes=liste_exemptes+"%10s%10s\t%s\n"%(str(upload),str(download),str(hostname)) liste_exemptes=liste_exemptes+"%10s%10s\t%s\n"%(str(upload),str(download),str(hostname))
# Upload des serveurs : # Upload des serveurs :
####################### #######################
liste_serveurs="" liste_serveurs=""
for i in (10,1,3,4,7,8,9,11): for i in (10,1,3,4,7,8,9,11):
IP='138.231.136.'+str(i) IP='138.231.136.'+str(i)
hostname = socket.gethostbyaddr("%s"%IP)[0] hostname = socket.gethostbyaddr("%s"%IP)[0]
requete = "SELECT sum(upload)/1024/1024,sum(download)/1024/1024 FROM upload WHERE ip_crans='%s' AND date > timestamp 'now' - interval '1 day' "%IP requete = "SELECT sum(upload)/1024/1024,sum(download)/1024/1024 FROM upload WHERE ip_crans='%s' AND date > timestamp 'now' - interval '1 day' "%IP
curseur.execute(requete) curseur.execute(requete)
traffic=curseur.fetchall() traffic=curseur.fetchall()
try : try :
round(traffic[0][0],2) round(traffic[0][0],2)
except TypeError: except TypeError:
print "Pas d'upload ou download" print "Pas d'upload ou download depuis %s" % hostname
else : else :
upload=round(traffic[0][0],2) upload=round(traffic[0][0],2)
download=round(traffic[0][1],2) download=round(traffic[0][1],2)
liste_serveurs += "%10s%10s\t%s\n"%(str(upload),str(download),str(hostname)) liste_serveurs += "%10s%10s\t%s\n"%(str(upload),str(download),str(hostname))
# Machines infectées : # Machines infectées :
###################### ######################
requete = "SELECT DISTINCT ip_crans FROM avertis_virus " requete = "SELECT DISTINCT ip_crans FROM avertis_virus "
@ -83,15 +84,15 @@ curseur.execute(requete)
infections = curseur.fetchall() infections = curseur.fetchall()
liste_virus="" liste_virus=""
for i in range(1,len(infections)): for i in range(1,len(infections)):
IP=infections[i][0] IP=infections[i][0]
print IP print 'Machine infectée %s' % IP
try: try:
hostname = socket.gethostbyaddr("%s"%IP)[0] hostname = socket.gethostbyaddr("%s"%IP)[0]
except socket.herror: except socket.herror:
continue continue
liste_virus+="%s\n"%(str(hostname)) liste_virus+="%s\n"%(str(hostname))
# Machines utilisant des protocoles P2P : # Machines utilisant des protocoles P2P :
######################################### #########################################
requete = "SELECT ip_crans,protocole FROM avertis_p2p WHERE date>timestamp 'now' - interval '1 day'" requete = "SELECT ip_crans,protocole FROM avertis_p2p WHERE date>timestamp 'now' - interval '1 day'"
@ -99,14 +100,32 @@ curseur.execute(requete)
p2p = curseur.fetchall() p2p = curseur.fetchall()
liste_p2p="" liste_p2p=""
for i in range(0,len(p2p)): for i in range(0,len(p2p)):
IP=p2p[i][0] IP=p2p[i][0]
protocole = p2p[i][1] protocole = p2p[i][1]
hostname = socket.gethostbyaddr("%s"%IP)[0] hostname = socket.gethostbyaddr("%s"%IP)[0]
requete = "SELECT COUNT(ip_src) from p2p where date > timestamp 'now' - interval '1 day' and ip_src='%s'"%IP requete = "SELECT COUNT(ip_src) from p2p where date > timestamp 'now' - interval '1 day' and ip_src='%s'"%IP
curseur.execute(requete) curseur.execute(requete)
paquets=curseur.fetchall() paquets=curseur.fetchall()
liste_p2p+="%10s\t%20s\t%s\n"%(str(protocole),str(hostname),str(paquets[0][0])) liste_p2p+="%10s\t%20s\t%s\n"%(str(protocole),str(hostname),str(paquets[0][0]))
# statistiques des gros uploads depuis les serveurs
###################################################
# liste des seveur à controler :
# - nom du serveur
# - adresse IP
# - upload mini critique
# - nombre max de lignes à afficher
serveurs = [['Zamok','138.231.136.1',30,20],
['Rouge','138.231.136.3',30,20],
['Sila','138.231.136.10',1000,20]]
gros_uploads_des_serveurs = ""
for serveur in serveurs :
titre = "Gros upload depuis %s" % serveur[0]
gros_uploads_des_serveurs += titre + '\n' + '-'*len(titre) + '\n\n'
gros_uploads_des_serveurs += stats(ip_crans=serveur[1],group=['ip_ext'],upload_mini=serveur[2],limit=serveur[3]).encode('iso-8859-15')
gros_uploads_des_serveurs += "\n\n"
############# #############
# Message : # # Message : #
@ -122,7 +141,7 @@ Bilan des d
Machines infectées pour virus : Machines infectées pour virus :
----------------------------- -------------------------------
%(liste_virus)s %(liste_virus)s
@ -133,7 +152,7 @@ Machines utilisant des protocoles P2P (Nb de paquets par 24 heures) :
Statistiques d'upload -- download : Statistiques d'upload -- download :
--------------------------------- -----------------------------------
%(liste_upload)s %(liste_upload)s
@ -145,19 +164,23 @@ Statistiques d'upload -- download des serveurs :
------------------------------------------------ ------------------------------------------------
%(liste_serveurs)s %(liste_serveurs)s
%(gros_uploads_des_serveurs)s
-- --
statistiques.py statistiques.py
""" """
#print p2p.tag #print p2p.tag
corps = message %{'From':expediteur, corps = message %{'From':expediteur,
'To':destinataire, 'To':destinataire,
'liste_upload':liste_upload, 'liste_upload':liste_upload,
'liste_p2p':liste_p2p, 'liste_p2p':liste_p2p,
'liste_virus':liste_virus, 'liste_virus':liste_virus,
'liste_exemptes':liste_exemptes, 'liste_exemptes':liste_exemptes,
'liste_serveurs':liste_serveurs, 'liste_serveurs':liste_serveurs,
'seuil':5} 'gros_uploads_des_serveurs':gros_uploads_des_serveurs,
'seuil':5}
#corps = corps.encode('iso 8859-15') #corps = corps.encode('iso 8859-15')
mail.sendmail('disconnect@crans.org','disconnect@crans.org',corps) mail.sendmail('disconnect@crans.org','disconnect@crans.org',corps)