From 30074493510af19633b573f182deff6e2e7c7d0f Mon Sep 17 00:00:00 2001 From: pauget Date: Wed, 23 Nov 2005 23:06:35 +0100 Subject: [PATCH] Filtrage machines du crans rtabli. Utilisation de la socket pour le ldap. darcs-hash:20051123220635-41617-976dfc3063fc781f40c29f90ddcb92413d9b5dd9.gz --- radius_auth.py | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/radius_auth.py b/radius_auth.py index 85a3a5b9..fdaeacf0 100755 --- a/radius_auth.py +++ b/radius_auth.py @@ -29,22 +29,24 @@ def chap_ok(password, challenge, clear_pass) : if __name__ == '__main__' : # Test chap (comme cela on est sur que c'est bien un switch qui demande) mac=os.getenv('USER_NAME','').replace('"','') - + if not chap_ok(os.getenv('CHAP_PASSWORD'), os.getenv('CHAP_CHALLENGE'), mac) : - sys.stdout.write("Echec test CHAP") - sys.exit(-1) + sys.stdout.write("Echec test CHAP") + sys.exit(-1) # Mac dans la base LDAP - m=crans_ldap().search('mac=%s'%mac)['machine'] + m=crans_ldap(readonly=True).search('mac=%s'%mac)['machine'] if len(m)!=1 : sys.stdout.write("Pb recherche mac (nb résultat !=1)") sys.exit(-1) - # N'appartient pas au Crans (évite les spoof) + # N'appartient pas au Crans et n'a pas de prise attribuée + # donc sur uplink ou switch non filtré + # But : éviter le spoof d'une mac d'une machine clef proprio=m[0].proprietaire() -# if proprio.__class__ == crans : -# sys.stdout.write("Machine du crans") -# sys.exit(-1) + if proprio.__class__ == crans and m.prise == 'N/A' : + sys.stdout.write("Machine du crans") + sys.exit(-1) # Paiment ok ? paid=max(proprio.paiement()+[0])