squid squid guard guillaume ternisien douville

Upload: manaisana

Post on 16-Jul-2015

150 views

Category:

Documents


0 download

TRANSCRIPT

Annexe I Procdure dinstallationTERNISIEN DOUVILLE Guillaume V1.1

Installation dun Proxy Squid et SquidGuard

Ternisien dOuville Guillaume

Juillet 2005

A- 1

Annexe I Procdure dinstallationIntroduction Le but de cette installation est de crer un proxy-cache permettant galement de filtrer laccs Internet. Un proxy est un serveur mandataire, c'est--dire que les ordinateurs dun rseau local ne vont pas directement ce connecter Internet mais passer par lintermdiaire de ce serveur. De plus les pages Internet visites par un ordinateur seront mise en cache (copies sur le disque dur), ainsi si la mme page est demande par une autre personne du rseau il ny aura pas besoin daller la chercher sur le web mais seulement sur le disque dur du proxy, do une meilleur utilisation de la bande passante. Comme toutes les connexions un site Internet passeront par le proxy il est capable de les filtrer, on peut ainsi limiter laccs Internet pour une entreprise. Jai choisi de faire ce proxy sous linux, car cest un systme dexploitation libre, de mme que les logiciels utiliss (Squid et SquidGuard). Jutiliserai squid comme proxy-cache, et SquidGuard pour filtrer les sites web. Ces deux logiciels fonctionnent parfaitement ensemble. Voici un schma expliquant le fonctionnement du serveur proxy.

Le but de ce proxy sera de mettre certain site en cache et de bloquer laccs aux sites pornographiques et de tlchargements illgaux

Ternisien dOuville Guillaume

Juillet 2005

A- 2

Annexe I Procdure dinstallation

I) Installation ..........................................................................................A) Fedora Core 4 ...........................................................................................1) Prfrences ....................................................................................................... 2) Configuration du rseau ................................................................................... 3) Configuration des utilisateurs ...........................................................................

B) Squid......................................................................................................... C) SquidGuard............................................................................................... D) Webmin et les modules ncessaires .........................................................

II) Utilisation de Squid (mode terminal) .............................................A) Configuration ...........................................................................................1) Paramtres et cache de squid ............................................................................ 2) Configuration des ACL ....................................................................................

B) Lancement de squid.................................................................................. C) Configuration des clients..........................................................................

III) Utilisation de SquidGuard (mode terminal) ................................A) Configuration ...........................................................................................1) Paramtre .......................................................................................................... 2) Sources ............................................................................................................. 3) Dest ................................................................................................................... 4) Droit daccs.....................................................................................................

B) Cration de la base de donne .................................................................. C) Lancement de SquiGuard .........................................................................

IV) Utilisation de Squid (avecWebmin) ............................................... V) Utilisation de SquidGuard (avec Webmin).................................... VI) Utilisation des logs ..........................................................................A) Les logs ....................................................................................................1) Squid ................................................................................................................. 2)SquidGuard ........................................................................................................

B) Utilisation des logs avec Webmin ............................................................1) Webalizer.......................................................................................................... 2) SARG ...............................................................................................................

VII) Amliorations possibles ................................................................Utilisation dun fichier pac Blacklist Divers Ternisien dOuville Guillaume Dmarrage de Squid au boot Limite taille des logs Juillet 2005 A- 3

Annexe I Procdure dinstallation

I. InstallationA) Fedora Core 41) Prfrences Il est prfrable de crer une partition sur votre disque dur pour les logs et la cache de Squid. Dans mon cas jai cr une partition de 5 Go pour la cache et les logs, cette partition se trouve dans /home. Il est recommand dinstaller fedora en serveur et dy installer un navigateur Internet graphique. 2) Configuration du rseau Voici les adresses rseaux pour ma configuration : Adresse IP : 172.16.0.249 Mask : 255.255.0.0 GW : 172.16.0.254 DNS 1 : 172.16.0.1 DNS2 : 172.16.0.2 Nom de lhte : kic-proxy.keops-ic.fr Chemin DNS : keops-ic.fr 3) Configuration des utilisateurs Une fois linstallation de Fedora termine nous allons crer un utilisateur squid dans le groupe squid, cest cet utilisateur qui fera tourner notre proxy. Pour cela tapez dans la console : Groupadd squid Useradd squid g squid Passwd 123456789

B) SquidNormalement squid2 est dj install sur la fedora, mais cette version est antrieure celle que nous allons installer, il faut donc la supprimer. Pour cela utilisez la commande rpm e squid dans le terminal. Vous devez ensuite tlcharger squid2.5 STABLE 9. Allez sur le site http://rpmfind.net et cherchez le rpm valable pour la distribution fedora. Il sera peut tre ncessaire dinsrer les cd-rom de Fedora pour installer les packages dpendants. Le dossier /etc/squid est cr, il contient entre autre le fichier squid.conf, qui sert configurer squid.

Ternisien dOuville Guillaume

Juillet 2005

A- 4

Annexe I Procdure dinstallation

C) SquidGuard Comme pour Squid il faut chercher le rpm sur le site http://rpmfind.net et linstaller. Un fichier squidguard.conf apparat dans le dossier /etc/squid. La Fedora Core 4 tant rcente on ne trouve pas le rpm spcifique cette version, cependant le rpm pour la FC 3 marche parfaitement bien.

D) Webmin et les modules ncessairesCette fois nous allons trouver notre rpm directement sur le site de webmin ! (www.webmin.com/download.html) Une fois le rpm install on se connecte webmin avec un navigateur Internet grce ladresse ip du proxy sur le port 10000 , http://127.0.0.1:10000 si lon se trouve sur le pc o webmin est install. http://adresseipduproxy:10000 si lon se trouve sur un autre pc (et que webmin est configur pour accepter la connexion !)

On obtient ceci :

A ce stade Webmin est inutilisable pour contrler squid et SquidGuard. En effet malgr ses capacits il faut lui installer 2 modules pour contrler squid ainsi que SquidGuard. Le module pour squid se trouve ladresse : http://www.webmin.com/download/modules/squid.wbm.gz Celui pour SquidGuard : http://www.niemueller.de/webmin/modules/squidguard/squidguard-0.91.2.wbm.gz

Ternisien dOuville Guillaume

Juillet 2005

A- 5

Annexe I Procdure dinstallationNous allons maintenant configurer Webmin : Cliquons sur configuration de Webmin .

Dans le premier icne on pourra configurer les ip ayant accs la console Webmin. Ce qui nous intresse le plus est licne Modules Webmin grce auquel nous allons pouvoir installer les modules prcdemment tlchargs. Pour cela il suffit de mettre le lien du fichier WDM, on installera dabord le module de Squid et ensuite le module de SquidGuard.

Une fois les deux modules installs Webmin va pourvoir configurer Squid et SquidGuard.

II. Utilisation de Squid (mode terminal)Squid utilise des dossiers pour stocker sa cache et ses logs. Jai donc cre les rpertoires /home/fichier_proxy/squid/log et /home/fichier_proxy/squid/cache. Ces deux dossiers se trouvent dans la partition que jai cre pour le proxy. ATTENTION, ces dossiers doivent appartenir lutilisateur Squid, pour cela faite un clic droit sur le dossier et dans longlet permission changer lutilisateur et le groupe.

Ternisien dOuville Guillaume

Juillet 2005

A- 6

Annexe I Procdure dinstallation A) ConfigurationUn seul fichier sert configurer squid : squid.conf. On trouve ce fichier dans le dossier /etc/squid/squid.conf Le fichier de configuration de base est trs imposant et nous navons pas besoin de toutes les options que Squid offre pour faire ce que lon veut. Voici mon fichier squid.conf que je vais expliquer.######### squid.conf version 3 par guigui 18/07/05 bloque google clubic ########## #port de com pour le proxy http_port 8080 #port de com avec autre proxy voisin (desactive avec 0) icp_port 0 #page a ne pas garder en cache acl QUERY urlpath_regex cgi_bin\? \.cgi \.pl \.php3 \.asp no_cache deny QUERY # taille de la cache memoire cache_mem 32000 bytes #emplacement cache (taille max en Mo,nbre sous repertoire,nbre sous sous repertoire) cache_dir ufs /home/fichier_proxy/squid/cache 10 10 50 #taille max objet ds cache maximum_object_size 2000000 bytes #emplacement log cache_store_log /home/fichier_proxy/squid/log/store.log cache_log /home/fichier_proxy/squid/log/cache.log cache_access_log /home/fichier_proxy/squid/log/access.log #mail responable proxy cache_mgr [email protected] log_icp_queries off buffered_logs on #def des ACL (reseaulocal, localhost, ip possible,connection directe sur proxy, port sur) acl intranet src 172.16.0.0/255.255.0.0 acl localhost src 127.0.0.1/255.255.255.255 acl all src 0.0.0.0/0.0.0.0 acl CONNECT method CONNECT acl SSL_pots port 443 acl safe_ports port 0-65535 acl interdit dstdomain .clubic.com acl mots_interdits url_regex yahoo #droit access #on autorise reseau a ce connecter au proxy http_reply_access deny interdit http_reply_access deny mots_interdits http_access deny CONNECT !SSL_ports http_access deny !safe_ports http_access allow intranet http_access allow localhost http_access deny all redirect_program /usr/bin/squidguard -c /etc/squid/squidguard.conf

Ternisien dOuville Guillaume

Juillet 2005

A- 7

Annexe I Procdure dinstallation1) Paramtres et cache de squid http_port http_port permet dindiquer le port que vous souhaitez utiliser. Le plus frquent est 8080. Il faut donc changer cette valeur car par dfaut Squid utilise 3128. icp_port Icp_port permet de choisir le port pour communiquer avec des proxy-cache voisins. Comme il ny en a pas dans notre cas nous mettons 0 pour le dsactiver. no_cache deny QUERY : Dfinit le type de page ne pas garder dans le cache afin de ne pas avoir conserver les donnes d'un formulaire par exemple.acl QUERY urlpath_regex cgi-bin \? \.cgi \.pl \.php3 \.asp et

