Vous êtes sur la page 1sur 17

Scurit des Systmes d'Information et de Communication

Documentation technique

Projet : Scurisation des accs Internet

Auteur : rexy and 3abtux with helps by alcasar team

Objet : Documentation technique du projet

Version : 2.0 (bta)

Mots cls : Portail captif, captive portal, coova, chilli

Date : janvier 2011

Table des matires


1 - Rappel de l'architecture......................................................................................................................................3
2 - Choix des constituants.......................................................................................................................................3
2.1 - La passerelle d'interception........................................................................................................................3
2.2 - Les autres constituants................................................................................................................................4
3 - Schmas de principe :.........................................................................................................................................4
4 - Fonction interception / authentification ........................................................................................................7
4.1 - la passerelle coova-chilli .......................................................................................................................7
4.1.1 - Fonctionnement de l'interception (capture)........................................................................................7
4.1.2 - Exception l'authentification.............................................................................................................8
4.2 - Le serveur FreeRadius................................................................................................................................9
4.3 - Base de donnes des usagers......................................................................................................................9
4.3.1 - Accs graphique la base.................................................................................................................11
4.3.2 - Accs console...................................................................................................................................11
5 - Fonction filtrage .........................................................................................................................................11
5.1 - Filtrage Rseaux.......................................................................................................................................11
5.2 - Filtrage de domaines et d'URLs................................................................................................................12
5.3 - Antivirus WEB.........................................................................................................................................12
6 - Fonction Interface de gestion ......................................................................................................................13
7 - Fonction traabilit et imputabilit .............................................................................................................13
7.1 - Log firewall..............................................................................................................................................13
7.2 - log proxy...................................................................................................................................................13
7.3 - Logs filtrage..............................................................................................................................................13
8 - Fonction modules complmentaires ...........................................................................................................13
8.1 - Import de comptes Fichier mots de passe..............................................................................................13
8.2 - Watchdog..................................................................................................................................................14
8.3 - Statistiques................................................................................................................................................14
8.4 - Contournement (by-pass).........................................................................................................................14
8.5 - Re-Horodatage des fichiers journaux ......................................................................................................14
8.6 - Module de sauvegarde..............................................................................................................................14
8.6.1 - Sauvegarde du systme complet.......................................................................................................14
8.6.2 - Sauvegarde des journaux d'vnements............................................................................................14
8.6.3 - sauvegarde de la base de donnes.....................................................................................................15
9 - Mises jour......................................................................................................................................................15
9.1 - Mise jour du systme.............................................................................................................................15
10 - Annexes..........................................................................................................................................................16
10.1 - Coova-chilli............................................................................................................................................16
10.2 - Freeradius...............................................................................................................................................16
10.3 - Dnsmasq.................................................................................................................................................16
10.4 - Parefeu....................................................................................................................................................16
10.5 - Dansguardian..........................................................................................................................................16
10.6 - Squid.......................................................................................................................................................16
10.7 - Ulogd......................................................................................................................................................17
10.8 - HAVP + Clamav....................................................................................................................................17
10.9 - Distribution Mandriva et ses dpts.......................................................................................................17

Documentation technique

ALCASAR

2/17

1 - Rappel de l'architecture
Alcasar est positionn en coupure entre l'accs Internet et le rseau de consultation. Il permet d'authentifier les
usagers, de contrler les accs, de tracer les connexions effectues, de protger le rseau de consultation. Le
coeur d'Alcasar est constitu des lments traditionnels d'un portail captif : une passerelle d'interception, un
serveur d'authentification et une base de donnes usagers.

2 - Choix des constituants


2.1 - La passerelle d'interception
La passerelle d'interception constitue le chef d'orchestre d'un portail captif. Les passerelles libres suivantes
ont t values en 2008 :

Site WEB

NoCat

Talweg

Wifidog

Chillispot/Coovachilli

nocat.net

talweg.univ-metz.fr

dev.wifidog.org

www.chillispot.org
www.coovachilli.org

Version

Plusieurs versions pour les 0.86-R2 (22/03/2007)


diffrents
constituants
du
produit. Dernire mise jour :
27/02/2005

1.0.0_m2 (7/10/2005)

Langage

C# sous mono

- C pour le programme principal - C pour le programme principal


- module PHP pour le serveur - module CGI-BIN pour le
WEB
serveur WEB (PERL ou C)

Description

NoCat est constitu de plusieurs


lments : NoCatSplash est
le portail, NoCatAuth est
utilis pour l'authentification et
Splash Server est le service
permettant de gnrer les
formulaires de connexion des
utilisateurs. Le suivi de ce
produit a t arrt en 2005.

Talweg est un portail dont le


contrle d'accs au rseau est
gr protocole par protocole.
Tous les protocoles utilisables
sur Internet ne sont pas encore
intgrs.

WifiDog est compos de 2


modules :
Authentification
Server
et
WifiDog
Gateway .
Le
serveur
d'authentification
doit
tre
install sur un serveur fixe alors
que la passerelle peut tre
embarque
dans
certains
quipements rseau compatibles
(routeur, passerelle ADSL, etc.).

1.1 (24/10/2006)

Chillispot ne constitue que la


partie centrale d'une architecture
de type portail captif. Il
implmente les 2 mthodes
d'authentification (UAM et WPA
). Il ncessite la connaissance et
l'installation des autres services
constitutifs du portail captif.

Bien que cette liste ne soit pas exhaustive, et aprs exprimentation, la passerelle Chillispot a t utilise
lors de la cration d'Alcasar. Depuis, elle a t remplace par le clone (fork) coova-chilli dont le
dveloppement est plus actif.

Documentation technique

ALCASAR

