Vous êtes sur la page 1sur 10

UFR Sciences Exactes et Naturelles

Chillispot et Freeradius
Documentation Technique

Auteur : Ahmet DEMIR Anne 2009 - 2010 Master 2 Administration et Scurit des Rseaux

SOMMAIRE

PREREQUIS....................................................................................................2

MISE EN PLACE DUN SERVEUR SECRURISE.....................................................3 INSTALLATION DES PAQUETS .................................................................................... 3 ACTIVATION DU MODULE SSL .................................................................................. 3 CREATION DU CERTIFICAT........................................................................................ 3 CONFIGURATION DE APACHE2 ................................................................................. 4 CREER UN HOTE VIRTUEL ........................................................................................ 4

INSTALLATION DE FREERADIUS ......................................................................5

INSTALLATION DE CHILLISPOT .......................................................................6 CONFIGURATION DES INTERFACES ............................................................................. 6 INSTALLATION DU PAQUET CHILLISPOT ....................................................................... 6 INSTALLATION DU SCRIPT CGI .................................................................................. 7 CONFIGURATION DE CHILLISPOT ............................................................................... 7 REGLES IPTABLES DE FIREWALL ................................................................................. 8 CONFIGURATION DU POINT DACCES .......................................................................... 8

EXECUTION ...................................................................................................8

DEBOGAGE : ..................................................................................................8 FREERADIUS : ...................................................................................................... 8 CHILLISPOT ......................................................................................................... 9 POUR LE RESTE : ................................................................................................... 9

Ahmet DEMIR Chillispot et Freeradius

PREREQUIS
Pour mettre en place le Hotspot, nous avons besoin dun serveur, dune connexion Internet, un point daccs et un client en Wifi. Pour ce tutorial le serveur est sous Ubuntu 9.10, le point daccs est un Linksys WRT350N. On utilisera le rseau 172.16.1.0/24 pour la connexion du Chillispot. Linterface connecte internet sera eth0 (connecte une Box ordinaire, peu importe son adresse) et celle ct Wifi sera eth1 (relie au point daccs) donc on a besoin de deux cartes rseaux.

AP 172.16.1.254 Internet eth1 eth0 Modem Routeur ADSL Serveur Chillispot et Radius 172.16.1.1 Client

Ahmet DEMIR Chillispot et Freeradius

MISE EN PLACE DUN SERVEUR SECRURISE


Installation des paquets
On a besoin dapache2, mais aussi dopenssl : $ sudo apt-get install y apache2 openssl

Activation du module SSL


Pour que le protocole SSL puisse fonctionner avec le Serveur HTTP Apache2, il faut activer le module ssl avec la commande : $ sudo a2enmod ssl Et on relance Apache2 $ sudo /etc/init.d/apache2 reload Ou $ sudo service apache2 reload

Cration du certificat
$ sudo openssl req -x509 -nodes -days 365 -newkey /etc/apache2/server.crt -keyout /etc/apache2/server.key Explications : -x509 -nodes donne le type de certificat voulu -days 365 indique la dure de validit (en jours) de votre certificat -newkey rsa:1024 demande une cl RSA de 1024 bits - d'aprs la doc apache, il est dconseill de crer une cl plus grosse pour des histoires de compatibilit -out /etc/apache2/server.crt est le chemin de votre certificat -keyout /etc/apache2/server.key est le chemin de la cl prive rsa:1024 -out

On protge notre fichier $ sudo chmod 440 /etc/apache2/server.key

Ahmet DEMIR Chillispot et Freeradius

Configuration de Apache2
Par dfaut Apache2 coute sur le port 80, il faut donc lui dire dcouter le port 443 (SSL). On dite le fichier /etc/apache2/ports.conf. Normalement on y trouve les directives : <IfModule mod_ssl.c> Listen 443 </IfModule>

Si elles ny sont pas, y ajouter uniquement Listen 443.

Crer un hte virtuel


