====== ChilliSpot ====== ... est mort ! vive : *http://coova.org/CoovaChilli *http://pepperspot.sourceforge.net/ *http://linux.xvx.cz/2010/03/debian-wi-fi-hotspot-using-coovachilli-freeradius-mysql-and-daloradius/ Authentification radius en Perl: http://search.cpan.org/~manowar/RadiusPerl-0.17/Radius.pm ===== coova ===== | :!: A la fin: je n'y arrive pas , donc, inutile de parcourir ce brouillon ! | Liens: *https://help.ubuntu.com/community/WifiDocs/CoovaChilli ==== radius ==== Quelques pré-requis: outils radius: # aptitude install freeradius-utils Sur un autre serveur, avec freeradius (ca marche encore ce truc), j'ajoute le nouveau futur client dans **''/etc/freeradius/clients.conf''** : ... .... ## TJ : 2010/10/12 client { secret = shortname = } Ensuite, je test un compte que je connais, sur le nouveau client, comme cela: $ radtest 0 et ca retourne un truc du genre: ... blabla ... ... Access-Accept packet ... et on est content. ==== compil ==== $ cd /usr/local/src $ wget http://ap.coova.org/chilli/coova-chilli-1.2.4.tar.gz $ tar xvzf coova-chilli-1.2.4.tar.gz # aptitude install make gcc $ ./configure $ make # make install Faire un paquet debian plutot ? ca marche po ! # adduser --system --no-create-home --disabled-login chilli $ cd /usr/local $ mkdir -p var/run ==== apache ==== # aptitude install apache2 ===== mon portail captif ===== ==== outils ==== *serveur radius (qu'on ne s'expliquera pas) *client radius perl *ferm (iptables en plus lisible) *serveur dhcp *apache et cgi qui va bien *quelques "cron" bien placés ==== client radius ==== module **''Auth::Radius''** : http://search.cpan.org/~manowar/RadiusPerl-0.17/Radius.pm # aptitude install libauthen-radius-perl Petit test, dans un fichier nommé **''test.pl''** : #!/usr/bin/perl -w use strict; use warnings; use Authen::Radius; { if ( my $rad = new Authen::Radius( Host => '', Secret => '' ) ) { if ( $rad->check_pwd('','') ) { print "OK\n"; } else { print "Wrong!\n"; } } } $ chmod a+x test.pl $ ./test.pl OK Ca fait la même chose, en Perl, qu'avec **''radtest''** vu plus haut. ==== arping ==== # aptitude install arping mais comme il ne fonctionne qu'en root, on va s'appuyer sur "sudo": # visudo ... ... # User alias specification User_Alias CHILLI_USER=thierry,www-data # Cmnd alias specification Cmnd_Alias CHILLI_CMD=/root/prod/chilli/chilli-arping # User privilege specification CHILLI_USER ALL=NOPASSWD:CHILLI_CMD Scripte dans **''/root/prod/chilli/chilli-arping''** : #!/bin/sh read -t 5 CHILLI_IP || exit 1 if [ -n "$CHILLI_IP" ]; then RETURN=$( arping -c 1 -i eth2 "$CHILLI_IP" | grep "bytes from" | awk -F' ' '{ print $4; }' ) if [ -n "$RETURN" ]; then echo "$RETURN" fi fi $ sudo echo "192.168.1.64" | sudo /root/prod/chilli/chilli-arping 00:21:9b:d8:65:40 ==== sqlite3 ==== # aptitude install sqlite3 # aptitude install libclass-dbi-sqlite-perl ==== Extra ==== === squid3 === # aptitude install squid3 conf classique... avec https ? http://www.mail-archive.com/squid-users@squid-cache.org/msg59218.html et puis: # aptitude install squidguard Lien: http://www.coagul.org/article.php3?id_article=184 recuperer les blacklist gratuite: http://www.squidguard.org/blacklists.html recuperer la blacklist "france" : # cd /usr/local/src # wget ftp://ftp.univ-tlse1.fr/pub/reseau/cache/squidguard_contrib/blacklists.tar.gz # tar zxvf blacklists.tar.gz -C /var/lib/squidguard/db/ # cd /var/lib/squidguard/db # mv blacklists/* . Modifier la conf dans **''/etc/squid/squidGuard.conf''** et inclure les bases voulus. Par exemple: # TJ ------------ dest adult { domainlist adult/domains urllist adult/urls expressionlist adult/expressions #redirect http://squid.chilli.tjaouen.fr/cgi-bin/squidGuard.cgi?clientaddr=%a+clientname=%n+clientident=%i+srcclass=%s+targetclass=%t+url=%u redirect http://squid.chilli.tjaouen.fr/interdit.html } dest agressif { domainlist agressif/domains urllist agressif/urls expressionlist agressif/expressions redirect http://squid.chilli.tjaouen.fr/interdit.html } ... acl { default { pass !adult !agressif redirect http://squid.chilli.tjaouen.fr/interdit.html } } Et __uniquement__ aprés: # /usr/bin/squidGuard -C all # chown -R proxy: /var/lib/squidguard/ # /etc/init.d/squid3 reload Problème possible: * Droits incorrects sur les fichiers dans '../db/..' (il faut un accès complet) * le parametre "expressionlist" n'est pas toujours requis ... dans ces 2 cas: squid plante totalement ! (a cause de "squidGuard") Pour le traitement des erreurs "interdit": # cd /cgi-bin # zcat /usr/share/doc/squidguard/examples/squidGuard.cgi.gz >squidGuard.cgi et comme c'est un script du 20ieme siècle, il faut faire: # cp {,old-squidGuard.cgi} # cat old-squidGuard.cgi | sed -e 's/\%\([a-zA-Z]*\)\(->\)/$\1/g' >squidGuard.cgi ===== squid3 et https ===== Liens: *http://www.d90.us/toolbox/2009/05/26/adding-ssl-support-to-squid-package-on-ubuntu/ $ su # cd /usr/local/src # aptitude update # aptitude install libssl-dev # aptitude install devscripts build-essential fakeroot # apt-get update # apt-get source squid3 # aptitude build-dep squid3 # aptitude install libcppunit-dev libsasl2-dev cdbs # cd squid3-3.0.STABLE8/debian Modifier le fichier "rules" pour ajouter "--enable-ssl". Par exemple : ...... DEB_CONFIGURE_EXTRA_FLAGS := --datadir=/usr/share/squid3 \ --sysconfdir=/etc/squid3 \ ...... --with-default-user=proxy \ --enable-ssl ...... # cd .. # debuild -us -uc # cd /usr/local/src # ls squid*.deb -lart -rw-r--r-- 1 root staff 290842 oct 37 29:35 squid3-common_3.0.STABLE8-3+lenny4_all.deb -rw-r--r-- 1 root staff 88976 oct 37 29:35 squidclient_3.0.STABLE8-3+lenny4_amd64.deb -rw-r--r-- 1 root staff 1028962 oct 37 29:35 squid3_3.0.STABLE8-3+lenny4_amd64.deb -rw-r--r-- 1 root staff 92832 oct 37 29:35 squid3-cgi_3.0.STABLE8-3+lenny4_amd64.deb # dpkg -i squid3-common_3.0.STABLE8-3+lenny4_all.deb # dpkg -i squid3_3.0.STABLE8-3+lenny4_amd64.deb | :!: Modifier **''/etc/apt/preferences''** afin que "squid3" ne soit plus mis-a-jour ! | Ca marche (au pif), mais a vérifier: Package: squid3 squid3-common Pin: release a=local-recompilation Pin-Priority: 1001 J'ai invente une release "local-recompilation", sinon, "apt" veut toujours upgrader ! Certificat: # cd /etc/squid3 # mkdir ssl # cd ssl # make-ssl-cert /usr/share/ssl-cert/ssleay.cnf mon_certificat.pem FIXME: ''Safe_Port'' etc...