3/17

2.2 - Les autres constituants


Pour couvrir l'ensemble des besoins d'Alcasar, les produits libres suivants ont t ajouts au coeur. Leur choix
est principalement dict par leur niveau de scurit et leur reconnaissance.
Version d'Alcasar

jusqu' 1.6

1.7

1.8

1.9

2.0

2007.0

2009.0

2010.0

2010.0

2010.1

2.6.17

2.6.27

2.6.31

2.6.31

2.6.33

ChilliSpot 1.0

1.0.12

1.0.12

1.2.2

1.2.2

dhcpd server
Serveur DHCP et serveur de nom
Bind
de domaine (DNS)
Dnsmasq

3.0.4

3.0.7

4.1.0

4.1.0

Serveur Web

Apache

2.2.3

2.2.9

2.2.14

2.2.14

Chiffrement flux WEB

OpenSSL

Middleware

PHP

5.1.6

5.2.6

5.3.1

5.3.1

Serveur d'authentification

FreeRadius

1.1.2

2.1.0

2.1.7

2.1.7

2.1.8

5.0.24

5.0.67

5.1.40

5.1.42

5.1.46
3.1-14

Modules
Systme d'exploitation

Linux Mandriva

noyau Linux
Passerelle d'interception

Coova-chilli

Serveur de base de donnes


Mysql
usagers

9.6.1
2.52-1
2.2.15

Cache WEB (proxy)

Squid

2.6

3.0.8

3.0.22

3.0.22

Serveur de temps

ntpd

4.2

4.2.4

4.2.4

4.2.4

Journalisation

Ulogd

1.24

1.24

1.24

1.24

1.24

Filtrage WEB

DansGuardian

SquidGuard 1.2.0

2.9.9.7

2.10.1

2.10.1

2.10.1

Statistiques de consultation

Awstat

2.5

2.5.3

6.9

6.9

6.95

Lecture des journaux du parefeu

FirewallEyes

1.0

1.0

1.0

1.0

1.0

Info systme

Phpsysinfo

2.5.3

2.5.3

2.5.3

2.5.3

2.5.3

Archivage chaud du systme

Mondo et Mindi

Chiffrement des fichiers journaux Gnupg

2.09 1.09

2.24 1.24 2.28 2.0.7 2.28-2.07 2.29 - 3

1.4.5

1.4.9

1.4.10

1.4.10

1.4.10

4.3-P2

5.1-P1

5.3-P1

5.3-P1

5.5p1

Connexion distante scurise

openssh-server

Passerelle antivirus WEB

HAVP

0.91

0.91

Antivirus

LibClamav

0.96

0.96

3 - Schmas de principe :
Alcasar peut tre dcompos en cinq fonctions qui sont dtailles dans la suite du document :

fonction interception / authentification ralise par Coova-chilli, DNSMasq, Apache et le couple


(Freeradius , Mysql) ;

fonction traabilit / imputabilit des connexions constitue des journaux du parefeu et du couple
(Freeradius , Mysql). Le journal du proxy Squid peut aussi tre exploit ;

fonction filtrage de domaine, d'URL, antivirus WEB et rseau. Cette fonction est ralise par le
parefeu (Netfilter), le couple (HAVP, LibClamav), DNSMasq et Dansguardian ;

fonction interface de gestion ralise en PHP et PERL et fournie par Apache ;

fonction modules complmentaires . Ces modules ont pour objectif d'amliorer la scurit globale du
portail (anti-contournement, anti-usurpation MAC/IP, chiffrement des fichiers journaux, gestion des
certificats, etc.) ou d'enrichir les possibilits du portail (installation, mise jour, by-pass, archivage,
chiffrement des journaux, acclration de la consultation, cron, etc.)

Documentation technique

ALCASAR

4/17

ALCASAR SCHMA DE PRINCIPE


Alcasar Control Center
(Centre de gestion)

Filtrage de
protocoles

Administration

n
p ti o
r ce
e
t
n
I
Authentification 3990

Usagers

Apache

443

Accs
Internet

Au
tre
sf
lux

Administrateur

Serveur WEB

Coova-chilli 1

Flux DNS

53
Flux

Blacklist
de domaines

DNSmasq
Serveur DNS local
+ filtrage de domaine

web

Passerelle
d'interception
+
Serveur DHCP

Cache DNS

3128

Squid
Proxy WEB

8080
1812
1813
Serveur LDAP
ou A.D externe

Annuaire
externe

Dansguardian
Filtrage WEB
(URL et contenu)

8090

Freeradius
Serveur A.A.A
Authentication
Authorisation
Accounting

Blacklists
d'URL

Mysql

Base des usagers


et
journal des connexions
Nom-usager + @MAC_src
+ @IP_src + date + heure

Cache Web
Journal des
Consultations
WEB

libclamav

Base
antivirale

Serveur de base de
donnes

Marquage et
discrimination des logs

HAVP
Proxy antivirus
de flux WEB

Ulogd

@IP dest + URL


dest + date + heure

Journal des
Flux
@IP_src + @MAC_src +
port_src
+ @IP_dest + port_dest +
date + heure

PAREFEU (NETFILTER)
1 : - protection en entre (anti-contournement)
- redirection des flux (web, dns, autres)
- antispoofing
2 : - masquage d'adresse (dnat)
- journalisation des connexions
- antispoofing

Internet

ALCASAR Schma des flux rseau internes


Apache (serveur WEB)

quipements de
consultation

- Gre et chiffre le transport des pages WEB du portail

Module PHP gestion


- centre de gestion d'Alcasar

Module PHP intercept.php

Eth1

- Gnre la page d'authentification