cache_mem Indique la cache mmoire, la valeur dpend de votre systme. Par dfaut Squid utilise 8 Mo. Cette taille doit tre la plus grande possible afin d'amliorer les performances (Considrez 1/3 de la mmoire que vous rservez Squid). On peut avec cache_mem rgler cache_mem_low et cache_mem_high qui sont les valeurs limites de remplissage du cache mmoire. Par dfaut les valeurs sont 75 % et 90 %. Lorsque la valeur de 90 % est atteinte le cache mmoire se vide jusqu' 75 %. cache_dir Vous indiquez ici le volume de votre cache. Si vous avez plusieurs disques, utilisez plusieurs fois cette ligne. cache_dir ufs /home/fichier_proxy/squid/cache 10 10 50 Cette ligne correspond une cache de 10Mo, de plus Squid va placer cette cache dans le rpertoire /home/fichier_proxy/squid/cache, il va y crer 10 rpertoires contenant 50 sous rpertoires. ATTENTION Pensez crer les rpertoires o sera stocke la cache ! maximum_object_size Indique la taille maximale de l'objet qui sera sauvegard sur le disque. Mon fichier indique une taille maximale de 2Mo cache_access_log ; cache_log ; cache_store_log Indique l'endroit o se trouve les logs. Si vous ne souhaitez pas avoir de logs (par exemple des objets cache_store_log), indiquez cache_store_log none. ATTENTION Pensez crer les rpertoires o seront stocks les logs ! Cache_mgr Spcifie ladresse mail du responsable du proxy. Log_icp_queries off Indique quon ne souhaite pas logger les requtes ICP. Buffered_logs on Permet dacclrer lcriture de certains logs.

Ternisien dOuville Guillaume

Juillet 2005

A- 8

Annexe I Procdure dinstallation2) Configuration des ACL Pour contrler tout ce qui passe par votre proxy vous devez utiliser les ACL (Access Control List). Elles ont donc deux grandes fonctionnalits : contrler qui a le droit d'utiliser votre proxy-cache et contrler les requtes que font les postes clients. Pour interdire certains sites on utilise les ACL. On peut interdire en fonction du domaine, de lurl, de l'adresse IP ou d'un mot. La syntaxe d'une ACL est la suivante : Acl aclname http_access allow|deny http_reply_access allow|deny acltype string[string2] [!]aclname [!]aclname

acltype peut prendre comme valeur : src (pour la source) : indication de l'adresse IP du client sous la forme adresse/masque. On peut aussi donner une plage d'adresse sous la forme adresse_IP_debut-adresse_IP_fin port : indique les ports Internet. dstdomain : Le domaine de destination. url_regex : Une chane contenue dans l'URL. urlpath_regex : Une chane compare avec le chemin de l'URL. Ensuite on autorise ou non cette ACL avec http_access si lacl correspond une ip qui a le droit ou non de se connecter au proxy, ou avec http_reply_access si lACL correspond un site dont laccs sera prohib ou non. On peut placer un point dexclamation avant lacl pour indiquer le contraire. Et maintenant lexplication de mes ACL : acl intranet src 172.16.0.0/255.255.0.0 : ACL dsignant le rseau local acl localhost src 127.0.0.1/255.255.255.255 : ACL dsignant le poste qui hberge le proxy acl all src 0.0.0.0/0.0.0.0 : ACL dsignant toutes les adresses ip possibles. acl CONNECT method CONNECT : ACL dsignant une connexion directe sur le proxy acl SSL_ports port 443 563 : ACL dsignant les ports SSL acl safe_ports port 0-65535 : ACL dsignant les ports dit de confiances, dans notre cas tout les ports car le rseau contient un pare-feu acl interdit dstdomain .clubic.com : ACL dsignant un nom de domaine que lon va interdire

Ternisien dOuville Guillaume

Juillet 2005

A- 9

Annexe I Procdure dinstallationacl mots_interdits url_regex yahoo : ACL dsignant un mot dans une adresse URL que lon va interdire

http_reply_access deny interdit : On refuse au client lACL interdit, le site clubic.com sera donc bloqu. http_reply_access deny mots_interdits : On refuse au client lACL interdit, tous les sites contenants dans leur url le mot yahoo seront bloqus. http_access deny CONNECT !SSL_ports : On refuse lACL CONNECT pour viter que des personnes puissent se connecter au proxy, mais on autorise les ports 443 utilis par le protocole SSL. http_access deny !safe_ports : On refuse tous les ports sauf ceux de lACL safe_ports http_access allow intranet : On accepte lACL intranet pour que toutes les personnes du rseau local puissent passer par le proxy. http_access allow localhost : idem pour la machine http_access deny all : on refuse lACL all pour empcher une personne extrieure au rseau de passer par le proxy. ATTENTION cette ACL doit obligatoirement se trouver la fin, il ne doit pas y avoir dautre acl aprs !!

redirect_program /usr/bin/squidguard -c /etc/squid/squidguard.conf Spcifie squid dutiliser le programme squidguard, inutile si vous navez pas squidguard ! (Plus de dtails dans la partie III))

Voil squid maintenant configur et prt marcher !! Rcapitulons ce que cette configuration permet : -utiliser trs peu de cache (minimum possible) -autoriser le rseau local se connecter au proxy et empcher toute autre personne de sy connecter. -bloquer le site www.clubic.com -bloquer les url contenants le mot yahoo Il ne vous reste plus qu le configurer pour vos envies !

B) Lancement de squidComme nous lavons dit tout lheure nous voulons que ce soit lutilisateur squid qui lance le proxy. Il faut donc paramtrer les droits daccs des dossiers de squid. Pour cela il suffit de faire un clic droit sur un dossier ou fichier et daller dans longlet permission. Ternisien dOuville Guillaume Juillet 2005 A- 10

