Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
Gabriel Detraz
scripts
Commits
880b8f2d
Commit
880b8f2d
authored
Feb 18, 2015
by
Gabriel Detraz
Browse files
On ajoute ra2.py et le templates des mails avec
parent
4aae5c67
Changes
7
Hide whitespace changes
Inline
Side-by-side
gestion/mail/template/deconnex_ra/From/fr
0 → 100644
View file @
880b8f2d
Les nounous du Crans <disconnect@crans.org>
gestion/mail/template/deconnex_ra/README
0 → 100644
View file @
880b8f2d
Envoyé à l'adhérent lorsque son impression est terminée
gestion/mail/template/deconnex_ra/Subject/fr
0 → 100644
View file @
880b8f2d
[Crans] Deconnexion pour router advertisement
gestion/mail/template/deconnex_ra/To/fr
0 → 100644
View file @
880b8f2d
{{To}}
gestion/mail/template/deconnex_ra/X-Mailer/fr
0 → 100644
View file @
880b8f2d
{{ mailer }}
gestion/mail/template/deconnex_ra/body/fr
0 → 100644
View file @
880b8f2d
Bonjour {{tname}},
La machine {{mach}} dont tu es le propriétaire a été déconnectée du réseau.
La raison de cette déconnexion est technique : le comportement de la machine est anormal.
Celle-ci émet des annonces signalant aux autres machines qu'elle peut gérer leur connexion
internet. Ceci est normalement réservé au routeur du réseau. Cela en compromet donc la
stabilité, et peut impacter les autres utilisateurs.
Pour plus d'information, tu peux nous contacter via diconnect@crans.org.
--
Les membres actifs de l'association
surveillance/ra2.py
0 → 100755
View file @
880b8f2d
#!/bin/bash /usr/scripts/python.sh
# -*- coding: utf-8 -*-
# Réecriture complète de ra.py
# On fait tourner ramond. Dès qu'une mac non autorisée fait une ra,
# ce script s'execute et pose une blackliste sur la machine.
# Prise en compte du nouveau binding.
# Envoie de mails au propriétaire et à disconnect
# Gabriel Détraz <detraz@crans.org>
import
os
import
sys
import
time
import
subprocess
# On importe les scripts Crans
import
lc_ldap.shortcuts
from
gestion
import
mail
from
utils.sendmail
import
actually_sendmail
# On règle le nombre de RA admissibles par jour par machine:
TOL
=
3
# Chemin du fichier des logs
LOG
=
'/localhome/detraz/pirate2.txt'
# On ouvre une connexion LDAP à la base de test une fois pour toute.
conn
=
lc_ldap
.
shortcuts
.
lc_ldap_test
()
Mac_ra
=
os
.
getenv
(
'SOURCE_MAC'
)
#Mac_ra=u'48:d7:05:d3:0c:af'
#print Mac_ra
tm
=
time
.
strftime
(
'%d/%m/%y'
,
time
.
localtime
())
# Logs des macs capturées, avec la date
with
open
(
'/localhome/detraz/pirate2.txt'
,
'a'
)
as
f
:
print
>>
f
,
Mac_ra
,
tm
# On cherche la machine correspondante
machine
=
conn
.
search
(
u
'(macaddress=%s)'
%
Mac_ra
,
mode
=
"rw"
)
# On agit que si la machine est connu
if
machine
<>
[]:
md
=
machine
[
0
]
# print md
# Si ca fait moins de TOL, on laisse passer :
p
=
subprocess
.
Popen
([
'grep'
,
'-c'
,
Mac_ra
+
' '
+
tm
,
LOG
],
stdout
=
subprocess
.
PIPE
)
stdout
,
stderr
=
p
.
communicate
()
print
stdout
if
int
(
stdout
)
<=
TOL
:
sys
.
exit
(
1
)
# Sécurité : on évite de poser une bl à un serveur
if
isinstance
(
md
.
proprio
(),
lc_ldap
.
objets
.
AssociationCrans
):
sys
.
exit
(
1
)
# Cohérence : si il y a déjà un bl, on arrète
bl
=
md
.
blacklist_actif
()
# print bl
for
x
in
bl
:
# print x['type']
if
x
[
'type'
]
==
'ipv6_ra'
:
sys
.
exit
(
1
)
adh
=
md
.
proprio
()
# print md.proprio()['prenom'][0]
# print md.proprio().get_mail()
#On pose la blackliste sur la machine incriminée
md
.
blacklist
(
'ipv6_ra'
,
u
'auto ra.py : router advertisement non autorisée'
,
debut
=
'now'
,
fin
=
'-'
)
md
.
save
()
# On envoie une notification à disconnect et à la personne :
From
=
'disconnect@crans.org'
To
=
adh
.
get_mail
()
Cc
=
'disconnect@crans.org'
name
=
adh
.
ldap_name
mach
=
unicode
(
md
[
'host'
][
0
])
if
name
==
'adherent'
:
tname
=
unicode
(
adh
[
'prenom'
][
0
])
+
" "
+
unicode
(
adh
[
'nom'
][
0
])
elif
name
==
'club'
:
tname
=
unicode
(
adh
[
'nom'
][
0
])
mailtxt
=
mail
.
generate
(
'deconnex_ra'
,
{
'To'
:
To
,
'From'
:
From
,
'tname'
:
tname
,
'mach'
:
mach
,
})
actually_sendmail
(
From
,
(
To
,
Cc
),
mailtxt
)
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment