[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. """ """ 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 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 #: 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. #: n'appartenant pas à l'adhérent propriétaire de la mac, on prévient.
max_inconnues_par_jour = 480 max_inconnues_par_jour = 480

View file

@ -19,6 +19,7 @@ sys.path.append('/usr/scripts/')
import lc_ldap.shortcuts import lc_ldap.shortcuts
import lc_ldap.objets import lc_ldap.objets
import collections import collections
from email.header import Header
ldap = lc_ldap.shortcuts.lc_ldap_local() ldap = lc_ldap.shortcuts.lc_ldap_local()
@ -139,7 +140,7 @@ def summary():
chambres.update(chbres) chambres.update(chbres)
number += len(dataframe) number += len(dataframe)
data += [[dtype, ", ".join(list(chbres)), donnee[0], donnee[1], donnee[2]] for donnee in 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' output += u'Consulter les logs (en PJ) pour plus d\'informations.\n\n'
try: try:
maxlen = max([len(a[1]) for a in data]) + 4 maxlen = max([len(a[1]) for a in data]) + 4
@ -210,13 +211,21 @@ if __name__ == '__main__':
Logs = u'' Logs = u''
if '--summary' in sys.argv or 'summary' in sys.argv: if '--summary' in sys.argv or 'summary' in sys.argv:
# On envoie le résumé # 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() texte, Logs = summary()
output += texte output += texte
output += u"\n\n" output += u"\n\n"
if '--reperage' in sys.argv or 'reperage' in sys.argv: if '--reperage' in sys.argv or 'reperage' in sys.argv:
# On envoie le repérage # 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() output += reperage_mac_inconnue()
Logs = Logs.encode('UTF-8') Logs = Logs.encode('UTF-8')
@ -226,7 +235,7 @@ if __name__ == '__main__':
sys.exit(0) sys.exit(0)
message = """From: %(from)s message = """From: %(from)s
To: %(to)s To: %(to)s
Subject: Résumé quotidien : mac_prises. Subject: %(subject)s
Content-Type: multipart/mixed; boundary="_424234545aaff-ffca234efff-556adceff5646_" Content-Type: multipart/mixed; boundary="_424234545aaff-ffca234efff-556adceff5646_"
--_424234545aaff-ffca234efff-556adceff5646_ --_424234545aaff-ffca234efff-556adceff5646_
@ -243,16 +252,16 @@ Content-Disposition: attachment; filename="logs_analyse"
--_424234545aaff-ffca234efff-556adceff5646_-- --_424234545aaff-ffca234efff-556adceff5646_--
""" """
corps = message % { 'from': 'Spoofing watcher <spoof-watcher@crans.org>', corps = message % { 'from': 'Spoofing watcher <disconnect@lists.crans.org>',
'to': 'test@lists.crans.org', 'to': mac_prise.mail_to,
'subject': 'Résumé journalier ', 'subject': Header(u"Résumé quotidien des correspondances mac_prises.", "UTF-8"),
'contenu': output, 'contenu': output,
'logs': Logs, 'logs': Logs,
} }
mail = smtplib.SMTP('localhost') mail = smtplib.SMTP('localhost')
mailfrom = 'spoof-watcher@crans.org' mailfrom = 'disconnect@lists.crans.org'
mailto = 'test@lists.crans.org' mailto = mac_prise.mail_to
mail.sendmail(mailfrom, mailto, corps) mail.sendmail(mailfrom, mailto, corps)
else: else:
Logs = [u"Logs du script %s\n\n\n" % sys.argv[0]] 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 %(logs)s
""" """
corps = message % { 'from': 'Spoofing watcher <spoof-watcher@crans.org>', corps = message % { 'from': 'Spoofing watcher <disconnect@lists.crans.org>',
'to': 'test@lists.crans.org', 'to': mac_prise.mail_to,
'subject': 'Logs de %s' % sys.argv[0], 'subject': 'Logs de %s' % sys.argv[0],
'logs': "".join(Logs), 'logs': "".join(Logs),
} }
mail = smtplib.SMTP('localhost') mail = smtplib.SMTP('localhost')
mailfrom = 'spoof-watcher@crans.org' mailfrom = 'disconnect@lists.crans.org'
mailto = 'test@lists.crans.org' mailto = mac_prise.mail_to
mail.sendmail(mailfrom, mailto, corps.encode('utf-8')) mail.sendmail(mailfrom, mailto, corps.encode('utf-8'))