- Rcupre le couple (identifiant/mot de passe)
- Transfre ces donnes de manire chiffre Coova-chilli

Tun0

Module CGI/PERL awstat


- Analyse et prsente graphiquement les logs du serveur
mandataire Squid

Module PHP dialupadmin


- Interface d'administration du serveur d'authentification
FreeRadius

NetFilter (protection du portail)

Module PHP FirewallEYES


- Interface de consultation des logs du parefeu

Module PHP phpsysinfo

Coova-chilli (passerelle d'interception)


- Gre le cache ARP
- Serveur DHCP
- Filtre les requte DNS non conformes (anti-DNS-tunneling)
- Intercepte les trames rseau des quipements de consultation et les dirige vers la page
d'authentification (intercept.php)
- Rcupre les donnes d'authentification du module intercept.php (via le port 3990)
- Requte le serveur d'authentification FreeRadius (Authentication + Autorisation).

Netfilter (gestion des flux)

- information systme (page de garde)

DNSmasq (DNS)

- Filtrage et aiguillage de protocoles

- Transmet les trames DNS aux serveurs publics


Gre les domaines blacklists

DansGuardian (filtrage d'Url et


contrle de contenu)
- Exploite la blacklist d'URL

HAVP (proxy antivirus de flux WEB)


- Analyse le contenu du flux HTTP via libclamav

Autres flux

Loopback
(127.0.0.1)

Free Radius (serveur d'authentification)


- Gre le protocole RADIUS avec Coova-chilli
- Requte la base Mysql pour consulter les donnes des usagers
- Stocke les informations de connexion dans la base Mysql (Accounting)

MySQL (serveur de base de donnes usagers)


- Stocke les donnes des comptes et des groupes d'usagers
- Stocke les journaux de connexion

Squid (proxy WEB)


- Gnre les journaux http
- Mmorise et acclre les connexions

NetFilter
- Protection du portail
- Effectue une translation d'adresse (NAT) sur les trames sortantes
- Journalise les flux sortants via ulogd

Eth0

Internet
Documentation technique

ALCASAR

6/17

4 - Fonction interception / authentification


Un des objectifs d'Alcasar est d'tre le plus universel possible. Ainsi, la mthode d'interception et
d'authentification choisie s'appuie sur l' UAM (Universel Access Method). Cette mthode n'utilise que des
protocoles standards ne ncessitant qu'un navigateur WEB pour authentifier un usager situ sur un quipement
de consultation. Parmi les autres mthodes, on peut citer celle exploitant des modules clients installer sur les
quipements de consultation (mthode exploite par le parefeu authentifiant NuFW par exemple) ou celle
reposant sur des protocoles rseau ddis (802.1X par exemple).
La fonction interception / authentification s'appuie sur la passerelle d'interception Coova-chilli
(processus chilli ), le serveur WEB apache (processus httpd ), le serveur d'authentification
Freeradius (processus radiusd ) et le systme de gestion de bases de donnes Mysql (processus
mysqlmanager et mysqld ).

4.1 - la passerelle coova-chilli


Elle est lance via son script de dmarrage (/etc/rc.d/init.d/chilli start) qui a t lgrement adapt par le script
d'installation ( alcasar.sh ). Ce script utilise le fichier de configuration ( /etc/chilli.conf ).. Le processus chilli
est alors lanc en mode daemon . Ce dernier cre l'interface virtuelle tun0 1 lie en point point
l'interface physique connecte au rseau de consultation (eth1). Cela lui permet de grer sa propre table de
rsolution ARP en espace utilisateur. Une particularit dans cette gestion consiste verrouiller les couples
(@MAC , @IP) rencontrs sur le rseau de consultation. Un empoisonnement du cache ARP par le rseau est
alors impossible ( cache poisoning ). Dans certains cas, ce comportement peut tre bloquant (quipement reparamtr, mais ayant dj gnr des trames avec une mauvaise adresse IP). La commande chilli-query list
permet d'afficher et de contrler le cache ARP de chilli . Cette commande peut tre utilise pour supprimer
une mauvaise association @IP/@MAC par exemple. L'interface de gestion d'Alcasar fournit aussi cette
possibilit via le menu ACTIVIT (cf.2.2 de la doc d'exploitation). Complmentaire cette fonction
d'anti- cache poisoning intgre chilli , Alcasar utilise un module spcifique de scurit (alcasarwatchdog) permettant d'viter l'usurpation d'adresses MAC et d'adresses IP des stations de consultation
connectes sur le rseau (cf. fonctions de scurit).
4.1.1 - Fonctionnement de l'interception (capture)
Lorsquun quipement de consultation tente de se connecter sur un serveur WEB Internet (www.free.fr dans
l'exemple qui suit) :

[trame 1] La requte DNS de l'quipement est rcupre par Chilli. Il la rejette si elle n'est pas
strictement conforme la norme DNS (RFC) ou si elle est destination de serveurs DNS Internet. Cela

1 - Les priphriques Tap et Tun des noyaux Linux sont des interfaces rseau virtuelles de niveau 2 (i.e. ethernet) pour Tap
ou 3 (i.e. IP) pour Tun permettant des processus excuts en espace utilisateurs (les interfaces physiques fonctionnent en espace
noyau) d'envoyer ou de recevoir des trames sur ces interfaces via les fichiers spciaux (/dev/tapX ou /dev/tunX). Ces interfaces
virtuelles peuvent tre exploites comme des interfaces physiques (configuration, mission/rception, routage). Leur avantage est de
pouvoir intercaler un traitement sur les trames la rception ou avant l'mission de celles-ci. L'interface Tap est souvent utilise dans
la cration de tunnels RPV/VPN afin d'encapsuler un flux dans un autre (cf. projet OpenVPN ).

Documentation technique

ALCASAR

7/17

permet de prvenir le contournement d'ALCASAR par l'exploitation d'un tunnel DNS. Si la requte est
correcte, il la dirige vers le serveur DNS intgr ALCASAR (DNSMasq).

DNSMasq rsout le domaine localement s'il est dans sa base (cf. fonctions de filtrage), sinon il transfre
la requte vers les serveurs DNS Internet dfinis lors de l'installation d'ALCASAR. Les rponses sont
retournes l'quipement de consultation [trame 2].

Une requte de connexion sur le port 80 (http) du serveur WEB est alors envoye [trame 3] par la station
de consultation. Cette requte est intercepte par chilli qui vrifie si un usager n'est pas dj
autoris sur cet quipement :

Si tel est le cas, Chilli ouvre la barrire et laisse transiter toutes les trames de l'quipement
quelque soit le protocole vers le parefeu (netfilter) qui les oriente vers le processus adquat (cf.
fonction de filtrage).

Si tel n'est pas le cas, Chilli simule une connexion WEB standard [trames 4 6] et rpond la
requte de l'quipement [trames 7 9] par une trame HTTP de redirection de service ( HTTP/1.0 302
Moved Temporarily ) contenant l'URL d'une splash-page avertissant de la redirection ( directive
hs_uamhomepage du fichier /etc/chilli.conf). Dans ALCASAR cette splash-page a t supprime afin
d'afficher directement la page d'authentification (primitive HS_UAMFORMAT du fichier
/etc/chilli.conf ). L'URL de redirection envoie ainsi l'quipement sur ALCASAR afin qu'il rcupre
de manire chiffre (https) la page de demande d'authentification (intercept.php) [cf. dtail de la
trame 9]. Cette session se termine [trames 10 13] et le navigateur initie une session chiffre avec le
serveur WEB intgr dans Alcasar (Apache) afin de rcuprer cette page [trame 14 et suivantes].
L'usager renseigne les champs d'authentification (identifiant + mot de passe) qui sont envoys de
manire chiffre Apache (+php) pour tre traits (chiffrement du mot de passe avec le challenge).
Apache retourne le rsultat dans une trame de redirection afin que ces informations soient fournies
Chilli (port 39902). Ce dernier les rcupre pour requter le serveur radius. Le rsultat de cette
requte est retourn au navigateur dans une trame de redirection pour pouvoir tre interprt par le
module javascript de la page intercept.php .

La communication entre chilli et Freeradius exploite le protocole radius . Les paramtres de cette
communication sont dfinis la fois dans le fichier /etc/raddb/client.conf et via les directives
hs_radius , hs_radius2 et hs_radsecret du fichier /etc/chilli.conf .

Pour la dconnexion, les navigateurs Web gnrent une requte adquate sur le port d'coute de Chilli.

Cette phase d'interception peut tre schmatise comme suit pour un usager non authentifi sur une station de
consultation identifie par son @MAC et son @IP :
@MAC
+
@IP

HTTP URL vers Internet


HTTPS redirection vers https://@IP_alcasar/intercept.php + challenge + URL

80

HTTPS demande intercept.php + challenge + URL

HTTPS intercept.php + challenge + URL


443

HTTPS utilisateur + mot de passe + challenge + URL


Intercept.php

HTTPS redirection vers http://@IP_alcasar:3990 + utilisateur + mot de passe chiffr + URL

module Javascript
- formulaire d'authentification
- fentre connect
- fentre chec de connexion
- redirection vers URL demande

HTTP + utilisateur + mot de passe chiffr + URL

HTTP redirection vers https://@IP_alcasar + rsultat authentif + URL

HTTP URL vers Internet (idem 1re trame)

Apache
+
php

3990

coova

443

apache

HTTPS demande intercept.php + rsultat authentif + URL

HTTPS intercept.php + rsultat authentif + URL

coova

80 ou tout
autre protocole

coova

Internet

radius

Internet

4.1.2 - Exception l'authentification


Coova-chilli la possibilit de laisser transiter des trames spcifiques vers Internet sans authentification
pralable. Cette possibilit est exploite dans Alcasar pour permettre la mise jour automatique des antivirus et
2 - chilli coute sur un port dfini par la primitive hs_uamport du fichier /etc/chilli/config (3990 par dfaut). Le format des

requtes envoyes sur ce port dtermine l'action demande (ex. @IP:3990/prelogin pour une demande de connexion,
@IP:3990/logout pour une demande de dconnexion. La requte contient bien entendu l'ensemble des paramtres ncessaires au
traitement de la demande (@MAC, challenge, identifiant, etc.).

Documentation technique

ALCASAR

8/17

des patchs systmes. Les paramtres uamallowed et uamdomain du fichier de configuration contiennent
la liste des URL ou des noms de domaine joignables sans authentification.

4.2 - Le serveur FreeRadius


Le service radiusd est utilis dans le portail comme unit d'identification, d'authentification et d'accounting
(mesure d'usage des comptes).
L'identification utilise uniquement le SGBD (par dfaut) mais freeradius pourrait tre adapt pour utiliser par
exemple un annuaire externe.
L'authentification utilise par dfaut le SGBD local mais dispose d'un module LDAP pour comparer le couple
login/MDP un annuaire (AD, etc.)
L'accounting utilise uniquement le SGBD pour stocker les traces d'usages des comptes.
Le fichier principal est radiusd.conf. Il s'appuie sur le fichier client.conf, sql.conf pour les paramtres de connexions
SQL et sur ldap.attrmap pour la mappage des attributs LDAP.
Un fichier alcasar situ sous /etc/raddb/sites-available dfinit les paramtres spcifiques ALCASAR. Un lien
symbolique relie /etc/raddb/sites-enable/alcasar vers ce fichier pour rendre actif ce fichier. Remarque, pour limiter
les effets de bords des migration de freeradius qui rajoute systmatiquement 3 liens symboliques vers innertunnel,control-socket et default , ces 3 fichiers sont fixs 0 volontairement. Ne pas les supprimer !!!
Commande de test de radius : radtest <userLogin> <userPassword> 127.0.0.1 0 <radsecret>

4.3 - Base de donnes des usagers


La base de donnes des usager est gre par le SGBD mysql . Le schma de cette base est entirement
compatible avec le service d'authentification Radius. La structure de cette base est mise en place lors de
l'installation d'Alcasar en exploitant un script SQL (cf. fonction init_db du script alcasar.sh) :
# Ajout d'une base vierge
mysql -u$DB_USER -p$radiuspwd $DB_RADIUS < $DIR_CONF/radiusd-db-vierge.sql

Le Modle Conceptuel de Donnes (MCD) de cette base est le suivant :

Documentation technique

ALCASAR

9/17

BASE DE DONNEE RADIUS V2.x (ALCASAR > V1.7*)


Lgende
En rouge : Index Cl Primaire
En Italique * : Cl secondaire
Table cre par FreeRadiusWEB
Table cre par FreeRadiusSQL
Table inexploite par ALCASAR

1. badusers

4. radacct

2. mtotacct

MtotAcctld bigint(21)
Username * varchar(64)
AcctDate * date
ConnNum bigint(12)
ConnTotDuration bigint(12)
ConnMaxDuration bigint(12)
ConnMinDuration bigint(12)
InputOctets bigint(12)
OutputOctets bigint(12)
NaSIPAddress * varchar(15)

id int(10)
UserName *varchar(30)
Date * datetime
Reason varchar(200)
Admin varchar(30)

RadAcctld bigint(21)
AcctSessionId * varchar(32)
AcctUniqueId * varchar(32)
UserName * varchar(64)
Groupname varchar(64)
Realm varchar(64)
NASIPAddress * varchar(15)
NASPortId varchar(15)
NASPortType varchar(32)
AcctStartTIme * datetime
AcctStopTime * datetime
AcctSessionTime int(12)
AcctAuthentic varchar(32)
ConnectInfo_start varchar(50)
ConnectInfo_stop varchar(50)
AcctInputOctets bigint(12)
AcctOutputOctets bigint(12)
CalledStationId varchar(50)
CallingStationId varchar(50)
AcctTerminateCause varchar(32)
ServiceType varchar(32)
FramedProtocol varchar(32)
FramedIPAddress * varchar(15)
AcctStartDelay int(12)
AcctStopDelay int(12)

5. radcheck

id int(11)
UserName * varchar(64)
Attribute varchar(64)
op char(2)
Value varchar(253)

6. radgroucheck

id int(11)
GroupName * varchar(64)
Attribute varchar(32)
op char(2)
Value varchar(253)

9. radreply

id int(11)
UserName * varchar(64)
Attribute varchar(32)
op char(2)
Value varchar(253)

12. userinfo

7. radgroupreply

id int(10)
UserName * varchar(30)
Name varchar(200)
Mail varchar(200)
Department * varchar(200)
WorkPhone varchar(200)
HomPhone varchar(200)
Mobile varchar(200)

id int(11)
GroupName * varchar(64)
Attribute varchar(32)
op char(2)
Value varchar(253)

10. totacct

TotAcctld bigint(21)
UserName * varchar(64)
AcctDate * date
ConnNum bigint(12)
ConnTotDuration bigint(12)
ConnMaxDuration bigint(12)
ConnMinDuration bigint(12)
InputOctets bigint(12)
OutputOctets bigint(12)
NASIPAddress * varchar(15)

3. nas

11. radusergroup
UserName * varchar(64)
GroupName varchar(64)
Priority int(11)

* Dans les versions prcdentes, la table radusergroup s'appelait usergroup et le champs groupname de la table raddacct n'existait pas.

8. radpostauth
id int(11)
user varchar(64)
pass varchar(64)
reply varchar(32)
date timestamp(14)

id int(10)
nasname * varchar(128)
shortname varchar(32)
type varchar(30)
ports int(5)
secret varchar(60)
community varchar(50)
description varchar(200)

4.3.1 - Accs graphique la base


Afin de pouvoir afficher de manire conviviale et pdagogique le
contenu de la base usager, vous pouvez utiliser l'interface WEB
phpmyadmin .

installez phpmyadmin : urpmi phpmyadmin

modifiez le fichier /etc/httpd/conf/webapps.d/phpmyadmin.conf


afin d'autoriser votre station de consultation y accder
(allow from votre_@IP) ;

connectez-vous la base partir de votre station de consultation l'URL :


https://@ip_alcasar/phpmyadmin

rcuprez le nom et le mot de passe du compte d'administration de la base dans le


fichier /root/ALCASAR-passwords.txt

identifiez-vous sur le SGBD et choisissez la base radius

Vous pouvez maintenant accder aux contenus des tables.

4.3.2 - Accs console


Avec le login/mot de passe issus du fichier /root/ALCASAR-password.txt , taper la ligne ci-dessous :
mysql -uradius -p radius

Entrez le mot de passe associ l'utilisateur radius.


Voir les tables : SHOW TABLES ;
Voir le contenu : SELECT * FROM <tables_name> ;
Voir les tutoriels concernant le SQL et notamment MySQL.

5 - Fonction filtrage
Cette fonction est remplie plusieurs niveaux par le portail. Plusieurs couches logicielles ont t mises en
oeuvre.

5.1 - Filtrage Rseaux


Cette couche est gre l'aide du parefeu intgr (NetFilter).
Le portail est configur en mode 'Bastion' vis vis du monde Internet et canalise les flux en provenance du
rseau de consultation. Lors de l'installation, ce fichier a t excut et permet de gnrer le fichier
/etc/sysconfig/iptables ; chaque dmarrage du serveur, ces rgles sauvegardes sont appliques.
Le fichier de configuration principal qui conditionne le fonctionnement de cova-chilli et des proxy web est
/usr/local/bin/alcasar-iptables.sh . Il est dconseill de le modifier afin d'viter des effets de bords sur le
Documentation technique

ALCASAR

11/17

fonctionnement global du portail.


Toutefois, certaines rgles du parefeu peuvent tre surcharges pour permettre d'accder certaines
fonctionnalits (accs SSH depuis l'extrieur pour l'administration par exemple).
Pour permettre ces paramtrages 'locaux', le fichier /usr/local/etc/alcasar-iptables.sh est appel par le fichier
principal du parefeu. Les lignes pour l'administration externe par SSH sont commentes dans ce fichier pour
exemple.
Par dfaut, le portail autorise tous les protocoles lorsqu'une session utilisateur est ouverte. Cette fonction
'libertine' peut-tre restreinte par une liste blanche de services autoriss. C'est le rle du fichier
/usr/local/etc/alcasar-filter-exceptions qui est appel par le script principal du parefeu si la variable FILTERING
est positionn yes . Cette dernire est modifiable par le biais de l'interface de gestion. Dans ce cas l, les
services lists dans le fichier alcasar-filter-exception sont les seuls tre joignables depuis le rseau de
consultation. Cette liste n'est pas exhaustive ; elle est modifiable par le biais de l'interface de gestion.
Le fichier journal des traces du parefeu est /var/log/firewall/firewall.log . Il est 'rotat' toutes les semaines dans le
rpertoire /var/log/firewall sous le nom firewall.log-<date>.gz.
Exemples de logs :
Dec 23 00:25:22 alcasar-cirisi-lyon RULE direct-DNS -- REDIRECT IN=tun0 OUT= MAC= SRC=192.168.182.20 DST=192.168.182.1 LEN=65 TOS=00 PREC=0x00 TTL=64 ID=49813
CE DF PROTO=UDP SPT=37550 DPT=53 LEN=45
Dec 23 00:25:22 alcasar-cirisi-lyon RULE Transfert2 -- ACCEPT IN=tun0 OUT= MAC= SRC=192.168.182.20 DST=150.214.142.197 LEN=60 TOS=00 PREC=0x00 TTL=64 ID=52139
CE DF PROTO=TCP SPT=39359 DPT=80 SEQ=3976661343 ACK=0 WINDOW=5840 SYN URGP=0

Pour forcer les usagers passer par le service DNS du portail, le parefeu effectue une redirection de port 53 vers
l'@IP locale. Cet artifice permet de couper court aux ventuels tunnels DNS (sur le port 53 uniquement).
Remarque : sans session ouverte sur le portail, les seuls DNS interrogs (par le biais du serveur lui mme) reste
ceux qui ont t paramtrs dans le fichier /etc/dnsmasq.d/alcasar.conf.

5.2 - Filtrage de domaines et d'URLs


Le filtrage web s'appuyant sur la liste noire de l'Universit de Toulouse est paramtrable au travers de l'interface
de gestion. Il est utilis de 2 faons :
1. le filtrage de domaine
Il offre l'avantage de pouvoir interrompre toute connexion ds la requte DNS car elle s'appuie sur la
rsolution offerte par le service dnsmasq ; un domaine interdit renvoie l'utilisateur l'@IP du portail et
de sa page d'interception 'interdite'. Cette fonctionnalit particulire permet galement de blacklister
aisment tout un domaine par des listes noires particulires ( liste noire 'OSSI').
2. Le filtrage d'URLs
Il utilise DansGuardian comme analyseur. noter que jusqu' la version 1.9, ce logiciel tait utilis
galement pour le filtrage de domaine. Seules les URLs spcifies dans les fichiers 'blacklists' sont
interdites en s'appuyant sur le fichier /etc/dansguardian/lists/bannedurllist .
Ces fichiers sont modifiables par le biais de gestion en activant des classes regroupant les URLs et les
domaines.
Le filtrage Dansguardian est activ par le biais de l'interface de gestion et modifie le fichier
/etc/dansguardian/dansguardian.conf .
Remarque : l'activation des catgories est commune aux URLs et aux domaines.
L'architecture d'ALCASAR permet de rendre le contournement du filtrage compliqu. Celui-ci est toujours
possible par l'ouverture d'un tunnel HTTPS destination d'une adresse IP spcifique. Il est alors ncessaire de
rediriger la totalit des protocoles dans ce tunnel (dont le DNS).
Mme avec ce type de tunnel, le portail identifie et impute les trames du tunnel (dont l'adresse de sortie). En
cas de problme, et si l'enqute dtermine que la sortie du tunnel est implique, le portail pourra tre sollicit
pour finaliser la traabilit.

5.3 - Antivirus WEB


Le moteur HAVP coupl l'antivirus libClamav est utilis pour analyser le contenu des pages web.
Le fichier de paramtrage de HAVP est /usr/havp/havp.config ; il regroupe les ports d'coute et de transfert au
Documentation technique

ALCASAR

12/17

proxy 'parent'.
La bibliothque LibClamav est directement intgr dans havp.
Le script alcasar-havp.sh est appel par l'interface de gestion pour activer/dsactiver l'antivirus.
D'autres antivirus peuvent tre associs au moteur HAVP. Des configurations sont disponibles dans le fichier
principal /etc/havp/havp.conf

6 - Fonction Interface de gestion


Cette fonction est ralise en PHP. Les possibilits de cette interface sont dcrites dans la documentation
d'exploitation.
L'interface de gestion (r-crite pour la version 2.0) se trouve dans /var/www/html/acc.
Elle est protge en accs par le module d'authentification d'Apache.
Dans le fichier de configuration /etc/httpd/conf/webapps.d/alcasar.conf, le rpertoire /usr/local/etc/digest/
contient les fichiers des mots des identifiants/mots de passes :

key_all

key_admin

key_manager

key_backup

7 - Fonction traabilit et imputabilit


7.1 - Log firewall
Pour dissocier les logs du parefeu des log du noyau, le systme Ulog a t utilis.
Le fichier de paramtrage se trouve sous /etc : ulogd.conf

7.2 - log proxy


Les fichiers journaux du proxy Squid se trouvent sous /var/log/squid sous le nom de access.log .

7.3 - Logs filtrage


Les fichiers journaux de DansGuardian se trouvent sous /var/log/dansguardian sous le nom de access.log .

8 - Fonction modules complmentaires


8.1 - Import de comptes Fichier mots de passe
Dans le cadre de la gestion des comptes d'authentifications, il est possible d'importer une liste de comptes
attachs un groupe prdfini. Cette fonctionnalit accessible depuis l'interface de gestion gnre un fichier
<import-user>.pwd pour chaque importation et ajoute les usagers dans le groupe (optionnel) de la base de
donnes. Pour l'instant, seul le groupe peut-tre attach aux identifiants ; c'est--dire qu'aucun renseignement
supplmentaire n'est importable pour le moment.
Le script import_user.php du rpertoire /var/www/html/acc/manager/htdocs permet d'importer le fichier au format
csv ou txt et le script import_file.php permet de ...
L'importation d'un fichier gnre un fichier associ comportant les mots de passe en clair des utilisateurs
imports. Ce dernier est tlchargeable pour tre distribu aux usagers. Afin de les supprimer priodiquement,
une tche, planifie toutes les 30mn, cherche et supprime les fichiers datant de plus de 24h00.
Le script lanc est alcasar-import-clean.sh

Documentation technique

ALCASAR

13/17

8.2 - Watchdog
Ce script ( alcasar-watchdog.sh ) est lanc toute les 3 minutes par le Daemon cron . Il permet de couvrir les
fonctions suivantes :

viter les oublis de dconnexion lis aux pannes (rseau ou quipement de consultation) ;

limiter le risque li l'usurpation d'adresse IP et d'adresse MAC sur le rseau de consultation (pirate
interne) ;

modifier la page WEB prsente aux navigateurs en cas de problmes de connectivit dtects sur le
rseau local (lien ethernet dsactiv sur eth0 ou routeur de site injoignable).

8.3 - Statistiques
Les statistiques d'usages et de navigation ne comporte pas d'lements permettant de lier les contenus aux
usagers. Cela permet de protger la vie prive des usagers conformment aux prconisations de la CNIL.

8.4 - Contournement (by-pass)


En cas de problme technique concernant une des briques logicielles du portail (principalement coovachilli ), il est possible de court-circuiter le module d'authentification tout en maintenant le traage des logs
rseau (parefeu).
Un script lanc localement en root alcasar-bypass.sh on | --off permet au choix de mettre :

en mode On le bypass le portail dsactive les services coova-chilli, squid, dansguardian

en mode Off : le portail est en mode normal. Tous les services ncessaires sont activs.

8.5 - Re-Horodatage des fichiers journaux


Lors de la rinstallation d'un serveur, il peut tre utile de rinstaller les fichiers journaux d'origines ( avant le
crash). Afin que les fichiers disposent d'une date cohrente et que l'effacement des logs s'effectue rgulirement
( au bout d'1 an), les journaux doivent disposer de la date en relation avec leur rotation originale. C'est tout
l'objet du script alcasar-dateLog.sh qui plaque les bons attributs 'date:heure' partir du nom de fichier (qui
comprend un suffixe <date>).

8.6 - Module de sauvegarde


Les sauvegardes d'ALCASAR sont disponibles sous 3 formes : le systme complt, les journaux d'vnements
et la base de donnes.
8.6.1 - Sauvegarde du systme complet
Le serveur dispose d'un module de sauvegarde chaud qui permet d'effectuer une image type Ghost chaud.
Cette sauvegarde systme peut-tre lance par l'intermdiaire de l'interface web qui lance le script : alcasarmondo.sh.
Le script appelle la commande mondo-archive afin de gnrer une image ISO bootable rinstallable.
Une fois lanc, l'image du systme est stocke dans le rpertoire /var/Save/ISO/ sous la forme
<$HOSTNAME>-<date>.iso
8.6.2 - Sauvegarde des journaux d'vnements
Les journaux d'vnements du systme ainsi que ceux des services utiles ALCASAR sont situs sous /var/log/.
Les journaux du firewall, de l'interface Web et de squid sont rotats rgulirement (chaque semaine). Pour
rendre ces archives consultables et tlchargeables par le biais de l'interface de gestion, ces logs sont copis
dans le rpertoire /var/Save/logs/, grce une tche planifie qui appelle le script alcasar-log-export.sh chaque
semaine. Ils sont visibles par le userSystme apache pour permettre aux gestionnaires de les rcuprer par le
biais de l'interface..
Afin de limiter la conservation des traces 1 an, le script alcasar-log-clean.sh est lanc chaque semaine et efface
tous les fichiers dont la date systme est suprieures 365 jours. Tous les lundis matin, la tche de purge des
logs est planifi 4h30 grce au fichier /etc/crond.d/clean_log et 5h00 pour l'export au moyen du au fichier
Documentation technique

ALCASAR

14/17

/etc/crond.d/export_log.

8.6.3 - sauvegarde de la base de donnes


Chaque semaine, la base de donnes est exportes et sauvegardes dans le rpertoire /var/Save/base sous la
forme : <db_radius>-<date>.sql . Cette tche, planifie chaque semaine, appelle le script alcasar-mysql.sh dump.
Ces sauvegardes sont tlchargeables par le biais de l'interface web.

9 - Mises jour
9.1 - Mise jour du systme
Alcasar-dist-update.sh

Migration du portail
Rcuprer l'archive sur le site alcasar.info ou sur le site de l'addulact.net.
Suivre le fichier et la documentation d'installation.
En rsum, une fois dsarchiv l'archive, lancer le script alcasar.sh install pour lancer une migration systme et
du portail.

Documentation technique

ALCASAR

15/17

10 - Annexes
Ce chapitre reprend les fichiers de configuration spcifiques ALCASAR.

10.1 - Coova-chilli
Les fichiers se situent sous /etc/ , /etc/chilli et /usr/local/etc .

Fichier principal : chilli.conf (sous /etc)

Exceptions Domaines : alcasar-uamdomain (sous /usr/local/etc)

Exceptions URLs : alcasar-uamallowed (sous /usr/local/etc)

Exceptions d'authenfication par MAC Adresses : alcasar-macallowed (sous /usr/local/etc)

Le fichier main.conf est gnr dynamiquement au dmarrage de coova-chilli

10.2 - Freeradius
Les fichiers du dmon radius se situent sous /etc/raddb.

Fichier principal : radiusd.conf


Fichier de connexion BDD : sql.conf
Fichier clients autoriss requter le service radiusd : clients.conf
Fichier ddi : alcasar (sous /etc/raddb/sites-available avec un lien symbolique qui lie les sites-enable )

10.3 - Dnsmasq

Fichier principal : alcasar-dnsmasq.conf ( sous /etc/dnsmasq.d est appel par /etc/dnsmasq.conf .


Filtrage de domaines : alcasar-dnsfilter-enabled sous /usr/local/etc . Il active le filtrage des classes de
domaines par Dnsmasq.
Dfiniton locale d'htes : alcasar-dns-name sous /usr/local/etc . Il permet d'effectuer des associations
@IP<-->FQDN de machines.

10.4 - Parefeu

Fichier principal du parefeu d'Acasar : alcasar-iptables.sh (sous /usr/local/bin)


Rgles personnalises du parefeu : alcasar-iptables-local.sh (sous /usr/local/etc)
Fichier de filtrage Rseau (associ alcasar-nf.sh) : alcasar-iptables-exception
Activer/dsactiver le filtrage web : alcasar-bl.sh ( sous /usr/local/bin)
Fichier listant les classes de filtrage (associ alcasar-nf.sh) : alcasar-bl-categories-enabled ; utilise par le
fichier alcasar-bl.sh pour le filtrage dnsmasq et dansGuardian.
Fichier contenant la liste complte des domaines par classe issue de la liste noire de Toulouse : alcasardnsfilter-available (sous /usr/local/etc/)

10.5 - Dansguardian
Les fichiers de DansGuardian se situent sous /etc/dansguardian.

Fichier principal de configuration : dansguardian.conf


Fichier concernant le groupe 1 utilis par Alcasar : dansguardianf1.conf
Le rpertoire lists contient les fichiers de filtrage proprement dits :
bannedsitelist : contient la liste des classes de domaines interdits ( obsolte depuis la version 2.0
qui utilise dornavant dnsmasq pour effectuer cette tche)
exceptioniplist
exceptionurllist
exceptionsitelist : dfinit une liste d'@IP non filtre ( utilisable dans Alcasar )
bannediplist : dfinit une liste d'@IP bloques ( non utilis dans Alcasar par dfaut une @IP tant
facilement falsifiable)
blacklists : rpertoire contenant la liste noire de Toulouse ainsi que celle de l'OSSI
Filtrage URLs

10.6 - Squid
Les fichiers de Squid se situent sous /etc/squid. Hormis le fichier principal, tous les autres sont utiliss par
Documentation technique

ALCASAR

16/17

dfaut.

Fichier principal : squid.conf ; squid est paramtr en mode proxy transparent.

10.7 - Ulogd
Le dmon ulogd centralise les logs du parefeu (dissocis des logs 'messages') ; tous les journaux d'vnements
sont grs en mode texte.

Fichier de configuration : ulogd.conf

10.8 - HAVP + Clamav


Le moteur HAVP est paramtr avec l'antivirus clamav en mode dmon.

HAVP :
Fichier de configuration du moteur antivirus : havp.config

Clamav
configuration du dmon Clamav : clamd.conf ; la priodicit de mise jour des signatures est
paramtre par dfaut 12 fois /jour).

10.9 - Distribution Mandriva et ses dpts


La distibutinonMandriva est utilise comme systme d'exploitation du portail. Les mises jours et l'installation
des paquets s'effectuent l'aide des outils natifs de Mandriva : urpmi .
Les fichiers de configurations se trouvent sous /etc/urpmi :

source des mirroirs : urpmi.cfg ;

exceptions des mises jour de paquets : skip.list ; permet d'exclure des mises jours certains paquets
pouvant ventuellement troubler le fonctionnement du portail.

Documentation technique

ALCASAR

17/17

Vous aimerez peut-être aussi