Annexe I Procdure dinstallationLe fichier /etc/init.d/squid doit tre le propritaire de lutilisateur squid du groupe squid, de mme que le fichier squid.conf. De plus il faut autoriser squid crire dans les rpertoires des logs et de la cache (fait prcdemment normalement). Il faut avant tout initialiser la cache avec les options de configuration que lon vient de voir : Pour cela tapez dans la console : cd /etc/squid/ squid -z Si votre fichier squid.conf contient une erreur de syntaxe, un message derreur apparatra sinon creating swap directories saffichera lcran. Lancer maintenant Squid avec la commande : cd /etc/squid/ squid D Squid fonctionne correctement, il ne reste plus qua paramtrer les clients pour quils se connectent au proxy ! On peut galement dmarrer, stopper, ou redmarrer squid grce aux commandes : Service squid start|stop|restart

C) Configuration des clientsIl ne vous reste plus qu configurer les postes clients, pour cela rien de plus simple il suffit daller dans les paramtres de connexion de votre navigateur et de spcifier lusage dun proxy en entrant sont adresse ip et son port (configurer dans squid). Dans la partie VII. une autre mthode est expliquer pour configurer les postes clients.

III. Utilisation de SquidGuard (mode terminal)SquidGuard utilise des dossiers pour stocker sa base de donne et ses logs. Jai donc cre les rpertoires /home/fichier_proxy/squidguard/log et /home/fichier_proxy/squidguard/lib. Ces deux dossiers se trouvent dans la partition que jai cre pour le proxy. ATTENTION, ces dossiers doivent appartenir lutilisateur Squid !, pour cela faite un clique droit sur le dossier et dans longlet permission changer lutilisateur et le groupe.

Ternisien dOuville Guillaume

Juillet 2005

A- 11

Annexe I Procdure dinstallation A) ConfigurationAvant toute chose il faut intgrer SquidGuard squid, ce nest pas compliqu il suffit de rajouter cette ligne la fin du fichier squid.conf (vu prcdemment): Redirect_program /etc/bin/squidguard -c /etc/squid/squidguard.conf Cette ligne spcifie le lien vers le programme et -c /etc/squid/squidguard.conf le fichier de configuration charger au lancement de SquidGuard SquidGuard va nous permettre de filtrer les pages web, il offre bien plus de fonctions que Squid pour cela. En effet SquidGuard utilise des fichiers textes contenants des listes de domaines, durls ou dexpressions. Cest sa librairie. SquidGuard convertira ces fichiers en .db pour les utiliser. Il redirigera les pages bloques sur un site de notre choix.

Nous allons procder de la mme faon que pour squid pour expliquer comment le paramtrer. Voici donc mon fichier de config :##### SquidGuard.conf par guigui 18/07/05 #######

#localisation des fichier de squidguard dbhome /home/fichier_proxy/squidguard/lib logdir /home/fichier_proxy/squidguard/log

#adresse du reseau local source reseau { ip 172.16.0.0/16 }

#lien vers les listes de sites, domaines, ou expressions destination test { domainlist test.destdomainlist }

#ACL acl { reseau { pass !test redirect http://guicloud.free.fr/interdit.html }

default { pass none redirect http://guicloud.free.fr/interdit.html } }

Ternisien dOuville Guillaume

Juillet 2005

A- 12

Annexe I Procdure dinstallation1) Paramtres dbhome /home/fichier_proxy/squidguard/lib logdir /home/fichier_proxy/squidguard/log On indique les rpertoires que SquidGuard va utiliser pour stocker ses fichiers contenants les sites bannir ou autoriser (lib), et des ses fichiers logs. 2) Sources source nomdelasource { ip 172.16.0.0/16 } On dfinit une classe dadresses Ip clientes (source), dans ce cas toutes les adresses du rseau local. Nous allons pouvoir ensuite paramtrer les droits daccs de cette source, les sources sont utiles pour permettre un droit daccs propre au client, ou alors rediriger des groupes de personnes sur diffrents sites. 3) Dest destination nomdeladest { domainlist nomdeladest.destdomainlist urllist nomdeladest.desturllist expressionlist nomdeladest.destdexprlist }

Les dest ou destination permettent de dfinir les types et lemplacement des fichiers de la librairie de squidGuard, dans cet exemple le fichier contenant une liste de domaine sera dans le dossier /var/lib/squidguard et ce sera le fichier portant le nom nomdeladest.destdomainlist . De mme pour le fichier des urls et des expressions. On peut donc crer plusieurs classes de sites, on peut faire par exemple une dest pour les sites pornographiques, une pour les sites de P2P etc. Nous verrons un peu plus loin comment crer ces fichiers. 4) Droit daccs Les ACL permettent de dfinire les droits daccs pour chaque source, dans notre cas il ny a quune source, le rseau local. Mais on pourrait ventuellement dfinir des sous rseaux ayant des droits daccs diffrents.

Ternisien dOuville Guillaume

Juillet 2005

A- 13

