Commit 5446bb81 authored by Daniel STAN's avatar Daniel STAN

deconnexion.py: code mort et obsolète

parent 00f44f0d
......@@ -28,9 +28,7 @@ from ldap_crans import crans_ldap
from ldap_crans import MachineWifi
from ldap_crans import MachineFixe
from time import *
#import locale
#locale.setlocale(locale.LC_TIME, 'fr_FR')
import lock
sys.path.append('/usr/scripts/surveillance/fiche_deconnexion')
from generate import generate_ps
from affich_tools import tableau
......@@ -41,19 +39,6 @@ import mail as mail_module
# ldap
ldap = crans_ldap()
# Quelques fonctions
####################
def machine_online(machine):
"""
Retourne True si la machine est connectée au réseau et False si elle ne l'est pas
"""
# Les machines wifi sont toujours online
if isinstance(machine, MachineWifi):
return True
# Arping pour les fixes
return not commands.getstatusoutput('/usr/sbin/arping -c 3 %s' % machine.mac())[0]
# Variables utiles
##################
......@@ -82,6 +67,7 @@ def connectsmtp():
return mail
# Pour trouver la chambre où était la machine que l'on déconnecte.
# TODO: mettre ça dans annuaires_pg
def reperage_chambre(mac):
pgsql = psycopg2.connect(host="thot.adm.crans.org", database='mac_prises', user='crans')
# A priori, pas besoin, on ne fait que des select
......@@ -290,148 +276,3 @@ for elupload, eltype, elid in uploadeurs:
curseur.execute("DELETE FROM avertis_upload_hard WHERE date < timestamp 'now' - interval '85200 seconds'") # 23h et 40min pour prolonger les blacklists toujours au dessus de la limite
curseur.execute("DELETE FROM avertis_upload_soft WHERE date < timestamp 'now' - interval '1 day'")
################################################################################
## Détection de l'existence de virus #
#################################################################################
#
## Dans la table virus on sélectionne les ip_src qui appartiennent au réseau
#requete = "SELECT ip_src,count(ip_src) FROM virus WHERE %s and date > timestamp 'now' - interval '1 hour' group by ip_src" % ip_src_in_crans
#curseur.execute(requete)
#infectes = curseur.fetchall()
#
## Récupération des infectés pour ne pas les reblacklister
#requete = "SELECT ip_crans FROM avertis_virus"
#curseur.execute(requete)
#infectes_old = curseur.fetchall()
#
#for ip, nombre in infectes:
#
# # Si on est en dessous du seuil, on laisse passer
# if nombre < virus.virus:
# continue
#
# # Si on est déja avertis, on laisse passer
# if (ip) in infectes_old:
# continue
#
# # Lecture des infos de ldap
# machine = ldap.search('ipHostNumber=%s' % ip, 'w' )['machine'][0]
# hostname = machine.nom()
# proprio = machine.proprietaire()
# blacklist = proprio.blacklist()
#
# # Inscription dans la table des infectés
# requete = "INSERT INTO avertis_virus (ip_crans,date) VALUES ('%s','now')" % ip
# 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 'autodisc_virus' in x ]
# if index:
# # L'adhérent est déjà blacklisté
# proprio.blacklist((index[0], ['now', '-', 'autodisc_virus', hostname]))
# proprio.save()
# else:
# # L'adhérent n'est pas encore blacklisté
# proprio.blacklist(['now', '-', 'autodisc_virus', hostname])
# proprio.save()
#
#################################################################################
## Détection des virus qui floodent #
#################################################################################
#
## Dans la table virus on sélectionne les ip_src qui appartiennent au réseau
#requete = "SELECT ip_src,count(ip_src) FROM flood WHERE %s and date > timestamp 'now' - interval '1 hour' GROUP BY ip_src" % ip_src_in_crans
#curseur.execute(requete)
#infectes = curseur.fetchall()
#
## Récupération des infectés pour ne pas les reblacklister
#requete = "SELECT ip_crans FROM avertis_virus"
#curseur.execute(requete)
#infectes_old = curseur.fetchall()
#
#for ip, nombre in infectes:
#
# # Si on est en dessous du seuil, ou qu'on est déjà averti, on laisse passer
# if nombre < virus.flood or (ip) in infectes_old:
# continue
#
# # Lecture des infos de ldap
# try :
# machine = ldap.search('ipHostNumber=%s' % ip, 'w' )['machine'][0]
# except IndexError :
# # Dans le cas où l'ip détectée n'est pas enregistrée
# print "La machine avec l'ip %s n'est pas declaree !" % ip
# continue
# hostname = machine.nom()
# proprio = machine.proprietaire()
# blacklist = proprio.blacklist()
#
# # Inscription dans la table des infectés
# requete = "INSERT INTO avertis_virus (ip_crans,date) VALUES ('%s','now')" % ip
# 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 'autodisc_virus' in x ]
# try:
# if index:
# # L'adhérent est déjà blacklisté
# proprio.blacklist((index[0], ['now', '-', 'autodisc_virus', hostname]))
# proprio.save()
# else:
# # L'adhérent n'est pas encore blacklisté
# proprio.blacklist(['now', '-', 'autodisc_virus', hostname])
# proprio.save()
# except ValueError: # On a essayé de blacklister un proporiétaire virtuel
# pass # Le message d'erreur a déjà été affiché (changer ça ?)
#
#
## Reconnexion si le virus/flood a disparu
##########################################
#
## Dans la table avertis_virus on récupère la liste des infectés
#requete = "SELECT ip_crans FROM avertis_virus where date < timestamp 'now' - interval '1 hour'"
#curseur.execute(requete)
#infectes = [ x[0] for x in curseur.fetchall() ]
#
#for IP in infectes:
#
# # Nombre de requêtes de virus
# requete1 = "SELECT COUNT(ip_src) FROM virus where ip_src='%s' and date > timestamp 'now' - interval '1 hour'" % IP
# curseur.execute(requete1)
# nb_virus = curseur.fetchall()
#
# # Nombre de requêtes de flood
# requete2 = "SELECT COUNT(ip_src) FROM flood where ip_src='%s' and date > timestamp 'now' - interval '1 hour'" % IP
# curseur.execute(requete2)
# nb_flood = curseur.fetchall()
#
# # On ne traite que les IP qui sont descendues en dessous des seuils
# if nb_virus[0][0] < virus.virus and nb_flood[0][0] < virus.flood:
# try:
# machine = ldap.search('ipHostNumber=%s' % IP, 'w' )['machine'][0]
# except IndexError:
# print "Suppression de %s des machines infectees (la machine n'existe plus)"%IP
# requete = "DELETE FROM avertis_virus where ip_crans='%s'"%IP
# curseur.execute(requete)
# continue # la machine n'existe plus, on passe à l'infecté suivant
# # Si la machine n'est pas online, on reconnecte
# #if machine_online(machine):
# proprio = machine.proprietaire()
# bl = proprio.blacklist()
# hostname = machine.nom()
# # On stoppe la sanction pour une ligne existante de la blackliste
# # En prenant en compte le fait que d'autres lignes de blackliste
# # ont pu s'ajouter.
# lignes_enlevees = 0
# for ligne in bl:
# if '$-$autodisc_virus$%s' % hostname in ligne:
# liste = ligne.split('$')
# argument = [liste[0], 'now', liste[2], liste[3]]
# index = bl.index(ligne)
# proprio.blacklist((index, argument))
# proprio.save()
# lignes_enlevees += 1
# if lignes_enlevees == 0:
# print "Suppression de %s des machines infectees, mais aucune blackliste"%hostname
# requete = "DELETE FROM avertis_virus where ip_crans='%s'"%IP
# curseur.execute(requete)
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment