Raspberry Pi, CoovaChilli et Freeradius pour un Hotspot Wifi avec portail captif

Pour une installation du hotspot en automatique, consultez l’article ici.

 

Je vous avais parlé il y a un moment de faire un point d’accès Wifi en PHP et de contrôler les connexions. Seulement si le principe était simple, le résultat l’était aussi peut être un peu trop. Donc aujourd’hui on va installer un outil beaucoup plus abouti : CoovaChilli.

WiFI-Hotspot-Raspberry Pi

Attention : cet article est long, très long…

Qu’est-ce que CoovaChilli ?

CoovaChilli est la version OpenSource du projet ChilliSpot. Il propose une interface utilisateur pour authentifier les utilisateurs qui se connectent à un hotspot (pas forcément Wifi). Il a l’avantage de ne pas nécessiter de modules spécifiques au niveau du kernel, la gestion AAA est déléguée à un serveur RADIUS (local ou non) et l’authentification OAuth (non testée par votre serviteur).

Bref ca fait tout ce qu’il faut pour gérer son hotspot (y compris authentification 802.1x ou par adresse MAC) !

Qu’est ce que FreeRadius ?

FreeRadius (version OpenSource de RADIUS) permet d’avoir sur son serveur/machine un protocole réseau qui est utilisé pour gérer les authentifications et les comptes d’utilisateurs. Il permet de contrôler les accès (authentification) mais aussi d’en surveiller les usages et d’y appliquer des règles d’autorisation ou de rejet sur base d’attributs comme par exemple l’heure, la durée, le volume de données, etc.. Le fameux AAA : authentication, authorization, and accounting

Installation

Ce dont vous allez avoir besoin :

  • Un Raspberry Pi avec sa carte SD (minimum 2Gb)
  • Un adaptateur Wifi. Pensez à vérifier sa compatibilité avec le Raspberry au moment de l’achat ! De plus la taille de la clé va jouer sur sa portée et le débit proposé. Il pourrait vous falloir une clé Wifi avec antenne intégrée. Dans ce cas un hub USB alimenté pourra être utile.
  • Un câble Ethernet pour relier le Raspberry à votre routeur. C’est par cette connexion que le Raspberry doit avoir accès à Internet (et que le SSH doit être disponible)

La connexion sur le hotspot se fait sur l’interface Wifi. Le Raspberry doit donc être connecté à Internet via le câble Ethernet. C’est d’ailleurs par lui que je vais me connecter en SSH pour faire l’installation et configuration.

Concernant le système d’exploitation, j’ai installé une Raspbian minimaliste par le réseau pour qu’elle soit à jour. Vous trouverez toutes les démarches ici.

Le Wifi

Il s’agit de mettre en place votre dongle wifi pour pouvoir faire office de hotspot. J’utilise une clé Ralink RT5370:

Ralink Technology, Corp. RT5370 Wireless Adapter

Utilisant un composant non supporté par défaut il a donc fallu mettre en place un module avant de configurer l’interface :

  1. Télécharger le module pour supporter le rt2870 (si vous en avez besoin !)
    wget "http://git.kernel.org/?p=linux/kernel/git/firmware/linux-firmware.git;a=blob_plain;f=rt2870.bin" -O /lib/firmware/rt2870.bin
  2. Désactiver le mode turbo qui pose des problèmes de stabilité (si vous utilisez une clé avec un chipset rt2870)
    bash -c "echo options smsc95xx turbo_mode=N > /etc/modprobe.d/smscnonturbo.conf"
  3. Vous pouvez redémarrer le Raspberry pour que le module soit pris en charge. La commande « ifconfig -a » va lister votre nouvelle interface.
  4. Pensez à contrôler que cette clé peut être utilisée en tant que point d’accès (c’est quand même le but !) :
    • Téléchargez les outils iw pour obtenir des informations sur votre clé Wifi
      wget https://www.kernel.org/pub/software/network/iw/iw-3.14.tar.gz
      tar zxvf iw-3.14.tar.gz
      cd iw-3.14
      make
    • Vous pouvez maintenant tester si votre clé Wifi supporte le mode Access Point avec la commande iw list

      Si vous avez « AP » (Access Point) dans les modes supportés, c’est gagné !
  5. Pour configurer maintenant cette interface, il faut éditer le fichier /etc/network/interfaces et y ajouter la configuration suivante à la fin du fichier :
    auto wlan0
    allow-hotplug wlan0
    iface wlan0 inet static
        address 192.168.10.1
        netmask 255.255.255.0
        network 192.168.10.0
        post-up echo 1 > /proc/sys/net/ipv4/ip_forward
    

    Vous définissez le réseau 192.168.10.0 comme étant celui lié à l’interface Wifi. Votre clé sera le routeur du réseau. Et vous activez l’IP forwarding pour lier l’interface sans fil avec l’interface Ethernet.

  6. Enfin il faut activer l’IP Forwarding au niveau système. Je pense que cela fait double emploi avec le post-up de l’interface, mais il vaut mieux être sûre. Enlever le caractère # à la ligne 29 du fichier /etc/sysctl.conf :
    net.ip4.ip_forward=1

    Pour une prise en charge immédiate, exécutez la commande

    /etc/init.d/networking restart

Freeradius

  1. Préparation de l’installation des paquets. Le mot de passe Mysql est fixé à « raspbian ». Vous pouvez bien entendu mettre ce que vous voulez mais pensez à changer la valeur dans les différentes instructions sur la base de données.
    apt-get install -y debconf-utils
    debconf-set-selections <<< 'mysql-server mysql-server/root_password password raspbian'
    debconf-set-selections <<< 'mysql-server mysql-server/root_password_again password raspbian'
    apt-get install -y debhelper libssl-dev libcurl4-gnutls-dev mysql-server freeradius freeradius-mysql gcc make libnl1 libnl-dev pkg-config iptables
  2. Configuration de FreeRadius :
    1. Création de la base de données dans MySQL dédiée à FreeRadius. Vous devrez saisir le mot de passe demandé lors de l’installation de MySQL.
      echo "create database radius;" | mysql -u root -praspbian
    2. Installation du schéma de la base radius que nous venons de créer
      mysql -u root -praspbian radius < /etc/freeradius/sql/mysql/schema.sql
    3. Installation de la partie d’administration. Cela va créer un utilisateur d’administration et lui donner tous les droits nécessaires.
      mysql -u root -praspbian radius < /etc/freeradius/sql/mysql/admin.sql
    4. Installation de tables supplémentaires pour le NAS
      mysql -u root -praspbian radius < /etc/freeradius/sql/mysql/nas.sql
    5. Editez le fichier /etc/freeradius/radiusd.conf pour charger le module SQL. Il faut décommenter la ligne 700 :
      freeradius sql module
    6. Vous devez activer l’authentification par la base MySQL. Pour ça éditez le fichier /etc/freeradius/sites-enabled/default et cherchez les lignes où sql est commenté. Chez moi je l’ai trouvé trois fois aux lignes 177, 406 et 454. Vous enlevez la mise en commentaire en supprimant # du début de chaque ligne.
    7. Vous pouvez dès maintenant tester votre configuration en arrêtant FreeRadius et en le relançant en mode debug.
      service freeradius stop

      puis

      freeradius -X

      Si vous n’avez pas d’erreur c’est champagne !
      freeradius ready

    8. Nous allons faire un test de connexion. Pour cela, nous allons créer un utilisateur de test usertest avec son mot de passe passwd
      echo "insert into radcheck (username, attribute, op, value) values ('usertest', 'Cleartext-Password', ':=', 'passwd');" | mysql -u root -praspbian radius

      Et maintenant pour tester vous utilisez la commande

      radtest usertest passwd localhost 0 testing123

      La valeur testing123 vient du fichier de configuration /etc/freeradius/clients.conf. C’est le mot « secret » qui va être utilisé pour sécuriser la connexion entre FreeRadius et ce qui s’appelle le NAS, ce qui va capter les connexions.
      Vous devrez donc changer cette valeur lorsque vous allez installer votre hotspot en « production » !
      freeradius radtest

CoovaChilli

  1. Compilation et installation de CoovaChilli
    1. Téléchargez l’archive
      cd /usr/src
      wget https://coova.github.io/Download/coova-chilli-1.3.0.tar.gz
      tar zxvf coova-chilli-1.3.0.tar.gz
      cd coova-chilli-1.3.0
    2. Lancez la configuration pour la compilation
      export CFLAGS="-Wno-error"
      ./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
      
    3. Modifiez le niveau de compatibilité pour la compilation
      echo 9 > debian/compat
    4. Modifier le répertoire où va être créé le paquet en modifiant la ligne 54 du fichier /usr/src/coova-chilli-1.3.0/debian/rules :
      $(MAKE) DESTDIR=/ install
    5. Lancez la compilation
      dpkg-buildpackage -us -uc

      Vous devriez obtenir un paquet prêt à être installé (au bout de 15 minutes environ sur un modèle B 512Mb)!

    6. Installez le paquet
      cd ..
      dpkg -i coova-chilli_1.3.0_armhf.deb

      Utilisez l’option Y lorsqu’on va vous poser une question. L’erreur à la fin est normale car nous n’avons pas encore configuré CoovaChilli et n’existe pas (en principe)
      Capture d’écran 2015-07-15 à 21.00.48

  2. Compilation et installation de Haserl. Il s’agit d’un outil qui à partir de script UNIX ou LUA va générer des script CGI. Il est nécessaire pour le fonctionnement de CoovaChilli.
    1. Téléchargez Haserl
      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
    2. Compilez puis installer Haserl
      ./configure && make && make install
  3. Configurer CoovaChilli
    1. A la fin du fichier /etc/chilli/up.sh vous ajoutez la ligne
      iptables -I POSTROUTING -t nat -o $HS_WANIF -j MASQUERADE

      Elle va permettre de transférer ce qui arrive par le Wifi vers l’Ethernet

    2. Dans le fichier /etc/default/chilli vous remplacez
      START_CHILLI=0

      par

      START_CHILLI=1

      Cela autorise le démarrage de CoovaChilli

    3. Dans le fichier /etc/chilli/wwwsh il faut donner l’emplacement exact de haserl à la ligne 9
      haserl=/usr/local/bin/haserl
    4. Dans le fichier /etc/chilli/config se trouve la configuration principale de Chilli. Là où vous allez pouvoir définir quelles interfaces sont utilisées, quel réseau, etc. Certaines des valeurs ci-dessous sont commentées par défaut, il faudra donc enlever le # en début de ligne si nécessaire. Et toutes ces valeurs ne sont pas regroupées au même endroit.
      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

      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)

    5. Rendre le démarrage définitif
      update-rc.d chilli start 99 2 3 4 5 . stop 20 0 1 6 .
  4. Démarrez le service
    service chilli start

    Avec la commande ifconfig vous devriez voir apparaitre une interface tun0 qui confirme que CoovaChilli est bien exécuté.
    Capture d’écran 2015-07-15 à 21.29.18

Hostapd

  1. Pour rendre votre point d’accès Wifi visible, nous allons installer hostapd qui va faire tout le travail
    apt-get install -y hostapd
  2. Editer le fichier /etc/default/hostapd et ajouter à la fin :
    DAEMON_CONF="/etc/hostapd/hostapd.conf"
  3. Editer le fichier /etc/hostapd/hostapd.conf (qui n’existe pas encore) et y copier les lignes suivantes :
    # interface wlan du Wi-Fi
    interface=wlan0
    # nl80211 avec tous les drivers Linux mac80211
    driver=nl80211
    # Nom du spot Wi-Fi
    ssid=PiHomeServerAP
    # mode Wi-Fi (a = IEEE 802.11a, b = IEEE 802.11b, g = IEEE 802.11g)
    hw_mode=g
    # canal de fréquence Wi-Fi (1-14)
    channel=6
    # Wi-Fi ouvert, pas d'authentification !
    auth_algs=1
    # Beacon interval in kus (1.024 ms)
    beacon_int=100
    # DTIM (delivery trafic information message)
    dtim_period=2
    # Maximum number of stations allowed in station table
    max_num_sta=255
    # RTS/CTS threshold; 2347 = disabled (default)
    rts_threshold=2347
    # Fragmentation threshold; 2346 = disabled (default)
    fragm_threshold=2346
  4. Vous pouvez démarrer manuellement le service
    service hostapd start

Nous voilà arriver à la fin de la configuration ! Ouf ! Il est temps de tester la connexion (avec le user créé plus haut : usertest / passwd) :

  1. Se connecter au point d’accès
    raspberry pi hotspot SSID selection
  2. Vous allez automatiquement avoir une fenêtre de redirection (sur mon Mac. Sur iPhone/iPad/Windows il faut essayer d’accéder à Internet via le navigateur)
    raspberry pi hotspot redirection
  3. Saisissez vos identifiants (usertest / passwd)
    raspberry pi hotspot login
  4. Vous aurez ensuite des écrans confirmant la connexion
    raspberry pi hotspot success raspberry pi hotspot success end
  5. A vous les joies d’Internet par votre Hotspot !
    raspberry pi hotspot wifi coovachilli freeradius internet

Bonus : daloRADIUS

Ok mais certains d’entre vous vont me poser la question : « oui mais comment je gère les utilisateurs ? », « Je dois faire une requête SQL à chaque fois ? ». En théorie oui ! Il n’y a pas d’interface par défaut pour FreeRadius. Sauf que … il existe des projets pour vous aider. Et daloRadius en fait partie ! Grâce à une interface web vous allez pouvoir gérer les utilisateurs, gérer leurs droits, heures de connexion, débits autorisés, etc.

  1. Installer un serveur web. Mon préféré reste Nginx.
    apt-get install -y php5-mysql php-pear php5-gd php-db php5-fpm libgd2-xpm-dev libpcrecpp0 libxpm4 nginx php5-xcache
    apt-get remove -y apache2.2-bin apache2-utils apache2.2-common
  2. Télécharger daloRadius
    cd /usr/src
    wget http://downloads.sourceforge.net/project/daloradius/daloradius/daloradius0.9-9/daloradius-0.9-9.tar.gz
    tar zxvf daloradius-0.9-9.tar.gz -C /usr/share/nginx/www/
    mv /usr/share/nginx/www/daloradius-0.9-9 /usr/share/nginx/www/daloradius
    cd /usr/share/nginx/www/daloradius
  3. Ajouter les informations utilisées par daloRadius dans la base de données de FreeRadius
    mysql -u root -praspbian radius < /usr/share/nginx/www/daloradius/contrib/db/fr2-mysql-daloradius-and-freeradius.sql
    mysql -u root -praspbian
    GRANT ALL ON radius.* to 'radius'@'localhost';
    GRANT ALL ON radius.* to 'radius'@'127.0.01';
    exit;
  4. Dans le fichier /usr/share/nginx/www/daloradius/library/daloradius.conf.php vous définissez les droits d’accès à la base de données (ici les valeurs par défaut)
    $configValues['CONFIG_DB_USER'] = 'radius';
    $configValues['CONFIG_DB_PASS'] = 'radpass';
    $configValues['CONFIG_DB_NAME'] = 'radius';
  5. Mettre à jour la configuration du site par défaut en activant le support PHP. Les informations sont à ajouter (ou enlever les commentaires) dans la section server.
    A la ligne 25 (toujours par défaut)
index index.php index.html index.htm;

Et activer le support PHP

location ~ .php$ {
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
include fastcgi_params;
}
  • Redémarrez Nginx
    service nginx restart
  • Vous pouvez maintenant vous connecter sur http://<ip de votre raspberry>/daloradius
    Login : administrator / Password : radius

Alors maintenant comment créer un utilisateur ? Rien de plus simple :

  1. Connectez-vous puis allez dans l’onglet Management
    raspberry pi daloradius management hotspot
  2. Saisissez le Username puis Password et cliquez sur Apply. Vous pouvez bien sur choisir le type d’encodage du mot de passe, saisir des informations sur l’utilisateur et … des attributs. Nous y reviendrons plus tard (oui ça n’est pas encore terminé !)
    raspberry pi daloradius management hotspot create user

Vous pouvez dès maintenant utiliser cet identifiant. Il apparait dans la liste des utilisateurs avec un beau drapeau vert pour signaler que l’utilisateur est activé.raspberry pi daloradius management hotspot list users

Double bonus : les attributs

Nous avons un hotspot Wifi, un service d’authentification, une interface de gestion des utilisateurs. Mais comment faire pour définir des heures de connexions ? Une durée de connexion ? Un volume de données maximum ? Bref que ce ne soit pas open bar all inclusive !

Tout se passe au niveau des attributs associés à un utilisateur. Dans l’interface de daloRadius, vous pouvez éditer un utilisateur et lui ajouter des attributs.

hotspot raspberry pi coovachilli daloradius attributes

Ci dessus, j’ajoute à l’utilisateur pi, l’attribut Login-Time avec la valeur Wk1800-2100. L’utilisateur ne pourra se connecter que de 18:00 à 21:00 du lundi au vendredi. Vous pouvez aller plus loin : « Wk0855-2355,Sa,Su1655-2305 », les jours de la semaine de 08:55 à 23:55, le samedi et le dimanche de 16:55 à 23:05.

Vous pouvez retrouver plus en détail certains attributs ici. Les plus courants : Login-Time, Simultaneous-Use, Expiration. Malheureusement je n’ai pas trouvé un endroit où l’ensemble des attributs sont détaillés avec leur signification et les valeurs possibles. Si vous avez un lien n’hésitez pas à le partager dans les commentaires.

Si vous êtes arrivés au bout de cet article vous méritez une médaille ! Mais vous avez maintenant un super hotspot raspberry inside !

Prochaine étape : intégrer Squid comme proxy transparent ?

Sources :

  • https://www.raspberrypi.org/forums/viewtopic.php?t=24105&p=224789
  • http://doc.ubuntu-fr.org/coovachilli
  • http://ehc.ac/p/radiusdesk/wiki/install_ubuntu_nginx/?version=14#install-radiusdesk
  • http://www.binaryheartbeat.net/2013/12/raspberry-pi-based-freeradius-server.html
  • google, bing, duckduck, etc.

