alcasar-doc-technique.pdf

17
Sécurité des Systèmes d'Information et de Communication Documentation technique Projet : Sécurisation des accès Internet Auteur : rexy and 3abtux with helps by alcasar team Objet : Documentation technique du projet Version : 2.0 (béta) Mots clés : Portail captif, captive portal, coova, chilli Date : janvier 2011

Upload: salim-hafid

Post on 24-Sep-2015

8 views

Category:

Documents


0 download

TRANSCRIPT

  • 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 matires1 - Rappel de l'architecture......................................................................................................................................32 - Choix des constituants.......................................................................................................................................3

    2.1 - La passerelle d'interception........................................................................................................................32.2 - Les autres constituants................................................................................................................................4

    3 - Schmas de principe :.........................................................................................................................................44 - Fonction interception / authentification ........................................................................................................7

    4.1 - la passerelle coova-chilli .......................................................................................................................74.1.1 - Fonctionnement de l'interception (capture)........................................................................................74.1.2 - Exception l'authentification.............................................................................................................8

    4.2 - Le serveur FreeRadius................................................................................................................................94.3 - Base de donnes des usagers......................................................................................................................9

    4.3.1 - Accs graphique la base.................................................................................................................114.3.2 - Accs console...................................................................................................................................11

    5 - Fonction filtrage .........................................................................................................................................115.1 - Filtrage Rseaux.......................................................................................................................................115.2 - Filtrage de domaines et d'URLs................................................................................................................125.3 - Antivirus WEB.........................................................................................................................................12

    6 - Fonction Interface de gestion ......................................................................................................................137 - Fonction traabilit et imputabilit .............................................................................................................13

    7.1 - Log firewall..............................................................................................................................................137.2 - log proxy...................................................................................................................................................137.3 - Logs filtrage..............................................................................................................................................13

    8 - Fonction modules complmentaires ...........................................................................................................138.1 - Import de comptes Fichier mots de passe..............................................................................................138.2 - Watchdog..................................................................................................................................................148.3 - Statistiques................................................................................................................................................148.4 - Contournement (by-pass).........................................................................................................................148.5 - Re-Horodatage des fichiers journaux ......................................................................................................148.6 - Module de sauvegarde..............................................................................................................................14

    8.6.1 - Sauvegarde du systme complet.......................................................................................................148.6.2 - Sauvegarde des journaux d'vnements............................................................................................148.6.3 - sauvegarde de la base de donnes.....................................................................................................15

    9 - Mises jour......................................................................................................................................................159.1 - Mise jour du systme.............................................................................................................................15

    10 - Annexes..........................................................................................................................................................1610.1 - Coova-chilli............................................................................................................................................1610.2 - Freeradius...............................................................................................................................................1610.3 - Dnsmasq.................................................................................................................................................1610.4 - Parefeu....................................................................................................................................................1610.5 - Dansguardian..........................................................................................................................................1610.6 - Squid.......................................................................................................................................................1610.7 - Ulogd......................................................................................................................................................1710.8 - HAVP + Clamav....................................................................................................................................1710.9 - Distribution Mandriva et ses dpts.......................................................................................................17

    Documentation technique ALCASAR 2/17

  • 1 - Rappel de l'architectureAlcasar 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'interceptionLa passerelle d'interception constitue le chef d'orchestre d'un portail captif. Les passerelles libres suivantes ont t values en 2008 :

    NoCat Talweg Wifidog Chillispot/Coovachilli

    Site WEB nocat.net talweg.univ-metz.fr dev.wifidog.org www.chillispot.orgwww.coovachilli.org

    Version Plusieurs versions pour les diffrents constituants du produit. Dernire mise jour : 27/02/2005

    0.86-R2 (22/03/2007) 1.0.0_m2 (7/10/2005) 1.1 (24/10/2006)

    Langage C C# sous mono - C pour le programme principal- module PHP pour le serveur WEB

    - C pour le programme principal- module CGI-BIN pour le 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.).

    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 constituantsPour 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

    Modulesjusqu' 1.6 1.7 1.8 1.9 2.0

    Systme d'exploitation Linux Mandriva 2007.0 2009.0 2010.0 2010.0 2010.1

    noyau Linux 2.6.17 2.6.27 2.6.31 2.6.31 2.6.33

    Passerelle d'interception Coova-chilli ChilliSpot 1.0 1.0.12 1.0.12 1.2.2 1.2.2

    Serveur DHCP et serveur de nom de domaine (DNS)

    dhcpd server 3.0.4 3.0.7 4.1.0 4.1.0

    Bind 9.6.1

    Dnsmasq 2.52-1

    Serveur Web Apache 2.2.3 2.2.9 2.2.14 2.2.14 2.2.15

    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

    Serveur de base de donnes usagers Mysql 5.0.24 5.0.67 5.1.40 5.1.42 5.1.46

    Cache WEB (proxy) Squid 2.6 3.0.8 3.0.22 3.0.22 3.1-14

    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 2.09 1.09 2.24 1.24 2.28 2.0.7 2.28-2.07 2.29 - 3

    Chiffrement des fichiers journaux Gnupg 1.4.5 1.4.9 1.4.10 1.4.10 1.4.10

    Connexion distante scurise openssh-server 4.3-P2 5.1-P1 5.3-P1 5.3-P1 5.5p1

    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

    InternetAccs

    Internet

    Filtrage WEB(URL et contenu)

    Autre

    s flu

    x

    Flux web

    Proxy WEB

    @IP_src + @MAC_src + port_src

    + @IP_dest + port_dest + date + heure

    Usagers

    2

    Filtrage deprotocoles

    Coova-chilli

    HAVP

    Squid

    Serveur de base de donnes

    Flux DNS

    AdministrationAdministrateur Apache

    Freeradius

    Mysql

    Journal desConsultations

    WEBJournal des

    Flux

    Nom-usager + @MAC_src + @IP_src + date + heure

    @IP dest + URL dest + date + heure

    1

    PAREFEU (NETFILTER)

    1 : - protection en entre (anti-contournement) - redirection des flux (web, dns, autres) - antispoofing

    2 : - masquage d'adresse (dnat) - journalisation des connexions - antispoofing

    Passerelled'interception

    +Serveur DHCP

    Serveur A.A.AAuthenticationAuthorisationAccounting

    Serveur WEB

    Annuaireexterne

    Serveur LDAP ou A.D externe

    Base des usagerset

    journal des connexions

    Blacklistsd'URL

    Cache Web

    Ulogd

    Marquage et discrimination des logs

    DNSmasqServeur DNS local

    + filtrage de domaine

    Dansguardian

    libclamav

    Proxy antivirusde flux WEB

    Baseantivirale

    Cache DNSBlacklist

    de domainesInte

    rception

    8080 8090

    3128

    53

    443

    Authentification 3990

    Alcasar Control Center(Centre de gestion)

    18121813

  • ALCASAR Schma des flux rseau internes

    Documentation technique ALCASAR 6/17

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

    Tun0Eth1

    Eth0

    Apache (serveur WEB)- Gre et chiffre le transport des pages WEB du portail

    Module PHP intercept.php - Gnre la page d'authentification- Rcupre le couple (identifiant/mot de passe)- Transfre ces donnes de manire chiffre Coova-chilli

    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)

    Internet

    Squid (proxy WEB)- Gnre les journaux http- Mmorise et acclre les connexions

    MySQL (serveur de base de donnes usagers)- Stocke les donnes des comptes et des groupes d'usagers- Stocke les journaux de connexion

    quipements de consultation

    NetFilter (protection du portail)

    Autre s flu x

    DansGuardian (filtrage d'Url et contrle de contenu)

    - Exploite la blacklist d'URL

    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

    Module PHP FirewallEYES - Interface de consultation des logs du parefeu

    Module PHP gestion - centre de gestion d'Alcasar

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

    Netfilter (gestion des flux)- Filtrage et aiguillage de protocoles

    Module PHP phpsysinfo - information systme (page de garde)

    DNSmasq (DNS)- Transmet les trames DNS aux serveurs publics Gre les domaines blacklists

    Loopback (127.0.0.1)

    HAVP (proxy antivirus de flux WEB)- Analyse le contenu du flux HTTP via libclamav

  • 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 re-paramtr, 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 (alcasar-watchdog) 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 :

    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

    HTTP URL vers Internet

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

    HTTPS demande intercept.php + challenge + URL

    HTTPS intercept.php + challenge + URL

    HTTPS utilisateur + mot de passe + challenge + URL

    coova

    Apache+

    php

    80

    443

    coova

    Intercept.phpmodule Javascript

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

    3990

    443

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

    HTTPS demande intercept.php + rsultat authentif + URL

    HTTPS intercept.php + rsultat authentif + URL apache

    Internet

    coova InternetHTTP URL vers Internet (idem 1re trame) 80 ou tout

    autre protocole

    @MAC+

    @IP

    HTTP + utilisateur + mot de passe chiffr + URL

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

  • 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 FreeRadiusLe 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 inner-tunnel,control-socket et default , ces 3 fichiers sont fixs 0 volontairement. Ne pas les supprimer !!!

    Commande de test de radius : radtest 127.0.0.1 0

    4.3 - Base de donnes des usagersLa 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 viergemysql -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*)

    1. badusersid int(10)

    UserName *varchar(30)Date * datetime

    Reason varchar(200)Admin varchar(30)

    9. radreplyid int(11)

    UserName * varchar(64)Attribute varchar(32)

    op char(2)Value varchar(253)

    10. totacctTotAcctld 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)

    8. radpostauthid int(11)

    user varchar(64)pass varchar(64)reply varchar(32)date timestamp(14)

    6. radgroucheckid int(11)

    GroupName * varchar(64)Attribute varchar(32)

    op char(2)Value varchar(253)

    7. radgroupreplyid int(11)

    GroupName * varchar(64)Attribute varchar(32)

    op char(2)Value varchar(253)

    5. radcheckid int(11)

    UserName * varchar(64)Attribute varchar(64)

    op char(2)Value varchar(253)

    3. nasid int(10)

    nasname * varchar(128)shortname varchar(32)

    type varchar(30)ports int(5)

    secret varchar(60)community varchar(50)description varchar(200)

    2. mtotacctMtotAcctld 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)

    4. radacctRadAcctld 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 * datetimeAcctStopTime * datetimeAcctSessionTime 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)

    12. userinfoid int(10)

    UserName * varchar(30)Name varchar(200)Mail varchar(200)

    Department * varchar(200)WorkPhone varchar(200)HomPhone varchar(200)

    Mobile varchar(200)

    11. radusergroupUserName * varchar(64)GroupName varchar(64)

    Priority int(11)

    LgendeEn rouge : Index Cl PrimaireEn Italique * : Cl secondaireTable cre par FreeRadiusWEBTable cre par FreeRadiusSQLTable inexploite par ALCASAR

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

  • 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 ;

    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 RseauxCette 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-.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=45Dec 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'URLsLe 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 domaineIl 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'URLsIl 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 WEBLe 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 firewallPour 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 proxyLes fichiers journaux du proxy Squid se trouvent sous /var/log/squid sous le nom de access.log .

    7.3 - Logs filtrageLes 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 passeDans 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 .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 - WatchdogCe 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 - StatistiquesLes 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 coova-chilli ), 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 ).

    8.6 - Module de sauvegardeLes 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 : alcasar-mondo.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 -.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 : -.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 systmeAlcasar-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 - AnnexesCe chapitre reprend les fichiers de configuration spcifiques ALCASAR.

    10.1 - Coova-chilliLes 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 - FreeradiusLes 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

    @IPFQDN 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 : alcasar-

    dnsfilter-available (sous /usr/local/etc/)

    10.5 - DansguardianLes 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 - SquidLes 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 - UlogdLe 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 + ClamavLe 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 dptsLa 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

    1 - Rappel de l'architecture2 - Choix des constituants2.1 - La passerelle d'interception2.2 - Les autres constituants

    3 - Schmas de principe :4 - Fonction interception / authentification4.1 - la passerelle coova-chilli4.1.1 - Fonctionnement de l'interception (capture)4.1.2 - Exception l'authentification

    4.2 - Le serveur FreeRadius4.3 - Base de donnes des usagers4.3.1 - Accs graphique la base4.3.2 - Accs console

    5 - Fonction filtrage5.1 - Filtrage Rseaux5.2 - Filtrage de domaines et d'URLs5.3 - Antivirus WEB

    6 - Fonction Interface de gestion7 - Fonction traabilit et imputabilit7.1 - Log firewall7.2 - log proxy7.3 - Logs filtrage

    8 - Fonction modules complmentaires8.1 - Import de comptes Fichier mots de passe8.2 - Watchdog8.3 - Statistiques8.4 - Contournement (by-pass)8.5 - Re-Horodatage des fichiers journaux 8.6 - Module de sauvegarde8.6.1 - Sauvegarde du systme complet8.6.2 - Sauvegarde des journaux d'vnements8.6.3 - sauvegarde de la base de donnes

    9 - Mises jour9.1 - Mise jour du systme

    10 - Annexes10.1 - Coova-chilli10.2 - Freeradius10.3 - Dnsmasq10.4 - Parefeu10.5 - Dansguardian10.6 - Squid10.7 - Ulogd10.8 - HAVP + Clamav10.9 - Distribution Mandriva et ses dpts