| Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente |
| coovachilli [Le 30/04/2017, 21:10] – [Pré-requis] raphaeldu68 | coovachilli [Le 09/06/2024, 21:19] (Version actuelle) – [Voir aussi] MAJ du site officiel spnux |
|---|
| ==== Configuration du réseau : ==== | ==== Configuration du réseau : ==== |
| |
| - [[:tutoriel:comment_modifier_un_fichier|Ouvrez avec les droits d'administration]] le fichier **/etc/network/interfaces** pour y ajouter les lignes suivantes :<file> | - [[:tutoriel:comment_modifier_un_fichier|Ouvrez avec les droits d'administration]] le fichier **/etc/network/interfaces** pour y ajouter ou modifiez les lignes suivantes :<file> |
| | |
| | # L'interface réseau de loopback |
| auto lo | auto lo |
| iface lo inet loopback | iface lo inet loopback |
| |
| | # L'interface réseau principale en provenance du routeur |
| auto eth0 | auto eth0 |
| iface eth0 inet dhcp | iface eth0 inet dhcp |
| |
| auto eth1</file>On indique ici que : | # L'interface réseau secondaire destinée aux clients |
| | auto eth1</file> |
| | |
| | FIXME Si dans le fichier **/etc/network/interfaces** il y a d'autres nom d'interfaces tel que **ens160 et ens192** à la place de **eth0 eth1** conservez les sinon vous obtiendrez une erreur en tapant //service networking restart// pour relancer les interface réseaux. |
| | |
| | On indique ici que : |
| * l'interface //eth0// sera reliée au modem adsl/serveur en mode dhcp. | * l'interface //eth0// sera reliée au modem adsl/serveur en mode dhcp. |
| * l'interface //eth1// sera celle qui servira de passerelle avec les clients abonnés. | * l'interface //eth1// sera celle qui servira de passerelle avec les clients abonnés. |
| - [[:tutoriel:comment_modifier_un_fichier|Modifiez avec les droits d'administration]] le fichier **/etc/sysctl.conf** pour activer ((décommenter en retirant le dièse #)) le paramètre //net.ip4.ip_forward//((ligne 28)). Vous devriez obtenir ceci : <file> | - [[:tutoriel:comment_modifier_un_fichier|Ouvrez avec les droits d'administration]] le fichier **/etc/sysctl.conf** pour activer ((décommenter en retirant le dièse #)) le paramètre //net.ip4.ip_forward//((ligne 28)). Vous devriez obtenir ceci : <file> |
| net.ip4.ip_forward=1</file> FIXME sur Lubuntu 14.04 : <file>net.ipv4.ip_forward=1</file> | # Uncomment the next line to enable packet forwarding for IPv4 |
| - Relancez ensuite les interfaces réseaux :<code>sudo /etc/init.d/networking restart</code> | net.ipv4.ip_forward=1</file> |
| | - Relancez ensuite les interfaces réseaux :<code>sudo service networking restart</code> |
| =====Installation et configuration du serveur Radius ===== | =====Installationet configuration du serveur Radius ===== |
| |
| ==== Téléchargement de Freeradius depuis les dépôts officiels ==== | ==== Téléchargement de Freeradius depuis les dépôts officiels ==== |
| [[:tutoriel:comment_installer_un_paquet|Installez les paquets]] **[[apt>freeradius,freeradius-mysql|freeradius freeradius-mysql]]** | [[:tutoriel:comment_installer_un_paquet|Installez les paquets]] **[[apt>freeradius,freeradius-mysql|freeradius freeradius-mysql]]** |
| |
| ==== Installation de la base de donnée MySQL ==== | Ou en ligne de commande : |
| | <code> sudo apt-get install freeradius freeradius-mysql -y</code> |
| | ==== Installationde la base de donnée MySQL ==== |
| - Création de la base de données pour stocker les noms d'utilisateurs et mots de passe :<code> | - Création de la base de données pour stocker les noms d'utilisateurs et mots de passe :<code> |
| mysql -u root -p | mysql -u root -p |
| client localhost { | client localhost { |
| ipaddr = 127.0.0.1 | ipaddr = 127.0.0.1 |
| secret = votre_secret_radius | [# explication commentée |
| | #sur plusieurs lignes |
| | #...] |
| | secret = votre_secret_radius |
| | #par defaut : testing123 |
| } | } |
| </file> | </file>Utilisez la fonction recherche Ctrl+W sur nano par exemple pour trouver les lignes dans le fichier |
| |
| ===Réglage du fichier de configuration=== | ===Réglage du fichier de configuration=== |
| |
| Éditez le fichier **/etc/freeradius/users** pour décommenter les lignes suivantes : | Éditez le fichier **/etc/freeradius/users** pour décommenter les lignes suivantes : |
| <code> | <file> |
| "John Doe" Auth-Type := Local, User-Password == "hello" | # This is an entry for a user with a space in their name. |
| Reply-Message = "Hello, %{User-Name}" | # Note the double quotes surrounding the name. |
| </code>puis redémarrez votre système. | # |
| | "John Doe" Cleartext-Password := "hello" |
| | Reply-Message = "Hello, %{User-Name}" |
| | |
| | </file>puis redémarrez votre système. |
| | <code>sudo shutdown -r now</code> |
| |
| ===Vérifier les fichiers de configuration FreeRadius=== | ===Vérifier les fichiers de configuration FreeRadius=== |
| sudo freeradius -XXX | sudo freeradius -XXX |
| </code>Si tout va bien la dernière ligne devrait afficher :<code> | </code>Si tout va bien la dernière ligne devrait afficher :<code> |
| Mon Jun 20 18:33:54 2011 : Debug: Ready to process requests. | Mon Jun 20 18:33:54 2011 : Debug: Ready to process requests. |
| </code>Appuyer sur les touches « Ctrl+C » de votre clavier pour quitter. | </code>Appuyer sur les touches « Ctrl+C » de votre clavier pour quitter. |
| - Redémarrez le serveur Freeradius : <code>sudo /etc/init.d/freeradius start</code> | - Redémarrez le serveur Freeradius : <code>sudo /etc/init.d/freeradius start</code> |
| |
| Si les tests ci-dessus on réussi, vous pouvez désormais déplacer l'autorisation de la fonction **Fichier** à la fonction **MySql**. Pour cela il faudra éditez le fichier **/etc/freeradius/sites-available/default** et remplacer l’autorisation en commentant/décommentant((ajouter/ôter un dièse #)) comme ceci : | Si les tests ci-dessus on réussi, vous pouvez désormais déplacer l'autorisation de la fonction **Fichier** à la fonction **MySql**. Pour cela il faudra éditez le fichier **/etc/freeradius/sites-available/default** et remplacer l’autorisation en commentant/décommentant((ajouter/ôter un dièse #)) comme ceci : |
| | Fichiers | == | files | remplacer par | # files | | | Fichiers | == | files | remplacer par | # files | |
| | MySql | == | # sql | remplacer par | sql | | | MySql | == | # sql | remplacer par | sql | |
| | |
| | <file> |
| | [...] |
| | # unix |
| | |
| | # |
| | # Read the 'users' file |
| | # files |
| | |
| | # |
| | # Look in an SQL database. The schema of the database |
| | # is meant to mirror the "users" file. |
| | # |
| | # See "Authorization Queries" in sql.conf |
| | sql |
| | |
| | # |
| | # If you are using /etc/smbpasswd, and are also doing |
| | # mschap authentication, the un-comment this line, and |
| | # configure the 'smbpasswd' module. |
| | # smbpasswd |
| | [...] |
| | </file> |
| |
| <note important>Vous ne pouvez utiliser qu'une seule méthode d'autorisation à un moment, pas les deux. Par conséquent,la fonction **Fichier** a besoin d'être commentée. | <note important>Vous ne pouvez utiliser qu'une seule méthode d'autorisation à un moment, pas les deux. Par conséquent,la fonction **Fichier** a besoin d'être commentée. |
| Auth-Type eap { | Auth-Type eap { |
| eap { | eap { |
| handled = 1 | handled = 1 |
| } | } |
| } | } |
| - Editez le fichier **/etc/freeradius/radiusd.conf** pour décommenter (~ ligne 683) : <file> | - Editez le fichier **/etc/freeradius/radiusd.conf** pour décommenter (~ ligne 683) : <file> |
| $INCLUDE sql.conf ### Changer le manuellement | $INCLUDE sql.conf ### Changer le manuellement |
| </file> | </file> |
| |
| ====Ajouter un utilisateur dans la base de donnée MySql:==== | ====Ajouter un utilisateur dans la base de donnée MySql:==== |
| Coovachilli utilise "chillispot" comme nom d'utilisateur et "chillispot" comme mot de passe pour se connecter au radius par défaut. Ajoutez également cet utilisateur dans la table //radcheck//. | Coovachilli utilise "chillispot" comme nom d'utilisateur et "chillispot" comme mot de passe pour se connecter au radius par défaut. Ajoutez également cet utilisateur dans la table //radcheck//. |
| |
| Il faut le définir dans le fichier **/etc/chilli/config** | Il faut le définir dans le fichier **/etc/chilli/config** FIXME Il n'existe pas de répertoire /chilli dans /etc sur Ubuntu 16.04.2 LTS |
| <code> | <code> |
| HS_ADMUSR=chillispot | HS_ADMUSR=chillispot |
| === Test de la configuration de Freeradius et de Mysql === | === Test de la configuration de Freeradius et de Mysql === |
| |
| Redémarrez le serveur radius: | Redémarrez le serveur radius: |
| <code> | <code> |
| sudo /etc/init.d/freeradius restart | sudo /etc/init.d/freeradius restart |
| **Vous pouvez passer a l'[[#Installation_et_configuration_de_Coovachilli|installation de Coovachilli]].** | **Vous pouvez passer a l'[[#Installation_et_configuration_de_Coovachilli|installation de Coovachilli]].** |
| |
| ===== Installation et configuration de Coovachilli ===== | ===== Installationet configuration de Coovachilli ===== |
| ==== Installation de CoovaChilli à partir des fichiers Sources ==== | ==== Installationde CoovaChilli à partir des fichiers Sources ==== |
| | <note>Pensez à vérifier les mises à jour et utilisez la dernière version. Version 1.4 au 15 déc 2016</note> |
| Téléchargez puis [[:tutoriel:comment_installer_un_paquet|installez le paquet]] .deb depuis le [[http://www.coova.org/CoovaChilli/Binaries|site officiel Coovachilli]].\\ | Dans un [[:terminal]] saisissez les [[:commande_shell|commandes]] suivantes: |
| Par exemple pour la version 1.2.6 de CoovaChilli dans un [[:terminal]] saisissez les [[:commande_shell|commandes]] suivantes: | Installationdes prérequis : |
| <code> | <code> |
| wget http://ap.coova.org/chilli/coova-chilli_1.2.6_i386.deb | sudo apt-get install -y g++ automake autoconf libtool libltdl-dev gengetopt make cmake libssl-dev git |
| sudo dpkg -i coova-chilli_1.2.6_i386.deb | </code> |
| | Clone du git |
| | <code> |
| | cd /tmp |
| | git clone https://github.com/coova/coova-chilli/ |
| | cd coova-chilli/ |
| | </code> |
| | Changement de branche pour acceder à la v 1.4 |
| | <code> |
| | git checkout -b 1.4 |
| | git branch |
| | </code> |
| | Premier script |
| | <code> |
| | ./bootstrap |
| | </code> |
| | Deuxième script : configuration pour la compilation avec options (à rentrer ligne par ligne) |
| | <code> |
| | ./configure --prefix=/usr --mandir=\$${prefix}/share/man \ |
| | --infodir=\$${prefix}/share/info \ |
| | --sysconfdir=/etc --localstatedir=/var --enable-largelimits \ |
| | --enable-binstatusfile --enable-statusfile --enable-chilliproxy \ |
| | --enable-chilliradsec --enable-chilliredir --with-openssl --with-curl \ |
| | --with-poll --enable-dhcpopt --enable-sessgarden --enable-dnslog \ |
| | --enable-ipwhitelist --enable-redirdnsreq --enable-miniconfig \ |
| | --enable-libjson --enable-layer3 --enable-proxyvsa --enable-miniportal \ |
| | --enable-chilliscript --enable-eapol --enable-uamdomainfile \ |
| | --enable-modules --enable-multiroute |
| | </code> |
| | Installation |
| | <code> |
| | make && make install |
| </code> | </code> |
| |
| <note important>Les paquets préfabriqués de Coova-Chilli sont compilés pour i386.\\ | <note important>Les paquets préfabriqués de Coova-Chilli sont compilés pour i386.\\ |
| Pour un PC 64bits et pour éviter les soucis d'identification (MD5, SHA, SSL,...), il faudra (pour le moment) compiler à partir des sources téléchargeables sur le site de Coova.org</note> | Pour un PC 64bits et pour éviter les soucis d'identification (MD5, SHA, SSL,...), il faudra (pour le moment) compiler à partir des sources téléchargeables sur le site de Coova.org</note> |
| Pensez à installer également le packet haserl pour permettre à serveur chilli de rediriger les clients vers la page d'accueil. | |
| | ==== Installationdu packet haserl pour permettre au serveur chilli de rediriger les clients vers la page d'accueil ==== |
| | <code> |
| | cd /usr/src |
| | wget http://downloads.sourceforge.net/project/haserl/haserl-devel/haserl-0.9.35.tar.gz |
| | tar zxvf haserl-0.9.35.tar.gz |
| | cd haserl-0.9.35 |
| | </code> |
| | Compilation puis installation de Haserl |
| | <code> |
| | ./configure && make && make install |
| | </code> |
| ==== Paramétrage du serveur hotspot ==== | ==== Paramétrage du serveur hotspot ==== |
| |
| cp /var/www/hotspot/coova.jpg /var/www/hotspot/images/ | cp /var/www/hotspot/coova.jpg /var/www/hotspot/images/ |
| mkdir /var/www/hotspot/uam | mkdir /var/www/hotspot/uam |
| cd /var/www/hotspot/uam | cd /var/www/hotspot/uam</code> |
| wget http://ap.coova.org/uam/ | FIXME : adresse introuvable : |
| | <code>wget http://ap.coova.org/uam/ |
| wget http://ap.coova.org/js/chilli.js | wget http://ap.coova.org/js/chilli.js |
| exit | exit |
| <note>Vous pouvez donner à l'interface //eth0// la valeur 192.168.0.1/24, la valeur 192.168.182.1 étant celle par defaut FIXME du mal à comprendre le sens de la phrase et les adresses </note> | <note>Vous pouvez donner à l'interface //eth0// la valeur 192.168.0.1/24, la valeur 192.168.182.1 étant celle par defaut FIXME du mal à comprendre le sens de la phrase et les adresses </note> |
| |
| Afin de déplacer FIXME (formulation "déplacer"???) l'adresse IP de l'interface réseau **numéro 0** avec celle de l'interface réseau **numéro 1** de votre ordinateur, éditez le fichier **/etc/default/chilli** pour donner à la fonction START_CHILLI la valeur 1<file> | ===Configuration de CoovaChill=== |
| START_CHILLI=1 | A la fin du fichier **/etc/chilli/up.sh** ajouter la ligne : |
| </file> | <code>iptables -I POSTROUTING -t nat -o $HS_WANIF -j MASQUERADE</code> |
| | Elle va permettre de transférer ce qui arrive par le Wifi vers l’Ethernet |
| | |
| | Editer le fichier **/etc/default/chilli** et remplacer |
| | <code>START_CHILLI=0</code> |
| | par |
| | <code>START_CHILLI=1</code> |
| | Cela autorise le démarrage de CoovaChilli |
| | |
| | Editer le fichier **/etc/chilli/wwwsh** et donner l’emplacement exact de haserl à la ligne 9 |
| | <code>haserl=/usr/local/bin/haserl</code> |
| | |
| | Editer le fichier **/etc/chilli/config** et modifier ces valeurs en fonction de votre réseau : |
| | <code> |
| | HS_WANIF=eth0 |
| | HS_LANIF=wlan0 |
| | HS_NETWORK=192.168.10.0 |
| | HS_UAMLISTEN=192.168.10.1 |
| | HS_UAMALLOW=192.168.10.0/24 |
| | HS_SSID=PiHomeServerAP |
| | ... |
| | HS_RADSECRET=testing123 # Set to be your RADIUS shared secret |
| | </code> |
| | |
| | Le détail des paramètres configurés : |
| | * HS_WANIF est l’interface reliée à Internet |
| | * HS_LANIF est l’interface du Wifi/Hotspot |
| | * HS_NETWORK le réseau du hotspot |
| | * HS_UAMLISTEN la gateway du réseau du hotspot |
| | * HS_UAMALLOW les IP du réseau du hotspot autorisées à se connecter |
| | * HS_SSID le SSID (ne semble pas avoir d’effet) |
| | * HS_RADSECRET la clée secrète du radius défini précédemment dans **/etc/freeradius/clients.conf** |
| Redémarrez votre ordinateur.\\ | Redémarrez votre ordinateur.\\ |
| Testez si la configuration de réseau s'est bien passée en démarrant tout simplement le serveur Chilli : | Testez si la configuration de réseau s'est bien passée en démarrant tout simplement le serveur Chilli : |
| Par défaut, il sera supposé que : | Par défaut, il sera supposé que : |
| * le périphérique //eth0// sera relié à votre connexion internet. | * le périphérique //eth0// sera relié à votre connexion internet. |
| * le périphérique //eth1// sera quand a lui l'interface (passerelle) que vous voudrez connecter avec des clients abonnés. | * le périphérique //eth1// sera quand a lui l'interface (passerelle) que vous voudrez connecter avec des clients abonnés. |
| <note>Si ce n'était pas le cas, il faudra pratiquer par exemple un changement de configuration avec la fonction **HS_WANIF**((**W**ireless)) pour la relier à votre périphérique internet et relier également la fonction **HS_LANIF**((**L**an)) directement à votre périphérique WiFi.</note> | <note>Si ce n'était pas le cas, il faudra pratiquer par exemple un changement de configuration avec la fonction **HS_WANIF**((**W**ireless)) pour la relier à votre périphérique internet et relier également la fonction **HS_LANIF**((**L**an)) directement à votre périphérique WiFi.</note> |
| |
| | HS_LOC_AC=408 | HS_LOC_AC=87000 | | | HS_LOC_AC=408 | HS_LOC_AC=87000 | |
| | HS_LOC_CC=1 | HS_LOC_CC=33 (suffix téléphonique +33) | | | HS_LOC_CC=1 | HS_LOC_CC=33 (suffix téléphonique +33) | |
| | HS_LOC_ISOCC=US | HS_LOC_ISOCC=FR ( [[http://fr.wikipedia.org/wiki/ISO_3166-2|Voir doc wikipedia]] ) | | | HS_LOC_ISOCC=US | HS_LOC_ISOCC=FR ( [[https://fr.wikipedia.org/wiki/ISO_3166-2|Voir doc wikipedia]] ) | |
| |
| ==== Créer et configurer une page de connexion ==== | ==== Créer et configurer une page de connexion ==== |
| ===== Sécurité et certification d’authenticité ===== | ===== Sécurité et certification d’authenticité ===== |
| |
| ==== Installation du par-feu :==== | ==== Installationdu pare-feu :==== |
| | |
| | Les créateurs de CoovaChilli ont des règles prédéfinies pour [[:iptables]], mais leur script a besoin d'un peu d'aide avant que ça fonctionne. L' iptables de CoovaChilli est configuré dans le script **/etc/chili/up.sh** qui déclenche l'interface TUN/TAP mise en place. |
| | Ce déclenchement se fait en fonction du contenu du script **/etc/chili/ipup.sh** qui n'existe pas par défaut. Créez le fichier **/etc/chili/ipup.sh** si besoin est. |
| |
| Les créateurs de CoovaChilli ont des règles prédéfinies pour [[:iptables]], mais leur script a besoin d'un peu d'aide avant que ça fonctionne. L' iptables de CoovaChilli est configuré dans le script **/etc/chili/ up.sh** qui déclenche l'interface TUN/TAP mise en place. | |
| |
| <note>Dans les réseaux informatiques, TUN et TAP sont des périphériques virtuels dans le "Kernel réseau" (Noyaux réseau). Ce sont des dispositifs réseau qui sont entièrement à la charge du logiciel. Ils sont différents des périphériques réseaux ordinaires qui sont eux des adaptateurs réseaux matériel.</note> | <note>Dans les réseaux informatiques, TUN et TAP sont des périphériques virtuels dans le "Kernel réseau" (Noyaux réseau). Ce sont des dispositifs réseau qui sont entièrement à la charge du logiciel. Ils sont différents des périphériques réseaux ordinaires qui sont eux des adaptateurs réseaux matériel.</note> |
| |
| Pour "aider" Coova Chilli, ajoutez ces lignes à la fin du fichier **/etc/chilli/up.sh** : | Pour "aider" Coova Chilli, ajoutez ces lignes à la fin du fichier **/etc/chilli/ipup.sh** : |
| <code> | <code> |
| [ -e "/var/run/chilli.iptables" ] && sh /var/run/chilli.iptables 2>/dev/null | [ -e "/var/run/chilli.iptables" ] && sh /var/run/chilli.iptables 2>/dev/null |
| Pour le rendre exécutable : | Pour le rendre exécutable : |
| <code> | <code> |
| chmod +x /etc/chilli/up.sh | chmod +x /etc/chilli/ipup.sh |
| </code> | </code> |
| |
| Dans la configuration ci-dessus, vous avez relié le serveur DNS au périphériques locaux. C'est pourquoi, votre système doit posséder un serveur DNS que vous pouvez installer à partir de [[:tasksel|tasksel]]. | Dans la configuration ci-dessus, vous avez relié le serveur DNS au périphériques locaux. C'est pourquoi, votre système doit posséder un serveur DNS que vous pouvez installer à partir de [[:tasksel|tasksel]]. |
| |
| ==== Installation de la certification SSL au server Apache 2 ==== | ==== Installationde la certification SSL au server Apache 2 ==== |
| |
| Suivre cette documentation : [[:tutoriel:securiser_apache2_avec_ssl]] | Suivre cette documentation : [[:tutoriel:securiser_apache2_avec_ssl]] |
| |
| ===== Voir aussi ===== | ===== Voir aussi ===== |
| * **(en)** [[http://www.coova.org/CoovaChilli|Site officiel]] | * **(en)** [[https://coova.github.io/CoovaChilli/|Site officiel]] |
| * **(en-us)** [[https://help.ubuntu.com/community/WifiDocs/CoovaChilli|Documentation Ubuntu Officiel ]] de Coova Chilli. | * **(en-us)** [[https://help.ubuntu.com/community/WifiDocs/CoovaChilli|Documentation Ubuntu Officiel ]] de Coova Chilli. |
| * **(en)** [[http://linux.xvx.cz/2010/03/debian-wi-fi-hotspot-using-coovachilli-freeradius-mysql-and-daloradius/|linux.xvx.cz Documentation de Coova Chilli]] sous la distribution linux debian. | * **(en)** [[http://linux.xvx.cz/2010/03/debian-wi-fi-hotspot-using-coovachilli-freeradius-mysql-and-daloradius/|linux.xvx.cz Documentation de Coova Chilli]] sous la distribution linux debian. |