Ceci est une ancienne révision du document !
Table des matières
ChilliSpot
… est mort !
vive :
Authentification radius en Perl: http://search.cpan.org/~manowar/RadiusPerl-0.17/Radius.pm
coova
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
:
... <snip> .... ## TJ : 2010/10/12 client <IP> { secret = <RANDOM_HASH_HAS_SECRET> shortname = <IP> }
Ensuite, je test un compte que je connais, sur le nouveau client, comme cela:
$ radtest <USER> <PASSWORD> <IP_SERVEUR_RADIUS> 0 <RANDOM_HASH_HAS_SECRET>
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 => '<IP_SERVEUR_RADIUS>', Secret => '<RANDOM_HASH_HAS_SECRET>' ) ) { if ( $rad->check_pwd('<USER>','<PASSWORD>') ) { 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
... <snip> ... # 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…
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/* . # /usr/bin/squidGuard -C all # chown -R proxy: /var/lib/squidguard/db/
: il faudrait fusionner *toute* les listes recoltés.