Sesame Authentification v0.3 ============================== (c) 2003 Jerome KIEFFER (kieffer@crans.org). All the sesame project is licenced under the GPL The main source is at : ftp://islay.dyndns.org/pub/sesame Principe : ---------- autoriser l'acces a un reseau par l'attribution dynamique de regles de firewalling avec iptables en fait ca sert a authoriser (ou pas) des gens a se connecter sur internet depuis votre reseau WIFI. Il y deux categories d'acces : les utilisateurs en IP fixe, et les "tickets" pour 1 heure par exemple. ils ne sont pas geres pareil par exemple on ne peur que creer un ticket, pas le modifier. Je ne cache pas m'etre inspire du projet "NoCat" qui est lui meme sous GPL. Les pages web sont pompees de chez eux ainsi que la trame de certains programmes. Pourtant sesame est un projet bien different : il est ecrit en python, pas en perl et il est concu pour tourner sur une seule machine. la passerelle est donc aussi le serveur web Un grand merci donc a rob@nocat.net Le concept est le meme que celui preconnise par la NASA : http://www.nas.nasa.gov/Groups/Networks/Projects/Wireless/index.html Necessite : ----------- Linux avec kernel 2.4 ou + supportant netfilter/iptables apache-ssl Python (2.2 ou mieux) Un firewall deja configue. ici on ne fait que modifier quelques petites regles pour ouvrir ou fermer des portes. sudo (pour modifier le firewall) ============ Installation ============ dezipper l'archive, je vous conseille de la placer dans /usr/local/sesame A default il faudra redefinir la variable home au debut de chaque executable. Installer et configurer apache-SSL pour faire pointer la racine dans /usr/local/sesame/htdocs. de meme autoriser les scripts CGI et faire pointer le repertoire cgi-bin vers /usr/local/sesame/cgi-bin Configurer les regles de firewalling dans ~/lib/sesame.py Installer sudo et ajouter la regle contenue dans /usr/local/sesame/etc/sudo dans votre /etc/sudoers (authorisation pour executer iptables) Configurer CRON pour qu'il ferme les connection devenues inutiles. Pour cela copier /usr/local/sesame/etc/cron.d dans /etc/cron.d/sesame ====================== Ajout d'un utilisateur ====================== cela se fait simplement par la commande "edit-sesame" contenue de le repertoire /usr/sesame/bin. il faut fournir le nom, le mot de passe, la MAC et l'IP de la carte reseau et quelques autres infos (email, adresse) facultatives. ============ Utilisation ============ Si votre routeur se nomme "routeur", un client obtient une IP statique par DHCP, Pour acceder a internet depuis le reseau (WIFI) local, il se connecte sur le serveur web : https://routeur ceci est crypte pour eviter le sniffage du mot de passe. Une fois authentifie, le progamme ouvre une porte du firewall pour laisser sortir les paquets venant de la MAC/IP de l'ordinateur authentifie. Les portes se referment au bout de 2 minutes d'inactivite.(ou alors si le temps du ticket est ecoule POur les bugs report, et autres commentaires : kieffer@crans.org changelog : Version 0.1 : toute la partie web fonctionne, la mise a jours du firewall fonctionne mais une erreur de debutant fait que cela ne marche pas. (Jerome : relis Rusty) Version 0.2: maintenant iptables est directement piloté par python. il faut authoriser iptables dans sudo. cela ne semble pas handicapee les perfs mais c'est plus propre que d'appeler python en sudo par python (qui pose probleme). Version 0.3 : -inutile de relancer le firewall si la contable n'est pas modifiee -logger les utilisateurs dans des fichers distincts -logger les temps en secondes unix -page CGI de deconnection (identification par IP seulement) -Coller toutes les fonctions dans une biblotheque ds /lib -page de suivi de connection (identification par IP seulement) -ajouter user et time sans /etc/connected Version 0.4 : -outil console pour changer le mot de passe et les autres infos -facturation d'un utilisateur entre 2 dates -creation de ticket-internet de duree-definie (10minutes, 3 heures...) Ainsi que commencer a reflechir a ... l'interaction avec un serveur de mot de passe distant dhcp dynamique gestion du credit-temps Que penser de : http://airsnarf.shmoo.com. Est ce la peine de se casser le cul ?