On dite le fichier /etc/apache2/httpd.conf : <VirtualHost 172.16.1.1:80> Redirect / https://172.16.1.1/ </VirtualHost> <VirtualHost 172.16.1.1:443> SSLEngine on SSLCertificateFile /etc/apache2/server.crt SSLCertificateKeyFile /etc/apache2/server.key ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/ </VirtualHost>

Explications : VirtualHost permet de dfinir un hte identifi par son IP et son port. Redirect on dcide de rediriger toutes les requtes sur le port 80 vers le 443. SSLEngine permet d'activer le moteur SSL au sein d'un hte virtuel, Elle peut prendre deux arguments > on/off SSLCertificateFile dfinit le certificat authentifiant le Serveur auprs des clients. L'argument est le chemin d'accs au certificat. En ce qui nous concerne, le certificat se trouve dans le rpertoire/etc/apache2/ SSLCertificateKeyFile dfinit la cl prive du Serveur utilise pour signer l'change de cl entre le client et le serveur. Elle prend en argument le chemin d'accs la cl (fichier). Dans notre cas, la cl se trouve dans le rpertoire /etc/apache2/ ScriptAlias on dfinit un alias pour accder aux scripts CGI.

Et on relance Apache2 : $ sudo /etc/init.d/apache2 reload Si vous avez une erreur pour le ScriptAlias ce nest pas grave, ne touchez rien et continuez. Ahmet DEMIR Chillispot et Freeradius 4

INSTALLATION DE FREERADIUS
On installe le paquet : $ sudo apt-get install y freeradius On dfinit un client pour Radius dans le fichier /etc/freeradius/clients.conf : client 172.16.1.1 { secret = secretradius shortname = ahmethotspot } Explications : client dfinit un client par son IP secret le mot de passe chang entre Radius et Chillispot shortname ssid du hotspot (facultatif)

Et on ajoute un utilisateur dans /etc/freeradius/users: ahmet Auth-Type := Chap, Cleartext-Password := "toto"

Chillispot utilise soit PAP, soit CHAP pour lchange des paramtres de connexion. Avec PAP le mot de passe transite en clair, alors quavec CHAP il est crypt (hash MD5). On prcise donc le login (ahmet), le type dauthentification (ici CHAP, si cest PAP, ne pas mettre la directive Auth-Type), et toto le mot de passe en clair (pour CHAP), si cest PAP, mettre la directive Password ou User-Password.

Ahmet DEMIR Chillispot et Freeradius

INSTALLATION DE CHILLISPOT
Pour les listes de contrles on installe iptables $ sudo apt-get install iptables On a galement besoin dactiver tun (Universal TUN/TAP device driver) pour faire passer le traffic entre le point daccs et le serveur.

Configuration des interfaces


$ sudo modprobe tun $ echo "alias char-major-10-200 tun" >> /etc/modules Puis on dfinit linterface eth1 avec une ip fixe (pour les tests, ce sera linterface tun0 qui aura cette adresse en lanant chilli), et eth0 aura une ip avec le DHCP. On apporte ces modifications dans le fichier /etc/network/interfaces : auto lo iface lo inet loopback auto eth0 iface eth0 inet dhcp auto eth1 iface eth1 inet static address 172.16.1.1 netmask 255.255.255.0 network 172.16.1.0 broadcast 172.16.1.255

On active la diffusion des paquets dans le fichier /etc/systcl.conf net.ipv4.ip_forward=1 et on relance /sbin/sysctl p

Installation du paquet Chillispot


Ensuite on tlcharge Chillispot : $ wget http://www.chillispot.info/download/chillispot_1.0_i386.deb On installe : $ dpkg -i chillispot_0.97-1_i386.deb

Ahmet DEMIR Chillispot et Freeradius

Installation du script CGI


On copie le script cgi sur lequel les utilisateurs seront redirigs : $ cp /usr/share/doc/chillispot/hotspotlogin.cgi.gz /usr/lib/cgi-bin/ $ cd /usr/lib/cgi-bin $ gunzip hotspotlogin.cgi.gz $ chmod a+x hotspotlogin.cgi