Vous aimerez aussi...

  • Excellent article, ça m’étonne qu’il n’y ait pas encore de commentaires ! 😀
    Je n’ai pas encore eu l’occasion de tester ceci dit, mais ça ressemble très fort à ce que l’on faisait pendant mes études (à la diférence qu’on utilisait du matériel Cisco pour AP et Switch, mais couplé avec une Debian), je reconnais beaucoup d’étapes dans le processus.
    Je pense que je tenterai d’appliquer ton tuto, mais sans utiliser le raspberry pour le WiFi. A la place, j’ai un petit routeur TP-Link WR841ND sur lequel j’ai flashé DD-WRT. Il est compatible Chillispot et il suffit de renseigner l’adresse du serveur radius.
    Bon par contre j’ai un peu du mal à première vue à distinguer la différence entre le « NAS ID » et UAM Secret, ainsi que les UAM allowed/domains (cfr screenshot)
    Le but à terme sera sans doute d’implémenter cette solution dans un petit hôtel 🙂
    A voir s’il faudra plusieurs AP.

  • J’ajouterais aussi que je viens de découvrir RadiusDesk (je vois un lien dans les sources, mais leur site officiel est très bien fait avec beaucoup de guides), visiblement ça a l’air excellent pour gérer les utilisateurs, un peu comme daloradius, avec une interface web qui semble un peu plus conviviale

    • Salut
      Je n’ai pas réussi à faire fonctionner radiusdesk sur le raspberry je me suis dpnc rabattu sur daloradius qui est effectivement moins sexy !

  • Lucas F

    Bonjour,
    Excellent tuto, que je mettrai en place sous peu.

    Cependant, y-a-t-il moyen de mettre en place une limitation de la bande passante ? Par exemple, ne pas dépasser 1MB/S pour le « serveur » en général, ou encore pour chaque user ?
    Merci

    • Salut,

      Oui c’est possible dans FreeRadius avec les options WISPr-Bandwidth-Max-Down et WISPr-Bandwidth-Max-Up

  • JNO

    Bonjour,
    Excellent tuto !

    La législation française impose de conserver les traces … est-ce le cas ici avec FreeRadius (si oui comment faut-il faire ?) ou cela nécessite-t-il Squid obligatoirement ?
    Merci

    • Salut,
      Squid ne conserve que les accès depuis les IP locales. Est-ce suffisant ? Je pense que dans le cas d’attribution d’une IP locale à un identifiant il faut aussi conserver l’information pour pouvoir savoir qui se cache derrière la connexion. Ca doit être faisable dans FreeRadius mais je ne sais pas comment …

  • JNO

    Re-bonjour,
    J’ai essayé de mettre tout cela en place sur une raspberry PI 2 (raspbian Jessie). Malheureusement, la compilation de CoovaChilli échoue : #dpkg-buildpackage -us -uc


    main-opt.c: In function ‘main’:
    main-opt.c:786:29: error: ‘ptr’ may be used uninitialized in this function [-Werror=maybe-uninitialized]
    _options.uamdomains[i++] = STRDUP(tok);
    ^
    cc1: all warnings being treated as errors
    Makefile:755: recipe for target ‘main-opt.o’ failed
    make[4]: *** [main-opt.o] Error 1
    make[4]: Leaving directory ‘/usr/src/coova-chilli-1.3.0/src’
    Makefile:813: recipe for target ‘all-recursive’ failed
    make[3]: *** [all-recursive] Error 1
    make[3]: Leaving directory ‘/usr/src/coova-chilli-1.3.0/src’
    Makefile:313: recipe for target ‘all-recursive’ failed
    make[2]: *** [all-recursive] Error 1
    make[2]: Leaving directory ‘/usr/src/coova-chilli-1.3.0’
    Makefile:240: recipe for target ‘all’ failed
    make[1]: *** [all] Error 2
    make[1]: Leaving directory ‘/usr/src/coova-chilli-1.3.0’
    debian/rules:36: recipe for target ‘build’ failed
    make: *** [build] Error 2
    dpkg-buildpackage: erreur: debian/rules build a produit une erreur de sortie de type 2
    root@raspberrypi2:/usr/src/coova-chilli-1.3.0#

    Que faire ?
    Merci d’avance

    • On dirait que les warning sont traités comme des erreurs … A voir pour supprimer le flag de compilation
      -Werror dans le Makefile ?

      • JNO

        J’ai fait une recherche dans le répertoire /usr/src/coova-chilli-1.3.0 : il y a 9 fichiers dans lesquels on trouve l’option Werror.
        dans le fichier Makefile on trouve la ligne 490 : AM_CFLAGS = -D_GNU_SOURCE -Wall -Werror -fno-builtin

        Faut-il modifier ces 9 fichiers ? ou uniquement le fichier Makefile ? oubien ajouter une option « –disable-Werror » (je ne sais pas si c’est possible) dans la commande ./configure que vous indiquez dans le tuto ?

    • Patrick Dupertuis

      J’ai eu le même problème : il s’agit d’un bug de la dernière version de raspbian (jessie)
      Il faut désactiver la correction d’erreur et la création du package se fait sans problème.

      export CFLAGS= »-Wno-error »

      AVANT de faire :

      ./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

      • Mikymike

        Quelqu’un pourrait-il me dire commant on fais pour désactiver la correction d’erreur pour la création du package svp. Merci par avance.

        • C’est la commande export expliquée ci dessus par Patrick

          • Mikymike

            Ok je connaissai pas cette commande, je pensai que s’était à rajouter dans un fichier avant de lancer la compilation. Merci pour la réponse.

      • Joris Sjaaksken

        je rencontre le même souci mais même avec le ‘export CFLAGS= »-Wno-error »‘ je rencontre la même erreur.
        Quelqu’un a une autre solution?

    • Axl Mtz

      Hello,

      Hope you are well.

      I have the same problem with coovachilli.

      I am wonder if you can help me?

      Can you tell me how did you resolved it?

      Thank you.
      Regards.

      • Please look at patrick answer below. You have to set an env variable before compiling.

      • JNO

        Hello,

        I removed the Werror options from Makefile.am and Makefile.in the /usr/src/coova-chilli-1.3.0 directory.

        Good luck,
        Regards,

        2016-02-09 6:24 GMT+01:00 Disqus :

  • JNO

    Dans ce forum la longueur des messages est-elle limitée ?
    Cela fait plusieurs fois que j’essaie de poster mais mon message disparait après quelques minutes …

  • Thierry Fernandez

    Bonsoir,
    Problème résolu

  • Jeerapong Putthanbut

    Thank you so much for the nice tutorial 🙂

  • Gauthier

    Bonjour, c’est un tres bon tuto mais par contre j’aimerais savoir combien de personne au max peuvent se connecter simultanement a ce hotspot.

    • Bonjour,
      Techniquement c’est limité par la bande passante. Il est aussi possible de limiter le nombre de connexion

  • Paul

    De mon côté j’ai un problème lors de la compilation, j’ai bien suivi le tutoriel, même corrigé le bug avec les informations dans les commentaires, moi moi j’ai le problème la. (voir pj)

    Une idée?

    http://i.imgur.com/c4Dmbid.png

    • Bizarre on dirait que la partie documentation n’est pas présente. Est ce que ca bloque la suite ? Si oui peut etre desactiver cette partie …

      • Paul

        Oui car je ne peux pas avoir le .deb donc c’est assez important, j’ai tenter de réinstaller de tout refaire, rien n’y change.

        • Peut etre une mauvaise archive car les autres personnes ne rencontrent pas ce probleme

          • Paul

            Le lien http://ap.coova.org/chilli/coova-chilli-1.3.0.tar.gz n’existe plus, j’ai donc fait une recherche de l’archive sur Google, mais il est en effet possible que celle si ne soit pas bonne. Aurais tu un lien valide s’il te plaît?

          • Paul

            J’utilise « NOOBS » comme os (donc raspbian) ton tuto est fait pour celui la ou non?

          • J’utilise toujours la version réseau de Raspbian qui est allégée (bcp de paquets en moins)
            Donc oui c’est bien pour une Raspbian

          • Paul

            La ça a fonctionné sans problèmes 🙂

            Merci, si ta du temps à perdre faudrait faire un edit du post avec le nouvel url et la commande a mettre (export CFLAGS= »-Wno-error »)

            Merci !

          • Paul

            Après avoir fini le tuto jusqu’à l’étape « Hostapd 4 », et j’ai aucune diffusion. Pourtant, ma clé fonctionne bien car quand je fait un « iwlist scan » j’obtient bien le wifi de mon domicile.

            La clé est une tl wn821n et la première étape avec iw list ne fonctionne pas… (voir pj) Je ne sais donc pas si ma clé supporte l’access point

            Je possède une autre clé (bien plus vielle) une Sagem xg-762n

          • Problème de drivers avec la clé. Il faut trouver quel est le bon driver à charger en fonction du modèle de clé. Il faut la référence exacte pour ensuite chercher dans Google

          • Paul

            Je suis pas sur que ça soit un problème de pilote car il arrive à faire un scan wifi…

          • Paul

            Je suis pas sur que ça soit un problème de pilote, car la il arrive bien à me faire un scan wifi…

  • Rodrigo Fuentes

    Hi, im having issues after running dpkg -i coova-chilli_1.3.0_armhf.deb it says

    Unpacking replacement coova-chilli …

    Setting up coova-chilli (1.3.0) …

    Starting chilli: SIOCSIFADDR: No such device

    eth1: ERROR while getting interface flags: No such devic

    But I only have a eth0 and wlan0 on my raspberry

    Thank you

    • Because default configuration files use eth1 but by default on the pi it’s eth0. Continue to next steps and in files replace eth1 with eth0

  • Kazadrur & Moonev (Kazadrur_Mo

    Bonjour,

    J’ai un problème avec la commande : export CFLAGS= « -Wno-error »
    Quand je la lance, il me met : -bash: export: « -Wno-error » : identifiant non valable

    Je suis pourtant bien dans le dossier coova-chilli-1.3.0/

    Merci d’avance !

    • C’est pas un soucis de repertoire mais de commande. Peut etre l’espace apres le egal. J’ai pas de machine unix sous la main pour tester

      • Kazadrur & Moonev (Kazadrur_Mo

        ok, je viens de tester : export CFLAGS= »-Wno-error »
        Plus d’erreur, mais rien ne se passe, c’est normal ?

        • Oui ca positionne une variable d’environnement
          Essaye
          echo $CFLAGS
          Ca va afficher la valeur

          • Kazadrur & Moonev (Kazadrur_Mo

            Ah ok ^^
            C’est bon, ça a marché !

            Merci d’avoir pris le temps de répondre, et merci pour le tuto !

  • Matteo Lioi

    it’ wheezy or jessy? a lot of problem when download package

  • Christophe

    Salut,

    D’abord merci pour ton tuto ! Il est très bien expliqué, mais j’ai un léger soucis

    J’ai configurer mon CoovaChilli et le hostapd mais lorsque je fais un « service hostapd start » tous ce passe bien mais IMPOSSIBLE de voir mon WIFI sur un PC Portable.. Je ne comprends pas pourquoi, j’ai vérifier chaque fichier et ils sont identiques au tiens.

    Merci pour ton aide ! 🙂

    PS : Ma clé wifi est une ALFA AWUS036NH (iw list renvoi bien le mode AP et j’étais co en WIFI avec)

    • Salut. Le problème vient de Hostapd qui ne génère pas le réseau wifi. D’après le lien (https://www.raspberrypi.org/forums/viewtopic.php?f=28&t=17489) malgré ce qui est marqué par la clé, l’AP ne fonctionne pas. Si tu as une autre clé il faut peut être l’essayer

      • Christophe

        Merci pour ta réponse,

        Au vu de ton lien, ma clé fonctionne (selon une réponse)

        J’ai une ALFA ASUW036NH et elle est utilisée avec aircrack etc..

        Je vais essayer avec une autre clé, mais lorsque je fais un  » hostapd -dd /etc/hostapd/hostapd.conf pour voir le fichier de conf, j’ai une erreur avec « nl80211 driver initialization failed » mais je ne sais pas quel autre driver je peux utiliser..

        Si tu as une idée 🙂

        PS : J’essaierai quand même avec une autre clé si j’en trouve une ^^

        • Ok au moins on sait d’ou vient le pb. Il faut trouver le driver associé. En debut d’article je montre pour compiler le support du chipset rt2870 present dns certaines clés. Si ca peut t’inspirer …

  • Matteo Lioi

    i’d like to create a rule for a Group of user to connent max for an half or hour. is possible?
    and
    how to create a system of payment for my hotspot to generate user name and automatically?
    the sistem preferred payment could be paypal
    great tutoria
    i’m installed on same raspberry
    freepbx, Wifi Hotspot with captive portal, and plex. great 🙂

  • Manoj Mathivanan

    I have set up an hotsopt with coovachilli & freeradius. Everything is working fine. I get a landing page, after logging in, I am able to access internet.

    Now, I have also hosted a web server which is listening at port 3740 in the same system as coovachilli and freeradius. I am not able to access that port from any system connected to the hotspot.

    My wifi hotspot access point IP is 192.168.10.1 and the webserver is running at port 3740. Even if I login to my hotspot, the port is not accessible. Can you let me know how to open this port?

    • Hi
      Are you sure that your server is listening to the correct interface / lan ?

      • Manoj Mathivanan

        Yes, it is listening to the proper interface. I did wget 192.168.10.1:3740 to test ‘wlan0’ and wget http:\192.168.1.2:3740 to test the ‘eth0’.

        I am able to ping the webserver’s computer(192.168.10.1) from another computer(192.168.10.3) which is connected through wlan0. I am not able to access the port 3740, only 3990 and 4990 are accessible since they are coovachilli ports.

      • Manoj Mathivanan

        Its working now. I had to change the coovachilli config file to allow the ports
        HS_TCP_PORTS= »3740″

  • Maxamed Daahir Maxamed

    is there an attribute to disconnect user when time limit exceeds

  • AnwarWijaya

    Hi, I get a problem with compilation coova-chilli like on this picture.
    that error cause there is no coova-chilli_1.3.0_armhf.deb on /usr/src

    any solution ?
    thanks 🙂

  • AnwarWijaya

    Hi all, I get a problem with compilation coova-chilli like on this picture.
    that error cause there is no coova-chilli_1.3.0_armhf.deb on /usr/src
    any solution ?

    thanks 🙂

    • That’s normal, the compilation failed (see error messages ?) look at the error (upper in your screen), correct and try to compile again
      I guess that the reason is the flag for warnings (look comments below about how to set the flag)

      • AnwarWijaya

        thanks for attention.

        this is an error message (?) on picture below.

        btw, I have try echo $ CFLAGS but the result is same.

        • It’s not echo that you have to do but the export command below. The echo is only to check the variable content

          • AnwarWijaya

            ok thanks for your help I done that step.

            But, when i want to compile and install haserl with:

            ./configure && make && make install

            there are « nothing to be done »:

            ** Configuration summary for haserl 0.9.35:

            Building haserl with with lua disabled
            Building haserl with with bash-extensions disabled
            libs:

            make[2]: Leaving directory ‘/usr/src/haserl-0.9.35/doc’
            make[1]: Leaving directory ‘/usr/src/haserl-0.9.35/doc’
            make[1]: Entering directory ‘/usr/src/haserl-0.9.35’
            make[2]: Entering directory ‘/usr/src/haserl-0.9.35’
            make[2]: Nothing to be done for ‘install-exec-am’.
            make[2]: Nothing to be done for ‘install-data-am’.
            make[2]: Leaving directory ‘/usr/src/haserl-0.9.35’
            make[1]: Leaving directory ‘/usr/src/haserl-0.9.35’
            root@raspberrypi:/usr/src/haserl-0.9.35#

            any solution ?

            i am newbie 🙂

          • Try to do a « make clean » first, then check that the export worked (using echo and get the content displayed) and then compile

          • AnwarWijaya

            thanks Pi Home Server.
            I have done this tutorial and can running normal, but sometime some devices (esespecially Iphone & MAC Book) difficult to connect access point and I must stop and start freeradius to solve it. Do yo know why it happened ?

          • Hi.
            Do you restart freeradius only ? Difficulties to connect : do you see the wifi network ? If not it could be due to your wifi dongle that switch in energy saving mode.

  • Matteo Lioi

    is it possible to authenticate with facebook or Google?

    • Hi. Never tried and not sure it’s possible natively. Try for google results with « coovachilli oauth » seems that some people want to do the same than you
      About paypal same idea. Not sure it’s possible

      • Matteo Lioi

        Yes I study a lot but I haven’t found this argument for raspberry

        • Pablo Ariel Nicoli

          plz share the solution for a social captive portal in RPi

          • Matteo Lioi

            I dont have a solution 🙁

  • Hi. Never tried and not sure it’s possible natively. Try for google results with « coovachilli oauth » seems that some people want tondonthe same than you

  • aurelien

    Bonjour,

    Merci pour le tuto complet etl que je suis à la lettre, mais chez moi cela ne fonctionne pas. Le point d’accès n’apparait pas.
    lsusb me renvoit ça : « Bus 001 Device 004: ID 148f:5370 Ralink Technology, Corp. RT5370 Wireless Adapter »

    J’en déduis donc que j’utilise le même matériel que toi, mais mon rasp 2 sous Jessie ne veut rien savoir.

    Merci pour vos tuyaux.

    • Il faudra un peu plus d’infos. Est-ce que la clé est bien compatible Access Point ? Est-ce que hotspotd est bien démarré ? Est-ce que l’interface WLAN a bien une IP attribuée ?

      • aurelien

        Alors, j’ai repris le tuto dés le départ, sur la base de l’image raspbian minimale dispo sur le site de la fondation. Alors cette fois ci tout s’est bien passé sauf pour haserl ou je n’ai pas réussi à compiler. Un apt-get install haserl m’a dépanné. J’ai également commenté les lignes dans /etc/network/interfaces relatives à wpa-supplicant

        Mon point d’accès est visible et fonctionne mais uniquement quand je lance hostapd en débug via « hostapd -dd /etc/hostapd/hostapd.conf » . La je ne comprends pas.
        De plus, comment faire pour lancer hostapd automatiquement au démarrage ? Je passe par le daemon ou en service ?

        • Le point 4 de hostapd ne fonctionne pas ?

          • aurelien

            Je n’ai aucun retour du prompt. Je passe ma commande, il cherche 30 secondes puis aucun message d’erreur (mais pas de confirmation de lancement) et il me redonne la main

          • aurelien

            Problème résolu. L’adresse du daemon était commentée dans /etc/default/hostapd. Merci pour le tuto et pour ton aide.

            Je termine ce soir la réalisation du tuto

          • aurelien

            J’ai tenté de terminé le tuto, et je coince avec Nginx, quand je tape l’ip de mon rasp/daloradius j’ai une jolie erreur 404. Je ne sais pas quoi faire et je patauge dans la configuration de Nginx, à tel point que je ne sais même pas dans quel fichier serait l’erreur.

            A vrai dire, je cherche un poil à compliquer l’installation, car je souhaiterai avoir daloradius et ez service monitor dans sa version web en paralléle.

            Je ne voudrais pas abuser, mais si tu pouvais m’apporter ton aide, ou m’indiquer un tuto de config sur Nginx, car je dois sauter une case dans ceux que j’ai parcouru jusque là.

  • Théa Van

    salut je tiens d’abord à vous dire merci pour ce tuto très complet.

    j ai un souci au niveau de la redirection vers ma page web index.html

    fichier :/etc/chilli/www/login_success_tmpl

    Success!

    You are about to be redirected $(href= »index.html » « projet « )

    To log out, type « logout » (or « http://logout/ ») enjoy!

    merci pour le tuyau

  • Gabriel

    Where do I add the script in nginx for daloradius like these

    Update the default site configuration by enabling PHP support. The information is to be added (or remove comments) in the section server.
    At the line 25 (always default)
    index index.php index.html index.htm;
    And enable PHP support

    location ~ .php$ {
    fastcgi_split_path_info ^(.+.php)(/.+)$;
    fastcgi_pass unix:/var/run/PHP5-fpm.sock;
    fastcgi_index index.php;
    include fastcgi_params;
    }

    is it in site-enabled or site-available? Do I create a new conf file or just modify the default? I cannot seems to get it working…

    • Either. The one in sites-enabled is a logical link to the one in sites-available.
      Don’t forget to restart the service after any update

      • Gabriel

        Hi i receive this message when I run « nginx -t » to test the conf file

        nginx: [emerg] « fastcgi_index » directive is duplicate in /etc/nginx/sites-enabled/default:46
        nginx: configuration file /etc/nginx/nginx.conf test failed

        This is my default file can you spot any problem? It appears that index.php is referred twice so the warning message?

        • Search for fastcgi_index. It seems you have 2 lines uncommented in the file and comment the unwanted one

          • Gabriel

            I cleaned up the script a bit and still have the fastcgi_index duplicated… Searched fastcgi_index and it only has one occurrence.. any ideas?

          • Look at the file included from the snippets folder. Should have another fastcgi_index command into it. You can comment the one in the nginx configuration file

        • Gabriel

          Ok it works now and I can restart nginx service. However when I type to login to daloradius (i.e. 169.254.160.231/daloradius) it returns 404 Not Found page. Nginx/1.6.2 is in the page also so i suppose everything is working but nginx cannot find daloradius folder ??

          • Correct. The folder does not exist or have a default index based on the root path defined in the configuration file

          • Gabriel

            I set the root to /usr/share/nginx/www/daloradius which is where daloradius php files located according to your instruction.. Still unable to locate it?

          • Gabriel

            I used apache2 as server and its all good now… Many thanks for your help Pi Home!!

  • Olivier

    Bonjour
    Merci pour ce Tuto qui est le plus complet que j’ai pu trouver.
    Tout d’abord il faut dire que je débute sur inux.
    Je suis bloqué dans l’installation de Freeradius. J’ai créé la base de données en ajoutant le psw avant mysql dans la commande , mais quand je veux passer à l’étape suivante sur l’installation du schéma mon rapsberry me répond systématiquement « access denied  »
    Où est-ce que j’ai pu manquer une étape

    Merci

    Olivier

    « Failed better « 

    • Salut
      Est-ce que la connexion à MySql fonctionne avec le user root et son mot de passe ? Si tu peux valider le couple avant de lancer la commande ca pourrait peut être donner une piste car il s’agit « juste » de lancer un script avec le user root (le root de MySql par de Linux)

      • Nicolas Nioche (Nicos)

        Salut et merci pour le tuto !

        J’ai le même soucis. Pour avancer la discussion, j’ai bien pu me connecter à MySql en root + mdp, j’ai pu « use radius » et « show databases; »

        +——————–+
        | Database |
        +——————–+
        | information_schema |
        | mysql |
        | performance_schema |
        | radius |
        +——————–+

        Donc la base est bien créée. Le hic c’est quand je demande le shema de la base, il est vide. logique car comme Olivier, la commande

        [19:07 pi@raspberrypi /] > mysql -u root -p*********** radius sudo apt-get install -y debhelper libssl-dev libcurl4-gnutls-dev mysql-server freeradius freeradius-mysql gcc make libnl1 libnl-dev pkg-config iptables
        Reading package lists… Done
        Building dependency tree
        Reading state information… Done
        debhelper is already the newest version.
        freeradius is already the newest version.
        freeradius-mysql is already the newest version.
        gcc is already the newest version.
        iptables is already the newest version.
        libcurl4-gnutls-dev is already the newest version.
        libnl-dev is already the newest version.
        libnl1 is already the newest version.
        libssl-dev is already the newest version.
        make is already the newest version.
        mysql-server is already the newest version.
        pkg-config is already the newest version.

        0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.

        Je ne vois donc pas trop ce qui bloque, si ce n’est un problème d’accès à certain fichiers..

        • N’étant pas super habitué sous linux, j’ai trouvé une réplique de ce tuto en Thai (oui oui) dans lequel il y a avait le screen libérateur . Il fallait passé en ‘sudo su’ alors que j’essayais uniquement en ‘sudo’

          [19:08 pi@raspberrypi ~] > sudo su
          root@raspberrypi:/home/pi# mysql -u root -p********* radius < /etc/freeradius/sql/mysql/schema.sql
          root@raspberrypi:/home/pi#

          et là ça passe ! Je continue donc.

          • Olivier

            Bonjour,
            après un petit mois d’arrêt sur mon projet, je reviens.

            passer par le user root a permis de résoudre le problème mais je ne sais pas si cela est dû à ma version de raspbian, il a fallu que je configure mysql de façon manuelle, tout d’abord en nettoyant ma config :
            sudo apt-get purge mysql-server-5.5
            sudo rm -rf /var/lib/mysql
            puis en réinstallant (avec le mot de passe raspbian)
            sudo apt-get install mysql-server-5.5

            j’ai ensuite lancé mysql :
            # mysql -u root –p
            mysql> create database radius;
            mysql> quit

            et voilà ça marche … j’ai maintenant un petit pb avec coova mais cela fera l’objet d’un post séparé

            Merci

            Olivier

            « Fail better »

        • Le user pi n’a pas le droit d’accéder au fichier d’où l’erreur que tu as aussi détectée et résolu vu ton commentaire suivant
          Pour info/rappel toutes les commandes sont faites avec le user root. C’est mal mais pratique pour mon usage à la maison

  • PBX-Ramdas

    Hello, the best tutorial that I found on the web. Thank you very much.
    I would like to know if you had time to integrate Squid as a transparent proxy. I am using a 3G/4G connection as WAN interface, and Squid could save data costs.

    • Hi. Thank you for the feedback
      Sorry about Squid. I did not try to add it yet

  • litoy2x

    hi, is it possible that every time i press a button switch it will generate a new user & password? i was thinking to do that programmatically. my scenario is that if someone comes to my house, they will just press a button and print the user and password. is this possible?

    • I know that you can with dedicated software (oft en used inns omega companies for customers). Maybe there is an API that will allow you to do that. I am curious to know if it’s possible

  • Bonjour à tous, c’est encore moi
    ( oui je fais le tuto en 3 jours et alors ? – j’essaye en effet de comprendre chaque étape, les commandes etc.. histoire de ne pas faire un bête copier/coller.

    Question 1 – Tout d’abord j’ai une question étrange (oui, je débute sous linux). j’ai un raspberry 3 (qui a donc un wifi intégré si je ne m’abuse) et j’ai acheté la clef wifi avec les deux antennes (celle préco en début de tutoriel.)
    Le hic, c’est que je suis quasi sûr que la wlan1 (wifi lan i guess) est l’interface du wifi fourni avec le Rasp et que la Wlan0 doit être celle de ma clef wifi. Je n’ai pas trouvé d’autre moyen que de débrancher la clef wifi faire un ifconfig, la rebrancher et refaire ifconfig pour voir que la wlan0 s’était ajouté. Il y a t-il une méthode plus propre ?

    Voici un screen pour peut être y voir plus clair (la première interface est eth0 (ethernet 0 i guess)): https://uploads.disquscdn.com/images/79a0912d29837ec03621f4d7924266e8a46e562a22f66d3d5c2c2211f70159bd.png

    Question 2 : Je suis arrivé à l’endroit du tutoriel où je dois lancer le service HOSTAPD (service hostapd start) . Je lance la commande (en sudo su) mais rien ne se passe et on me rend immédiatement le prompt. Je me dis bon il n’est peut être pas très bavard, et donc essaye avec un autre PC portable wifi à la maison ou mon portable voir si le réseau PiHomeServeurAP est disponible. Sans succès. Que me conseiller vous pour débuguer ?

    En vous remerciant par avance.
    Nicos

    • En fait, si certain me lise, je conseille un redémarrage du Raspberry après chaque grand point d’installation. (à chaque changement de « chapitre ». En effet après avoir redémarré, je vois désormais mon point d’accès depuis mon portable, Pc etc. Ça fait tellement plaisir de voir son serveur au côté des 100 aine de WiFi du quartier. Bon. Désormais via navigateur (depuis mon portable) je n’arrive pas à avoir la page de connexion de covachilli. Je vais chercher encore avant de demander. ><. La question 1 précédente reste toujours d'actualité si quelqu'un passe par ici…

  • Olivier

    Bonjour
    quand j’exécute la commande : root@raspberrypi:/usr/src# wget https://coova.github.io/Download/coova-chilli-1.3.0.tar.gz
    j’ai le retour suivant :
    –2016-07-18 02:45:09– https://coova.github.io/Download/coova-chilli-1.3.0.tar.gz
    Resolving coova.github.io (coova.github.io)… 151.101.12.133
    Connecting to coova.github.io (coova.github.io)|151.101.12.133|:443… connected.
    HTTP request sent, awaiting response… 404 Not Found
    2016-07-18 02:45:09 ERROR 404: Not Found.

    avec quelques recherches, j’ai trouvé sur : http://coova.github.io/CoovaChilli/DistroBuilding/
    le lien suivant qui fonctionne : wget https://github.com/coova/coova-chilli/archive/1.3.1.4.tar.gz

    mais sans succés à la fin :
    root@raspberrypi:/usr/src/coova-chilli-1.3.1.4# dpkg-buildpackage -us -uc
    dpkg-buildpackage: source package coova-chilli
    dpkg-buildpackage: source version 1.3.0
    dpkg-buildpackage: source distribution unstable
    dpkg-buildpackage: source changed by David Bird (Coova Technologies)
    dpkg-buildpackage: host architecture armhf
    dpkg-source –before-build coova-chilli-1.3.1.4
    dpkg-checkbuilddeps: Unmet build dependencies: gengetopt libtool automake
    dpkg-buildpackage: warning: build dependencies/conflicts unsatisfied; aborting
    dpkg-buildpackage: warning: (Use -d flag to override.)

    Ce qui m’ennuie le plus est qu’il semble que je sois le seul à voir un problème de connexion avec le serveur github.

    Merci pour ton aide

    Olivier

    « Fail Better »

  • Darby

    Bonjour,
    Merci pour cet excellent tuto que j’ai suivi à la lettre avec ma Raspi3 et qui fonctionne parfaitement !

    Je voudrais utiliser ce point d’accès sans Internet, est-ce possible ? (quand je débranche le câble ethernet il n’est plus possible de se connecter)
    Lors de la connexion, est-il possible d’être diriger sur une autre page que la page d’identification ?
    Merci d’avance.
    Darby

    • Excellente nouvelle si cela fonctionne !
      Le but de Coova est d’offrir une identification. Pour un « bete » protail captif il y a cette solution : http://www.pihomeserver.fr/2014/05/23/raspberry-pi-home-server-creer-hot-spot-wifi-portail-captif-22/

      Malheureusement j’ai perdu les sources du point 5 mais ca peut donner le principe général

      Bon courage !

      • Darby

        Merci pour la réponse rapide.
        Sans Coova, j’arrive à avoir mon point d’accès, sans internet. La raspi me donne une adresse IP et ce que je cherche à faire, c’est qu’à l’ouverture du browser, je sois redirigé sur la page principale du serveur tournant sur ma raspi. Est-ce possible ?

        • Oui ca l’est en « jouant » avec les iptables
          En gros il faut : monter un serveur web avec la page que tu souhaites (y a un exemple dans le lien que je t’ai donné)
          Ensuite tu utilises iptables pour rediriger tout le trafic qui vient de l’interface du hotspot vers ton serveur web. Un truc dans le genre

          iptables -t nat -A PREROUTING -i wlan0 -p tcp -m mark –mark 99 -m tcp –dport 80 -j DNAT –to-destination 192.168.10.1

          tu envoies tout le trafic vers l’ip 192.168.0.1 et sur le port 80. Dans l’article c’est là que se trouve le serveur web.

          • Darby

            Je ne trouve pas mon erreur :

          • Je ne vois rien sur la capture. Pour iptable j’ai donné un exemple mais il faut creuser pour avoir la bonne commande. Et je ne maîtrise pas ce sujet

  • Hey i was wondering if you could give me a hand! When im doing the coovachilli configuration for compilation i always the following error, do you have any idea why?

    cc1: all warnings being treated as errors
    Makefile:755: recipe for target ‘main-opt.o’ failed
    make[4]: *** [main-opt.o] Error 1
    make[4]: Leaving directory ‘/usr/src/coova-chilli-1.3.0/src’
    Makefile:813: recipe for target ‘all-recursive’ failed
    make[3]: *** [all-recursive] Error 1
    make[3]: Leaving directory ‘/usr/src/coova-chilli-1.3.0/src’
    Makefile:313: recipe for target ‘all-recursive’ failed
    make[2]: *** [all-recursive] Error 1
    make[2]: Leaving directory ‘/usr/src/coova-chilli-1.3.0’
    Makefile:240: recipe for target ‘all’ failed
    make[1]: *** [all] Error 2
    make[1]: Leaving directory ‘/usr/src/coova-chilli-1.3.0’
    debian/rules:36: recipe for target ‘build’ failed
    make: *** [build] Error 2
    dpkg-buildpackage: error: debian/rules build gave error exit status 2

    • Hi
      Because warnings are treated as errors so the first warning will stop the compilation
      Remove the flag -Werror that could block the job

      • I was able to do it earlier by removing a space in that export CFLAGS= « -Wno-error » comand, i’m not sure it was that but it seemed to work soo xD, thanks for the quick response anyways!

      • Just another problem i seem to be having by the way, it seems that when installing the daloradius packages, raspberry cannot find the libgd2-xpm package, do you have any idea why?

      • Could you also help me with one thing, in the /usr/share/nginx/www/daloradius/library/daloradius.conf.php i can put this:

        $configValues[‘CONFIG_DB_USER’] = ‘radius’;
        $configValues[‘CONFIG_DB_PASS’] = ‘radpass’;
        $configValues[‘CONFIG_DB_NAME’] = ‘radius’;

        anywhere i want right?

        And also this

        index index.php index.html index.htm;

        i am to put whats above in the line 25 i got that but what about what comes afterwards

        location ~ .php$ {
        fastcgi_split_path_info ^(.+.php)(/.+)$;
        fastcgi_pass unix:/var/run/PHP5-fpm.sock;
        fastcgi_index index.php;
        include fastcgi_params;
        }

        am i suposed to put this right below the index index.php etc?

      • Abraham Gomez

        Remove -Werror from where exactly? Sorry if this is a silly question. I didn’t see it in debian/rules file

        • Execute the following command and run the compilation again (in the same session of course)
          export CFLAGS= »-Wno-error »

    • Tempest Fury

      I got stuck at the same place, and I finally found an article where someone suggested a fix.

      There are two files (Makefile.am and Makefile.in) in /usr/scr/coova-chilli-1.3.0/src. Remove the -Werror option

      In Makefile.am look for this line « AM_CFLAGS = -D_GNU_SOURCE -Wall -Werror -fno-builtin -fno-strict-aliasing  » and remove -Werror, close and save the file

      in Makefile.in look for this line « AM_CFLAGS = -D_GNU_SOURCE -Wall -Werror -fno-builtin » and remove -Werror, close and save file. (this is near the bottom of the file)

      Then continue from here :

      export CFLAGS= »-Wno-error »
      ./configure –prefix=/usr …..
      sudo dpkg-buildpackage -us -uc (when you bulidpackage, should not result in any errors this time)

      • Thx. I did not know that the export was not enought.
        Thank you for the share

        I hope to have time to update this post with newest software versions and Raspberry 3

      • klima777

        Hey!
        First thanks @pihomeserver:disqus for the article. I try to install CoovaChilli now in a virtual machine on Ubuntu Server 16.04 LTS for a Captive Portal and this article helped me a lot!!

        I got stuck in the same moment described above. I removed -Werror in both files, but the compilation still does not complete.

        I get the following.

        make[4]: Leaving directory ‘/usr/src/coova-chilli-1.3.0/src’
        make[3]: Leaving directory ‘/usr/src/coova-chilli-1.3.0/src’
        Making all in doc
        make[3]: Entering directory ‘/usr/src/coova-chilli-1.3.0/doc’
        make[3]: *** No rule to make target ‘all’. Stop.
        make[3]: Leaving directory ‘/usr/src/coova-chilli-1.3.0/doc’
        Makefile:313: recipe for target ‘all-recursive’ failed
        make[2]: *** [all-recursive] Error 1
        make[2]: Leaving directory ‘/usr/src/coova-chilli-1.3.0’
        Makefile:240: recipe for target ‘all’ failed
        make[1]: *** [all] Error 2
        make[1]: Leaving directory ‘/usr/src/coova-chilli-1.3.0’
        debian/rules:36: recipe for target ‘build’ failed
        make: *** [build] Error 2
        dpkg-buildpackage: error: debian/rules build gave error exit status 2

        I get in some steps earlier when entering ./configure …. the following warnings

        configure: WARNING: you should use –build, –host, –target
        configure: WARNING: invalid host type: 2763{prefix}/share/info
        configure: error: expected an absolute directory name for –infodir: =

        Do I compile it on a wrong OS? Shell I merge the ./config arguments with the arguments in the /usr/src/coova-chilli-1.3.0/debian/rules file?

        • Did you try the export command first and then configure and compile ?

          • klima777

            Thank you for your reply.
            I tried that for about 3 or four times.
            Now the installation passes very quick and I get these at the end

            make[1]: Entering directory ‘/usr/src/coova-chilli-1.3.0’
            /usr/bin/make all-recursive
            make[2]: Entering directory ‘/usr/src/coova-chilli-1.3.0’
            Making all in bstring
            make[3]: Entering directory ‘/usr/src/coova-chilli-1.3.0/bstring’
            make[3]: Nothing to be done for ‘all’.
            make[3]: Leaving directory ‘/usr/src/coova-chilli-1.3.0/bstring’
            Making all in src
            make[3]: Entering directory ‘/usr/src/coova-chilli-1.3.0/src’
            make[4]: Entering directory ‘/usr/src/coova-chilli-1.3.0/src’
            make[4]: Nothing to be done for ‘all-am’.
            make[4]: Leaving directory ‘/usr/src/coova-chilli-1.3.0/src’
            make[3]: Leaving directory ‘/usr/src/coova-chilli-1.3.0/src’
            Making all in doc
            make[3]: Entering directory ‘/usr/src/coova-chilli-1.3.0/doc’
            make[3]: *** No rule to make target ‘all’. Stop.
            make[3]: Leaving directory ‘/usr/src/coova-chilli-1.3.0/doc’
            Makefile:313: recipe for target ‘all-recursive’ failed
            make[2]: *** [all-recursive] Error 1
            make[2]: Leaving directory ‘/usr/src/coova-chilli-1.3.0’
            Makefile:240: recipe for target ‘all’ failed
            make[1]: *** [all] Error 2
            make[1]: Leaving directory ‘/usr/src/coova-chilli-1.3.0’
            debian/rules:36: recipe for target ‘build’ failed
            make: *** [build] Error 2
            dpkg-buildpackage: error: debian/rules build gave error exit status 2

            It seems that something is missing in the debian/rules file. there is something similar what the ./configure …. command is.
            What effect does ./configure (with all its arguments) have?
            perhaps I should start a new fresh installation?

          • Did you update the file (line 54) as explained in the post :

            $(MAKE) DESTDIR=/ install

          • klima777

            No I haven’t. I understood from the post that I have to change the destination directory to something other.
            Now it seems that my system should be 32-bit so that it will work:

            This program built for x86_64-pc-linux-gnu
            Report bugs to
            debian/rules: 10: debian/rules: shell: not found
            debian/rules: 10: debian/rules: DEB_HOST_GNU_TYPE: not found
            debian/rules: 11: debian/rules: shell: not found
            debian/rules: 11: debian/rules: DEB_BUILD_GNU_TYPE: not found
            debian/rules: 14: debian/rules: Syntax error: word unexpected (expecting « ) »)
            dpkg-buildpackage: error: debian/rules clean gave error exit status 2

            Thank you so much for help. I am installing CoovaChilli since three days at work and your tutorial helped me the most. I don’t understand why there is no real description at the github repository.

          • klima777

            deleted the previous compilation and compiled fresh and the .deb package appeared. I hope that it will work.
            @pihomeserver:disqus thank you sooo much. Meci beaucoup pour cet article et ta fatigue.

  • Abraham Gomez

    Hello there!
    Thank you for the tutorial!

    This is my first real raspberry pi project and I believe I have come to a dead end.

    I tried everything and I hope you can help me out.

    root@raspberrypi:/etc/chilli# ls -l
    total 48
    -rw-r–r– 1 root root 6504 Jul 28 06:41 defaults
    -rwsr-x— 1 root chilli 405 Jul 28 06:41 down.sh
    -rwxr-xr-x 1 root root 13301 Jul 28 06:41 functions
    -rw-r–r– 1 root root 672 Jul 28 06:41 gui-config-default.ini
    -rwxr-xr-x 1 root root 567 Jul 28 06:41 newmulti.sh
    -rwsr-x— 1 root chilli 2486 Jul 28 06:41 up.sh
    drwxr-xr-x 2 chilli root 4096 Jul 28 06:41 www
    -rwxr-xr-x 1 root root 893 Jul 28 06:55 wwwsh
    root@raspberrypi:/etc/chilli#

    Any ideas why I don’t have a config file? Should I create one?

    • Because dev tools are not installed on your system
      Try to install the package build-essentials

      • Abraham Gomez

        @pihomeserver:disqus Thanks for your reply.

        I was able to figure it out, but ran into another odd error.

        I seem to not have the /etc/chilli/config file after following your steps. I even manually created the config file just to see if it would work, but sadly it doesn’t.

        I see the end so close yet so far! 🙁

        • It should be a default file so I guess that there is an issue with the archive that you downloaded

          • Abraham Gomez

            wget https://coova.github.io/coova-chilli/coova-chilli-1.3.0.tar.gz
            I used this archive, because the one provided is not found

            I also found the following in etc/chilli/defaults:

            # -*- mode: shell-script; -*-

            #

            # Coova-Chilli Default Configurations.

            # To customize, copy this file to /etc/chilli/config

            # and edit to your liking. This is included in shell scripts

            # that configure chilli and related programs before file ‘config’.

            ###

            # Local Network Configurations

            #

            # HS_WANIF=eth0 # WAN Interface toward the Internet

            HS_LANIF=eth1 # Subscriber Interface for client devices

            HS_NETWORK=10.1.0.0 # HotSpot Network (must include HS_UAMLISTEN)

            HS_NETMASK=255.255.255.0 # HotSpot Network Netmask

            HS_UAMLISTEN=10.1.0.1 # HotSpot IP Address (on subscriber network)

            HS_UAMPORT=3990 # HotSpot UAM Port (on subscriber network)

            HS_UAMUIPORT=4990 # HotSpot UAM « UI » Port (on subscriber network, for embedde$

            # HS_DYNIP=

            # HS_DYNIP_MASK=255.255.255.0

            # HS_STATIP=

            # HS_STATIP_MASK=255.255.255.0

            # HS_DNS_DOMAIN=

            # OpenDNS Servers

            HS_DNS1=208.67.222.222

          • It seems that the archive is not build like before … i see in the GIT that many files have been recently updated so i guess they changed the structure

  • Abraham Gomez

    Hey everyone, my research online has found that the Raspbian Jessie has made large changes to networking from Raspbian Wheezy. From what is looks like, the etc/network/interface file SHOULD NOT be touched while configurations where moved to another file /etc/dhcpcd.conf . Sadly, that is all the information I have right now. If anyone figure it out please let me know!

    Thank you

  • I just noticed there is an error in the compilation of coovachilli. It is –mandir=$${prefix}/share/man and
    –infodir=$${prefix}/share/info. Also there is an extra space in the infodir one.

  • Richard Yendoube Bomboma

    salut je tiens a vous remercié pour le post c’est claire et lisible.mais a un niveau je me suis bloquerMettre à jour la configuration du site par défaut en activant le support
    PHP. Les informations sont à ajouter (ou enlever les commentaires) dans
    la section server.
    A la ligne 25 (toujours par défaut)

    index index.php index.html index.htm;

    Et activer le support PHP

    location ~ .php$ {
    fastcgi_split_path_info ^(.+.php)(/.+)$;
    fastcgi_pass unix:/var/run/php5-fpm.sock;
    fastcgi_index index.php;
    include fastcgi_params;
    }
    aufaite je sais pas dans quelle fichier dois-je activer le support PHP .
    merci

    • Bonjour. C’est dans le fichier default situé dans /etc/nginx/sites-enabled de mémoire
      Il faut bien sûr que nginx soit installé

  • Antho

    Bonjour, à l’installation de nginx, je saisi cette commande :

    apt-get install -y php5-mysql php-pear php5-gd php-db php5-fpm libgd2-xpm libpcrecpp0 libxpm4 nginx php5-xcache

    Voila ce qui se passe après avoir validé :
    Lecture des listes de paquets… Fait
    Construction de l’arbre des dépendances
    Lecture des informations d’état… Fait
    E: Impossible de trouver le paquet libgd2-xpm

    Je cherche désepérément comment faire pour ajouter ce paquet mais n’y arrive pas. Quelqu’un a-t-il un conseil?

    merci

    • Le paquet a changé de nom est s’appelle maintenant libgd2-xpm-dev. Ca devrait passer comme ça

      • Antho

        Merci pour ton aide effectivement maintenant plus de soucis à ce niveau.

        Par contre cette fois ci je rencontre une erreur 404 quand je me connecte sur l’ip du raspberry, j’ai bien vérifié la structure du fichier a modifier, tout est bon puisque je n’ai pas d’erreur au redémarrage de nginx. Là je bloque.

        • Il faut regarder dans les logs (/var/log/nginx) dans le fichier des erreurs pour savoir quel fichier il veut accéder et qu’il ne trouve pas

          • Antho

            Bonjour, voila l’erreur qui ressort :
            08/09 14:03:46 [error] 791#0: *10 directory index of « /var/www/html/ » is forbidden, client: 192.168.1.47, server: _, request: « GET / HTTP/1.1 », host: « 192.168.1.47 »

            Je trouve cela très étrange, le dossier Daloradius doit bien être dans /usr/share/nginx/www et non pas dans /var/www/html?

            Merci pour ton aide

          • La configuration du serveur pointe dans /var/www/html (dans le fichier default la variable/attribut root)
            Il faut mettre la valeur correspondant à ton répertoire et s’assurer que le user www-data (qui est le user par défaut pour nginx en principe) a bien les droits en lecture

          • Antho

            Je vient de faire les modif, placé le dossier Daloradius dans /usr/share/nginx/html,
            en me connectant dur « IP du Rasp »/daloradius j’obteint une page blanche, j’ai la forte impression que l’affichage des pages php ne se fait pas.
            J’ai fait pas mal de tests, je ne vois pas comment m’assurer que le service tourne.

            Ca me tue d’être si proche du but et de buter là dessus, je brule. 🙂

          • Antho

            C’est fonctionnel!!! il fallait faire une modif dans le fichier /etc/nginx/sites-enabled/default, en remplacant « include fastcgi_params; » par « include fastcgi.conf; »

            source : https://www.vincentliefooghe.net/content/php-nginx-page-blanche-lors-lappel-dun-script-php

            Encore merci pour ton aide

  • Olivier

    Bonjour,
    l’ensemble de l’installation s’est bien passé ; pas de messages d’erreur, la navigation est vraiment fluide.mais quand je cherche à me connecter à Daloradius j’ai un message
    404 not found
    nginx/1.6.2

    j’ai essayé la proposition d’antho mais sans succés

    merci
    olivier

    • Bonjour
      Il faut regarder le message d’erreur dans la log de nginx pour avoir un début de piste. Est ce que le répertoire dolaradius est bien au bon endroit ? Accessible ?

      • Olivier

        Bonjour,
        daloradius est bien sous NGINX :
        j’ai corrigé dans le fichier default « root /usr/share/nginx/html » et avec la modif d’Antho  » faire une modif dans le fichier /etc/nginx/sites-enabled/default, en remplacant « include fastcgi_params; » par « include fastcgi.conf; » –> tout marche parfaitement.

        Merci à tous

        Olivier

  • En finalisant l’installation sur un Raspberry 3, une fois connecté au hotspot après authentification j’ai une erreur ERR_EMPTY_RESPONSE lors de la redirection vers la page login.chi
    Le problème arrive sous MacOS et sous Android.

    Une idée ?

  • Ivan Jules Vivas

    is there a way that it can backup and restore most viewed videos so that it wont load from the internet again and again?

    • Yes with squid as a transparent proxy

      • Ivan Jules Vivas

        do you have tutorial for that sir? and can it be apply with this setup too?

        • I have a separated one on this blog but not linked to coova. You can try to adapt it (is still work on it)

  • Rodrigue ANDRIANOMENJANAHARY

    Bonjour,

    J’ai un problème lors de l’accés a mon réseaux wifi,j’ai creer l’utilisateur « usertest » ainsi que son mot de passe « passwd » mais quand je me connecte avec,l’interface m’envoie un erreur du genre: « Username and/or password was not valid »

    Or que j’ai testé avec cette commande « radtest usertest passwd localhost 0 testing123 » et il y a ces resultat qui s’affiche:

    Sending Access-Request of id 67 to 127.0.0.1 port 1812

    User-Name = « usertest »

    User-Password = « passwd »

    NAS-IP-Address = 127.0.1.1

    NAS-Port = 0

    Message-Authenticator = 0x00000000000000000000000000000000

    rad_recv: Access-Accept packet from host 127.0.0.1 port 1812, id=67, length=20

    pi@raspberrypi:~ $

    Est ce que quelqu’un puisse m’aider???

    • Je pense que la configuration de coovachilli n’est pas correcte et n’utilisé pas la.base de données radius qui contient les utilisateurs

      • Rodrigue ANDRIANOMENJANAHARY

        Alors comment peut-on le configurer pour qu’il utilise la base de données radius???

        Pour information,j’ai du creer mon propre fichier de configuration de chilli dans /etc/chilli car y en avait pas lors de la téléchargement, puis j’ai copier son contenue d’après le site sivant: https://forum.ubuntu-fr.org/viewtopic.php?id=1002791
        Après je l’ai modifié pour être fonctionnelle,puis j’ai continuer de suivre le tutos.

        • Est ce que la configuration qui a été copiée s’aligne sur celle de l’article au niveau paramètres ? Car le soucis peut venir que de la à mon avis car freeradius valide ton user et coovachilli valide la connexion au hot-spot
          Tu as pris ou l’archive de coova ?

  • Lucas

    Hi have two errors:
    insserv: warning: script ‘K01chilli’ missing LSB tags and overrides
    insserv: warning: script ‘chilli’ missing LSB tags and overrides

    pls help me for it.

    • Hello. It’s not errors but warnings and it’s due to a missing header in the script but the header is not mandatory so it’s not blocking

      • Lucas

        ok, tks

  • Chintan Patel

    Can you please upload the Images of Rapberry pi OS after conplete installation.

  • Prasan Dutt

    Freeradius step 5, I found out that « $INCLUDE sql.conf » is line number is 743.

    • You have to uncomment to use sql

      • Prasan Dutt

        I mean to say that line number was different.
        I followed all the steps correctly (uncomment sql lines), but not getting response from port. If there is no any other reason that can cause such problem, then I’ll try again.

        • Seeing your screenshot your freeradius is not running. Check logs to get info
          Also search comments here are some advices that could help you

          • Prasan Dutt

            I needed to reboot the pi to make it work. Thanks 🙂

  • Lucas

    Hi in which file I include the lines. (daloRADIUS)
    5.Update the default site configuration by enabling PHP support. The information is to be added (or remove comments) in the section server.
    At the line 25 (always default)
    index index.php index.html index.htm;
    And enable PHP support

    location ~ .php$ {
    fastcgi_split_path_info ^(.+.php)(/.+)$;
    fastcgi_pass unix:/var/run/PHP5-fpm.sock;
    fastcgi_index index.php;
    include fastcgi_params;

    • In the nginx configuration file that is in sites-enabled folder

      • Lucas

        ok, in web page: http://myserver/daloradius/

        error:
        403 Forbidden

        nginx/1.6.2

        can you help me?

        • It’s related to your Nginx configuration. Check folder rights and adapt them. Should not be root but www-data user

    • Lucas

      ok tks

  • Lucas

    the home page (index) of nginx is ok!

    more web page: http://myserver/daloradius/
    error:
    403 Forbidden
    nginx/1.6.2
    can you help me?

  • Prasan Dutt

    Following all the steps carefully, I got the final error when I try to open daloradius in chrome browser as « 502 Bad Gateway nginx/1.6.2 »

    Only one problem during installation was « unable to locate libgd2-xpm ». Is this the issue or something else?

  • Seb

    Bonjour,
    J’ai un souci pour démarrer Daloradius.

    Je n’est pas acces a l’interface web.

    Dans les logs de nginx j’ai ce message :
    invalid number of arguments in « root » directive in /etc/nginx/sites-enabled/default:33

    A cette ligne est inscris :
    root /usr/share/nginx/html

    Je ne peux pas démarrer le service nginx.

    Merci pour votre aide

  • Tom Domenge

    pour intégrer squid un petit redscoks fait l’affaire :

    ########################################################################
    # Define various configuration parameters.
    ########################################################################

    SOCKS_PORT=1080
    REDSOCKS_TCP_PORT=$(expr $SOCKS_PORT + 1)
    TMP=/tmp/subnetproxy ; mkdir -p $TMP
    REDSOCKS_LOG=$TMP/redsocks.log
    REDSOCKS_CONF=$TMP/redsocks.conf
    SUBNET_INTERFACE=wlp2s0 #interface wifi
    SUBNET_PORT_ADDRESS=$(ip -o -4 addr list $SUBNET_INTERFACE | awk ‘{print $4}’ | cut -d/ -f1) #récupération automatique de l’ip
    INTERNET_INTERFACE=enp025 #ethernet

    ########################################################################
    #redsocks configuration
    ########################################################################

    cat >$REDSOCKS_CONF <<EOF
    base {
    log_info = on;
    log = "file:$REDSOCKS_LOG";
    daemon = on;
    redirector = iptables;
    }
    redsocks {
    local_ip = 0.0.0.0;
    local_port = $REDSOCKS_TCP_PORT;
    ip = proxy;
    port = 8080;
    type = http-relay; #ou socks
    }
    EOF

    # To use tor just change the redsocks output port from 1080 to 9050 and
    # replace the ssh tunnel with a tor instance.

    ########################################################################
    # start redsocks
    ########################################################################

    sudo redsocks -c $REDSOCKS_CONF -p /dev/null

    ########################################################################
    # proxy iptables setup
    ########################################################################

    # create the REDSOCKS target
    sudo iptables -t nat -N REDSOCKS

    # don't route unroutable addresses
    sudo iptables -t nat -A REDSOCKS -d 0.0.0.0/8 -j RETURN
    sudo iptables -t nat -A REDSOCKS -d 10.0.0.0/8 -j RETURN
    sudo iptables -t nat -A REDSOCKS -d 127.0.0.0/8 -j RETURN
    sudo iptables -t nat -A REDSOCKS -d 169.254.0.0/16 -j RETURN
    sudo iptables -t nat -A REDSOCKS -d 172.16.0.0/12 -j RETURN
    sudo iptables -t nat -A REDSOCKS -d 192.168.0.0/16 -j RETURN
    sudo iptables -t nat -A REDSOCKS -d 224.0.0.0/4 -j RETURN
    sudo iptables -t nat -A REDSOCKS -d 240.0.0.0/4 -j RETURN

    # redirect statement sends everything else to the redsocks
    # proxy input port
    sudo iptables -t nat -A REDSOCKS -p tcp -j REDIRECT
    –to-ports $REDSOCKS_TCP_PORT

    # if it came in on eth0, and it is tcp, send it to REDSOCKS
    sudo iptables -t nat -A PREROUTING -i $SUBNET_INTERFACE
    -p tcp -j REDSOCKS

    sudo iptables -A INPUT -i $SUBNET_INTERFACE -p tcp –dport $REDSOCKS_TCP_PORT
    -j ACCEPT

    • Seb

      Bonjour,

      Je suis en train d’intégrer squid moi aussi.

      J’ai ce message avec tes commandes IPTABLES :

      iptables: No chain/target/match by that name.

      Merci pour ton aide

      • Peux tu me contacter par ma boite email car ces échanges risquent d’être longs et de polluer le fil de la discussion (pihomeserver at gmail dot com)
        Et j’ai la réponse 😉