Annexe I Procdure dinstallationacl { nomdelasource { pass !nomdeladest redirect http://guicloud.free.fr/interdit.html } default { pass none redirect http://guicloud.free.fr/interdit.html } }

On dfinit les ACL pour la source rseau, dans le cas prsent, toutes personnes du rseau local pourront accder toutes les pages Internet sauf celles spcifies par nomdeladest . Les pages interdites seront rediriges vers le site http://guicloud.free.fr/interdit.html. On pourrait galement marquer : pass !nomdeladest any (on passe tout sauf nomdeladest , mme chose que prcdemment) pass nomdeladest none (on ne passe rien sauf nomdeladest ) On dfinit galement une ACL default, au cas o une personne non dfinie dans les sources soit connecte au proxy, dans ce cas toutes les pages sont refuses et rediriges. ATTENTION, si la ligne redirect contient une erreur squidGuard ne redirigera rien et laissera passer les sites bloquer !

B) Cration de la base de donneComme nous lavons vu squid utilise une base de donne ou librairie. Nous avons spcifi prcdemment que squidguard utilise un fichier nomm nomdeladest.destdomainlist . Nous devons crer ce fichier dans le rpertoire /var/lib/squidguard (rpertoire mentionn dans le fichier de configuration). Pour faire ce fichier il suffit de louvrir avec un diteur de texte et de rentrer ligne aprs ligne les noms de domaine, sans le www. Il en va de mme avec les fichiers nomdeladest.desturllist et nomdeladest.destexpressionlist Voici un exemple de syntaxe pour chaque fichier :

# domainlist google.com wanadoo.com yahoo.fr yahoo.com

# urllist free.fr/adsl sports.fr/fr/f1

# expressionlist p2p jeux

Ternisien dOuville Guillaume

Juillet 2005

A- 14

Annexe I Procdure dinstallation C) Lancement de SquidGuardAvant de lancer squidGuard il faut faire comme squid au niveau des permissions, en effet il faut que ce soit lutilisateur squid (le mme que Squid) qui soit propritaire de squidguard. Il faut donc changer les permissions pour les fichier /etc/squid/squidguard.conf, /etc/bin/squidguard et les dossiers quutilise squidguard. Pour initialiser les fichiers contenants les urls, domaines ou expressions, il faut que squidGuard les lisent. Pour cela lancer la commande : /usr/bin/squidguard C all SquidGuard va alors crer partir des fichiers textes sa base de donne (fichier .db), on peut le vrifier dans le dossier /var/lib/squidguard. On relance squid avec un service squid restart normalement tout fonctionne....

IV. Utilisation de squid (avec webmin)Tous ce qui a t fait dans la partie prcdente nest pas perdu lorsque vous utilisez Webmin pour contrler Squid, le module va directement prendre le paramtre de votre fichier squid.conf Cette partie est extraite du site http://christian.caleca.free.fr/squid/ Les notes soulignes correspondent au changement que jai effectu pour ma configuration.

Comme Webmin est bien install, mis jour et tout, et que le module pour squid est bien prsent, utilisons-le :

Ternisien dOuville Guillaume

Juillet 2005

A- 15

Annexe I Procdure dinstallation

Les ACL (Access Control Lists) permettent de dfinir des conditions sur les PIs, les ports, le contenu de certains textes, et j'en passe. Si vous voulez tout savoir sur les diverses ACL de Squid, ne comptez pas sur moi, comptez plutt sur la documentation officielle. Les restrictions indiquent quoi faire lorsque ces conditions sont vrifies. On autorise ou on interdit en fonction d'une ACL ou d'un groupe d'ACLs, le sens de "restriction" est donc prendre avec un peu de recul, une restriction pouvant tre une autorisation. La premire "restriction" vrifie est la bonne, d'o l'importance de l'ordre dans lequel elles sont places. Sans faire une analyse dtaille, nous voyons que dans la configuration par dfaut, seul "localhost" peut utiliser le proxy (Allow localhost). Il nous faut donc faire intervenir la notion de rseau local. Crer une ACL reprsentant le LAN Nous slectionnons dans la liste droulante "Client Address" et cliquons sur "Create New ACL" :

Ternisien dOuville Guillaume

Juillet 2005

A- 16

Annexe I Procdure dinstallationNous pouvons dfinir une tendue, ou toute une classe, comme c'est le cas dans l'exemple. Notre LAN fonctionne avec la classe 192.168.0.0. Save... La classe de notre rseau est 172.16.0.0

Une nouvelle ligne est apparue dans la liste des ACLs, appele"Localnet"

Nous allons maintenant sur "Add proxy restriction, choisissons "Allow" et slectionnons "LocalNet" dans la liste "Match ACLs". Save...

Enfin, au moyen des flches de la colonne de droite, nous montons cette nouvelle restriction juste au dessus de "Deny all" N'oublions pas de faire un "Apply changes", et refaisons un essai :

Ternisien dOuville Guillaume

Juillet 2005

A- 17

Annexe I Procdure dinstallation