Dans ce fichier on dite le secret partag avec Chillispot $uamsecret = "secretchilli";

Configuration de Chillispot
On dite le fichier /etc/chilli.conf La plage dadresses attribue par le serveur DHCP de Chillispot : net 172.16.1.0/24 Le domaine a chang, remplacer .org par .info domain key.chillispot.info Dfinir sur quelle adresse Radius doit couter : radiuslisten 172.16.1.1 Adresse sur serveur Radius : radiusserver1 172.16.1.1 Si on ne dispose pas dun deuxime serveur il faut quand mme mettre la 1re adresse : radiusserver2 172.16.1.1 Le secret partag entre Radius et Chillispot : radiussecret secretradius Le SSID du HotSpot (facultatif) radiusnasid AhmetHotSpot Linterface sur laquelle le HotSpot est connect et o le DHCP attribue les adresses : dhcpif eth1 La page o les utilisateurs seront redirigs : uamserver https://172.16.1.1/cgi-bin/hotspotlogin.cgi Le secret que partage Chillispot : uamsecret secretchilli Adresses autorises sans identification : uamallowed 172.16.1.0/24 Ahmet DEMIR Chillispot et Freeradius 7

Rgles iptables de Firewall


On copie le fichier fourni en exemple : $ sudo cp /usr/share/doc/chillispot/firewall.iptables /etc/chilli.iptables Et on change les droits: $ sudo chmod u+x /etc/chilli.iptables Dans ce fichier nous devons configurer 2 variables (EXTIF et INTIF). La premire des deux (EXTIF) correspond linterface prsente sur le rseau o le internet (ou le WAN) se trouve. La deuxime (INTIF) correspond linterface prsente sur le rseau WiFi. Voici le rsultat souhait dans notre exemple : EXTIF="eth0" INTIF="eth1".

Configuration du point daccs


Le point daccs ne sert rien, il ne fait que transmettre les paquets au serveur. Donc il faut juste attribuer une adresse libre (on utilisera la dernire du sous-rseau soit 172.16.1.254) et un SSID (pour notre exemple ce sera AhmetHotSpot). Il est important de savoir que cest Chillispot qui fait office de serveur DHCP, donc dsactivez le DHCP sur votre serveur ET sur votre point daccs. Dsactivez galement le NAT, MAC Authentification, scurit dauthentification etc

EXECUTION
$ $ $ $ $ $ /etc/init.d/freeradius stop /etc/init.d/freeradius start ifconfig eth1 0.0.0.0 /etc/init.d/chilli stop /etc/init.d/chilli start /etc/chilli.iptables

DEBOGAGE :
Freeradius :
- Stoppez le service FreeRadius en cours dexcution : /etc/init.d/freeradius stop - Lancez le mode DEBUG : freeradius XXX A Une fois termin, noubliez pas de relancer le service : - Stoppez le mode debug : CTRL + C - Relancez le service : /etc/init.d/freeradius start

Pour voir les clients connects excutez radwho Les fichiers logs se situent dans le rpertoire /var/log/freeradius

Ahmet DEMIR Chillispot et Freeradius

Vous pouvez galement tester un utilisateur en ligne de commande et voir les changes en mode debug de freeradius. Lancez le debug et ouvrez un autre terminal et tapez radtest ahmet toto 172.16.1.1 0 secretradius. Normalement vous devriez avoir une rponse du type Accept-accept.

ChilliSpot
On peut utiliser la commande chilli --fg --debug

Pour le reste :
Consultez les logs dans /var/log et votre moteur de recherche est votre meilleur ami et lisez les docs ! Dsormais je ne rpondrai plus aux mails, je ne suis pas l pour faire votre travail votre place, ce tutorial est une aide et non LA mthode pour mettre en place Chillispot.

Ahmet DEMIR Chillispot et Freeradius

Vous aimerez peut-être aussi