Outils pour utilisateurs

Outils du site


serveur_portail_captif

Ceci est une ancienne révision du document !


ChilliSpot

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/

FIXME : il faudrait fusionner *toute* les listes recoltés.

serveur_portail_captif.1287243438.txt.gz · Dernière modification : 2010/10/16 15:37 de thierry