Ca marche ! Bien entendu, l'ide de faire plutt "Allow all" est une mauvaise ide. Si votre proxy a un pied dans l'Internet (s'il est install sur la passerelle), vous risquez un proxy ouvert, avec tous les usages pervertis que l'on peut en faire...

Ternisien dOuville Guillaume

Juillet 2005

A- 18

Annexe I Procdure dinstallation

V. Utilisation de squidGuard (avec webmin)Tous ce qui a t fait dans la partie prcdente nest pas perdu lorsque vous utilisez Webmin pour contrler SquidGuard, le module va directement prendre le paramtre de votre fichier squidguard.conf Cette partie est extraite du site http://christian.caleca.free.fr/squid/ Les notes soulignes correspondent au changement par rapport ma configuration.

Comme nous avons renomm le fichier de configuration par dfaut, il n'y en a plus. Le module squidGuard de Webmin va nous aider en faire un autre, tout neuf. Depuis, l'onglet "Servers" de Webmin, dmarrons ce module. Il pourra se faire qu'il soit mal ou pas configur et qu'il apparaisse ainsi :

Indiquez le chemin o l'on doit disposer du fichier de configuration. Mais ce n'est pas tout :

Ternisien dOuville Guillaume

Juillet 2005

A- 19

Annexe I Procdure dinstallation

Il faut aussi savoir sous quels UID/GID squidGuard doit tourner. Il constituera des processus fils pour squid, c'est donc le mme utilisateur que pour squid, "proxy" par dfaut pour Debian. Le module va maintenant crer un squidGuard.conf minimum : Lutilisateur est squid ainsi que le groupe pour notre configuration.

Vous n'avez pas le choix... "Create" donc.

Ternisien dOuville Guillaume

Juillet 2005

A- 20

Annexe I Procdure dinstallation

Indiquez les chemins par dfaut pour Debian et, surtout, faites attention bien slectionner "No traffic" pour la rgle par dfaut. Si l'on est en train de s'embter, ce n'est pas pour raliser une passoire ! Pour nous le dossier de la base de donne est /home/fichier_proxy/squidguard/lib, celui des logs est /home/fichier_proxy/squidguard/log. Comme ce module est intelligent, il va constater que squid n'est pas configur pour utiliser le "helper" squidGuard. Il va donc vous en avertir :

Ternisien dOuville Guillaume

Juillet 2005

A- 21

Annexe I Procdure dinstallationConfigurez donc Squid. Vous pourrez vrifier, toujours au moyen de Webmin, mais avec le module Squid :

Dans la pratique, Webmin a ajout pour vous la ligne :redirect_program /usr/bin/squidGuard -c /etc/squid/squidGuard.conf

Dans le fichier de configuration de Squid : /etc/squid.conf. Nous devrions avoir ceci dans la fentre Webmin de gestion de SquidGuard :

Ternisien dOuville Guillaume

Juillet 2005

A- 22

Annexe I Procdure dinstallation

Mais nous sommes encore trs loin du compte... Puisqu'on n'est pas l pour raliser une passoire, signalons tout de mme ceci : squidQuard redirige les URI interdits vers un URI local, gnralement destin expliquer pourquoi le site convoit a t bloqu. Gnralement, il s'agit d'un script CGI. Si cet URI de redirection n'est pas indiqu, ne sachant pas o rediriger les requtes interdites, squidGuard les laissera tout de mme passer, ralisant ainsi une pernicieuse passoire !!!

Il est donc impratif d'installer un tel script ou, dfaut, une page d'avertissement quelconque vers laquelle rediriger les URI interdits. Le paquetage Debian de squidGuard n'installe rien ce propos, mais vous trouverez dans /usr/share/doc/squidguard/examples deux scripts dont vous pourrez vous inspirer ou essayer d'utiliser en l'tat (aprs les avoir installs dans /usr/lib/cgi-bin et rendus excutables). Mais ce n'est pas tout, il vous faudra aussi revenir sur l'ACL "Default", pour spcifier la redirection :

Ternisien dOuville Guillaume

Juillet 2005

A- 23

Annexe I Procdure dinstallation

http://127.0.0.1/cgi-bin/squidGuard.cgi?clientaddr=%a&srcclass=%s&targetclass=%t&url=%u

Cette ligne part du principe que vous avez sur la machine locale un serveur HTTP en tat de marche et qu'il dispose d'un script squidGuard.cgi. Les paramtres transmis dans cet exemple permettent de communiquer au script toutes les informations ncessaires pour identifier les circonstances du blocage. On peut galement rediriger vers nimporte quel site, dans notre cas http://guicloud.free.fr/interdit.htm Bien entendu, ce script, ou un autre (page php comprise) peuvent tre situs sur une machine autre, il suffit de rdiger l'URI de redirection en fonction. Et voil. Une magnifique configuration par dfaut est ralise. Il faut maintenant relancer Squid et, sans l'tat actuel des choses, plus personne ne pourra visiter quoi que ce soit, SquidGuard interdisant tout par dfaut quiconque. Nous avons actuellement un fichier squidGuard.conf qui a cette allure :

dbhome /var/lib/squidguard/db logdir /var/log/squid acl { default { redirect http://127.0.0.1/cgibin/squidGuard.cgi?clientaddr=%a&srcclass=%s&targetclass=%t&url=%u pass none }

Ternisien dOuville Guillaume

Juillet 2005

A- 24

Annexe I Procdure dinstallation}

Les "Source Groups"Ce sont les groupes d'utilisateurs de votre LAN. Vous pouvez crer autant de groupes que vous voulez, ces groupes seront principalement bass sur les blocs d'IPs. Ceci peut vous amener dj reconsidrer compltement vos stratgies d'attribution d'IPs... Pour le moment, nous allons redonner un accs sans limites tous les utilisateurs de notre LAN en crant un "source group" rassemblant toutes les IPs que nous utilisons :

Un groupe nomm potiquement LAN. Vous pourrez aisment trouver mieux...

Ternisien dOuville Guillaume

Juillet 2005

A- 25

Annexe I Procdure dinstallation

Il faut maintenant dfinir son contenu :

Nous ajoutons un "subnet", mais beaucoup de possibilits sont proposes. User et Userlist ne seront utilisables que s'il est mis en place un systme d'authentification des utilisateurs de votre LAN. La gestion par les domaines ne fonctionnera pas non plus dans la configuration Squid mise en oeuvre ici. Nous nous contenterons donc de travailler avec les IPs.

Ternisien dOuville Guillaume

Juillet 2005

A- 26

Annexe I Procdure dinstallation

Tout notre rseau local, constitu ici d'une unique classe C prive. Le rseau est 172.16.0.0 pour nous.

Mais, ce choix n'est pas limitatif, nous pourrions encore ajouter d'autres membres ce groupe. Notre fichier squidGuard.conf ressemble maintenant ceci : Ternisien dOuville Guillaume Juillet 2005 A- 27

Annexe I Procdure dinstallationdbhome /var/lib/squidguard/db logdir /var/log/squid source LAN { ip 192.168.0.0/24 } acl { default { redirect http://127.0.0.1/cgi-bin/squidGuard.cgi?clientaddr=%a&srcclass=%s&targetclass=%t&url=%u pass none } }

Les "Access Control Lists"Rien n'est encore chang quant aux droits d'accs, toujours rien ne passe. Nous allons maintenant crer une nouvelle ACL pour permettre au LAN de voyager sur le Net, sans aucune restriction pour le moment :

Nous ajoutons une ACL pour le groupe LAN.

Ternisien dOuville Guillaume

Juillet 2005

A- 28

Annexe I Procdure dinstallation

Nous dfinissons maintenant cette ACL de faon laxiste (nous n'avons pas pour l'instant les moyens de faire autre chose que tout ou rien) :

Nous avons maintenant un fichier de configuration qui a cette allure : Ternisien dOuville Guillaume Juillet 2005 A- 29

Annexe I Procdure dinstallation

dbhome /var/lib/squidguard/db logdir /var/log/squid source LAN { ip 192.168.0.0/24 } acl { LAN { pass any redirect http://127.0.0.1/cgibin/squidGuard.cgi?clientaddr=%a&srcclass=%s&targetclass=%t&url=%u }

default { redirect http://127.0.0.1/cgi-bin/squidGuard.cgi?clientaddr=%a&srcclass=%s&targetclass=%t&url=%u pass none } }

Il suffit de relancer Squid et, cette fois-ci, tout le LAN pourra passer sur le web.

VI. Utilisation des logsA) les logsLes logs sont les journaux de bord des logiciels Lemplacement des logs de Squid et SquidGuard est dfinit dans leur ficher de configuration respectif. Dans le cas prsent les logs de squid sont dans /fichier_squid/log et ceux de SquidGuard dans /var/log/squidguard 1) Squid Squid utilise 3 logs : -Cache.log -Access.log -Store.log Le fichier cache.log contient les informations concernant ltat de Squid. Le fichier access.log contient les informations sur les requtes qui ont transit par Squid. Le fichier store.log contient les informations sur les objets stocks en cache. Ternisien dOuville Guillaume Juillet 2005 A- 30

Annexe I Procdure dinstallationVoici une explication de la syntaxe des logs pour le fichier access.log : Une copie valide se trouve dans la cache Pas dans la cache Objet dans le cache mais prim. Squid demande au serveur dorigine si une nouvelle version est disponible, la rponse tant pas de nouvelle version. TCP_REF_FAIL_HIT Objet dans la cache, mais prim. Squid demande une mise a jour, mais nobtient pas de rponse du serveur. Il renvoie alors lancienne version. TCP_REFRESH_MISS Objet dans le cache mais prim. Squid demande une mise a jour quil reoit. TCP_CLIENT_REFRESH Le client envoie une requte avec demande de ne pas utiliser le cache. Squid envoie la requte. TCP_IMS_HIT Le client demande une mise jour, et lobjet est de la cache et est rcent. Squid nenvoie pas la requte. TCP_IMS_MISS Le client demande une mise jour. Squid envoie la requte. TCP_SWAPFAIL Problme de swap. Lobjet semble tre en cache mais nest pas accessible. TCP_DENIED Accs refus TCP_HIT TCP_MISS TCP_REFRESH_HIT

2) SquidGuard SquidGuard utilise un seul fichier log, avec trs peu dinformation.

B) Utilisation des log avec Webmin1) Webalizer Webalizer est un module prt install sur Webmin qui permet de crer des graphiques partir des logs. Nous allons configurer Webalizer pour quil puisse analizer le fichier access.log Dans le module de Webalizer, il faut cliquer sur Ajouter un nouveau fichier logs pour lanalyse

Ternisien dOuville Guillaume

Juillet 2005

A- 31

Annexe I Procdure dinstallationIl suffit ensuite de mettre le lien vers le log, puis de choisir Squid dans le type de logs et enfin de mettre le chemin vers lequel sera cr le rapport. Il ne reste plus qu cliquer sur crer. Votre fichier est maintenant configurer pour Webalizer, cliquez dessus et en bas de la page cliquez sur gnrer le rapport, il ne reste plus qu regarder votre beau rapport de log !

Le rapport contient beaucoup dinformation (cliquez sur le mois pour les voir) 2) SARG SARG (Squid Analysis Report Generator) est un logiciel spcifique pour les logs de Squid. Son module pour Webmin est pr install. Vous pouvez tlcharger le rpm sur le site http://rpmfind.net, la dernire version est la 1.4.1 pour fedora core 3. Une fois installer vous pouvez vous servir du module de Webmin pour crer des rapports de logs. Vous avez juste besoin de configurer les liens vers les log de squid, et la destination du rapport.

Ternisien dOuville Guillaume

Juillet 2005

A- 32

Annexe I Procdure dinstallation

VII. Amliorations possiblesUtilisation dun fichier Pac Pou faciliter lutilisation du proxy ont peut utiliser un fichier de configuration automatique. Cela permet par exemple de dfinir si dans certain cas on passe ou non par le proxy. Dans mon cas je ne veux pas que le rseau local passe par le proxy, je veux juste quil soit utiliser quand on sort sur internet. Voici mon fichier pac : function FindProxyForURL(url, host) { if (isPlainHostName(host)) return DIRECT ; Ternisien dOuville Guillaume Juillet 2005 A- 33

Annexe I Procdure dinstallationelse return PROXY 172.16.0.249:8080 ; DIRECT ; }

IsPlainName(host) Cette fonction retourne vraie si ladresse demande appartient au rseau local. Return DIRECT Spcifie de ne pas passer par le proxy, dans ce cas si on est sur le rseau local on ne passera pas par le proxy. return PROXY 172.16.0.249:8080 ; DIRECT Sinon on passe par le proxy (on donne son adresse ip et son port), si jamais on ne trouve pas le proxy on passe directement.

Dmarrage de Squid au Boot Squid nest pas automatiquement lanc au dmarrage de votre ordinateur. Il y a deux moyens pour lancement automatiquement Squid au dmarrage. -La premire est daller dans Webmin, dans la partie systme. Un onglet vous permet de paramtrer les actions de dmarrage et darrt. Il vous suffit ensuite de slectionner Squid dans la liste et de cliquer sur le bouton activer les slectionns au moment du boot -la seconde mthode consiste faire un script de dmarrage

Blacklist Vous pouvez utiliser une blacklist, gnrs automatiquement par des robots. Vous trouverez cette blacklist sur le site de squidguard (www.squidguard.org/blacklist). Jai cependant eu quelques problmes pour installer cette blacklist, en effet il semblerait que le module Webmin pour squidguard reconnaisse mal certain fichier. Voici ma mthode pour bloquer les urls et les domaines de la blacklist porn . Une fois la blacklist tlcharge dcompressez le dossier porn . Ce dossier contient 3 fichiers : domains, urls, expressions. Nous utiliserons que les deux premiers, en effet certain site non pornographique peuvent contenir des mots contenus dans le fichier expression il serait dommage de les bloquer. Allez ensuite sur webmin dans le module de SquidGuard, crons une nouvelle Destination nomme porno . Dans cette destination ajouter un domaine quelconque, et une url quelconque (cela va forcer le module crer les fichiers dans la base de donne de SquidGuard !). Ouvrez les fichiers nouvellement crs : /home/fichier_proxy/squidguard/lib/porn.destdomainlist /home/fichier_proxy/squidguard/lib/porn.desturllist Il ne vous reste plus cas copier les domaines de la blacklist porn dans le fichier porn.destdomainlist, de mme pour la liste des urls. Ternisien dOuville Guillaume Juillet 2005 A- 34

Annexe I Procdure dinstallationPour finir forcez SquidGuard initialiser sa base de donne avec la commande : /usr/bin/squidguard C all

Limiter taille log Squid gnre chaque requte des logs, ceci devenant de plus en plus volumineux. Pour viter une surcharge (plus il sont lourd plus le systme aura du mal les manier) il faut que ces log soit archiver. Nous pouvons les archiver lorsquils atteignent une taille limite ou par rapport une date. Pour cela Webmin contient un module trs efficace. Allez dans la catgorie systme puis dans le module Log File Rotation.

Ajouter les log de Squid en cliquant sur Add a new log file to rotate. Vous obtenez ceci :

Ternisien dOuville Guillaume

Juillet 2005

A- 35

Annexe I Procdure dinstallation

Ternisien dOuville Guillaume

Juillet 2005

A- 36

Annexe I Procdure dinstallation

Indiquez maintenant ladresse du fichier log, choisissez une rotation des logs a faire toutes les semaines ou si le fichier dpasse une taille de 50 Mo. Faites attention bien slectionner la re-cration du fichier lors de son archivage. Indiquez ensuite le rpertoire ou sera archiv le log.

Diverses fonctions de linux intressante Voici pour finir quelques commandes utiles pour linux : -ps aux |grep squid Permet de voir si squid et squidguard tournent, on verra de plus quel utilisateur lanc les logiciel ainsi que le numro PID. - id Permet davoir le numro UID et GID des utilisateurs.

Ternisien dOuville Guillaume

Juillet 2005

A- 37