[mac_prises] Mail de destination dans config, et présentation "améliorée"

This commit is contained in:
Pierre-Elliott Bécue 2014-10-11 01:11:26 +02:00
parent 8ffe83a331
commit d5811da81d
2 changed files with 29 additions and 14 deletions

View file

@ -3,9 +3,15 @@
""" Variables de configuration pour mac_prises. """
#: Pour spammer test@lists.crans.org, mettre à true.
#: Pour spammer disconnect@lists.crans.org à chaque analyse, mettre à True
hargneux = False
#: Mail de destination des infos.
if hargneux:
mail_to = "test@lists.crans.org"
else:
mail_to = "disconnect@lists.crans.org"
#: Si pour une chambre donnée, il y a plus de 300 entrées filaires
#: n'appartenant pas à l'adhérent propriétaire de la mac, on prévient.
max_inconnues_par_jour = 480

View file

@ -19,6 +19,7 @@ sys.path.append('/usr/scripts/')
import lc_ldap.shortcuts
import lc_ldap.objets
import collections
from email.header import Header
ldap = lc_ldap.shortcuts.lc_ldap_local()
@ -139,7 +140,7 @@ def summary():
chambres.update(chbres)
number += len(dataframe)
data += [[dtype, ", ".join(list(chbres)), donnee[0], donnee[1], donnee[2]] for donnee in dataframe]
output += u'Sur le relevé %s, la mac est apparue %s fois. Elle est apparue dans les chambres suivantes : %s.\n' % (dtype, number, ", ".join(list(chambres)))
output += u'Sur le relevé %s, la mac est apparue %s fois dans de multiples chambres simultanément. Elle est apparue dans les chambres suivantes : %s.\n' % (dtype, number, ", ".join(list(chambres)))
output += u'Consulter les logs (en PJ) pour plus d\'informations.\n\n'
try:
maxlen = max([len(a[1]) for a in data]) + 4
@ -210,13 +211,21 @@ if __name__ == '__main__':
Logs = u''
if '--summary' in sys.argv or 'summary' in sys.argv:
# On envoie le résumé
output += u' *Résumé des apparitions de mac dans plusieurs chambres*\n\n'
output += u'+---------------------------------------------------------------+\n'
output += u'| Résumé des apparitions de mac dans plusieurs chambres |\n'
output += u'+---------------------------------------------------------------+\n\n'
texte, Logs = summary()
output += texte
output += u"\n\n"
if '--reperage' in sys.argv or 'reperage' in sys.argv:
# On envoie le repérage
output += u' *Repérage de spoof potentiel par comptage*\n\n'
output += u'+---------------------------------------------------------------+\n'
output += u'| Repérage de spoof potentiel par comptage |\n'
output += u'+---------------------------------------------------------------+\n\n'
output += u"""Attention, cette fonctionnalité est plus une forme de stalking que très utile.\n"
Elle visait initialement à repérer les machines qui étaient trop longtemps dans
une chambre qui n'est pas celle où elles devraient être, cependant, les divers
tests menés n'ont pas prouvé une grande efficacité de cette méthode.\n\n"""
output += reperage_mac_inconnue()
Logs = Logs.encode('UTF-8')
@ -226,7 +235,7 @@ if __name__ == '__main__':
sys.exit(0)
message = """From: %(from)s
To: %(to)s
Subject: Résumé quotidien : mac_prises.
Subject: %(subject)s
Content-Type: multipart/mixed; boundary="_424234545aaff-ffca234efff-556adceff5646_"
--_424234545aaff-ffca234efff-556adceff5646_
@ -243,16 +252,16 @@ Content-Disposition: attachment; filename="logs_analyse"
--_424234545aaff-ffca234efff-556adceff5646_--
"""
corps = message % { 'from': 'Spoofing watcher <spoof-watcher@crans.org>',
'to': 'test@lists.crans.org',
'subject': 'Résumé journalier ',
corps = message % { 'from': 'Spoofing watcher <disconnect@lists.crans.org>',
'to': mac_prise.mail_to,
'subject': Header(u"Résumé quotidien des correspondances mac_prises.", "UTF-8"),
'contenu': output,
'logs': Logs,
}
mail = smtplib.SMTP('localhost')
mailfrom = 'spoof-watcher@crans.org'
mailto = 'test@lists.crans.org'
mailfrom = 'disconnect@lists.crans.org'
mailto = mac_prise.mail_to
mail.sendmail(mailfrom, mailto, corps)
else:
Logs = [u"Logs du script %s\n\n\n" % sys.argv[0]]
@ -274,13 +283,13 @@ Content-Type: text/plain; charset="UTF-8"
%(logs)s
"""
corps = message % { 'from': 'Spoofing watcher <spoof-watcher@crans.org>',
'to': 'test@lists.crans.org',
corps = message % { 'from': 'Spoofing watcher <disconnect@lists.crans.org>',
'to': mac_prise.mail_to,
'subject': 'Logs de %s' % sys.argv[0],
'logs': "".join(Logs),
}
mail = smtplib.SMTP('localhost')
mailfrom = 'spoof-watcher@crans.org'
mailto = 'test@lists.crans.org'
mailfrom = 'disconnect@lists.crans.org'
mailto = mac_prise.mail_to
mail.sendmail(mailfrom, mailto, corps.encode('utf-8'))