Indice de la Documentación
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
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 ?
Indice de la Documentación
|