Vous êtes sur la page 1sur 30

SQUID

Contrlez et acclrez le surf

Association LOLITA
Logiciels Libres Tahiti & ses les.
Prsentation de SQUID
Proxy libre pour Unix et Linux...
Prs entation entirement ralis avec des Log iciels libres .
Jonas FERNANDEZ SHARK EURL MAKO

http://www.shark.pf - info@shark.pf

Quest ce quun proxy ?

Ce type de logiciel est utilis dans des entreprises et


des tablissements scolaires. Il sert contrler les
accs et les sites visits et le trafic sortant en gnral.
On peut en faire un systme de contrle parental bien
quil ne soit pas exactement fait pour cela.
Il permet de veiller ce que les utilisateurs dInternet
ne frquentent pas des sites tendance illgale ou
non-productif : pornographique, pdophile, voyance en
ligne, Chat, sites de rencontre, etc.
De plus, si une machine met des informations via un
programme malveillant par exemple, le proxy permettra
de sen apercevoir.

Monoposte ou serveur ?

Squid peut tre utilis en monoposte, mais il


nest pas dun grand intrt dans ce cas.
Cest un logiciel serveur. A ce titre il permet
de centraliser les connexions internet.
Ainsi sur un rseau comportant un routeur,
vous pouvez configurer une machine comme
proxy, faire pointer tous les accs internet
vers cette machine et en faire lintermdiaire
oblig entre le client et le routeur.

Serveur Proxy.

Parce quun croquis vaut mieux quun discours

On peut obliger les machines passer par le proxy et


bloquer internet celles qui ne le feraient pas.

Simplicit dapprentissage

Pour vous donner un ordre dide, jai install et rgl


les paramtres de squid avec la seule aide de quelques
documents disponibles sur internet.
Jai commenc rdiger cette prsentation environ dix
jours aprs linstallation.
Ce propos vous permet dapprcier la facilit
dapprentissage de ce produit. Certes je suis
informaticien, mais je suis persuad que avec un
minimum dassistance et un minimum dexprience, on
peut se dbrouiller.

SQUID ...

Comme tout serveur proxy sophistiqu, squid permet de :

Centraliser les accs internet,

Bloquer certains accs

Par adresses IP ou plages dadresses,

Par noms dutilisateurs,

Par procdure dauthentification.

Bloquer des URL de sites en particulier.


Enregistrer les accs des utilisateurs aux sites quils ont
visits.

Le besoin

Une entreprise salarie des employs pour une certaine


tche. Par forcment pour passer des heures sur internet.
Un lyce peut donner accs internet des lves des
fins de recherche.
Si dans une entreprise, ou dans un Centre de Documentation scolaire, quelquun joue en rseau ou visite des
sites tels que ceux du genre cits prcdemment, la
connexion internet mise gratuitement disposition de lutilisateur est mal employe.
Un contrle minimum est donc ncessaire.

Pr-requis

En gnral, un vielle machine peut faire laffaire.


Par exemple il est facile de trouver un vieux
pentium III avec un disque de 10 Go et une RAM
de 128 Mo.
En production il sera souhaitable davoir un miroir
disque avec un contrleur SCSI ou SATA.
Squid va mettre en cache des tlchargements afin
dviter de les refaire chaque demande. Suivant
le volume des fichiers rcuprs il faudra adapter le
volume des partitions. (voir ci-aprs)

Proposition de
partitionnement

Il sagit dexemples adapts aux tablissements scolaires la


source est ci-dessous :
http://stargate.ac-nancymetz.fr/linux/cache/configuration/configuration.htm

La partition /var devra tre dau moins 500 Mo

Il faudra crer une partition ddie au cache dau moins 1 Go.

Le swap devra tre le double de la mmoire vive.

Tout ceci est adaptable en fonction du nombre dutilisateurs


simultans.

Linstallation

Squid peut tre tlcharg sur internet sous la forme de


source tar.gz, de rpm ou autre.
Il est possible quil soit compris dans les CD de votre
distribution Linux favorite.
Pour linstallation, il y a une mthode par type de
paquetage. On pourrait faire une prsentation rien que
sur les installation dapplication.
Travaillant avec Fedora Core 4, le paquetage tait
inclus dans ma distribution, jai juste eu le
slectionner pendant linstallation puis le mettre jour
avec yum. #yum -y update squid*

Configuration trs simple

Squid a un fichier de configuration :


/etc/squid/squid.conf .
Les paramtres par dfaut lui permettent de fonctionner, mais pas encore de bloquer.
Le fichier squid.conf tient sur plusieurs pages, pourtant, bien que paraissant barbare, les rglages sont
assez simple. En cas de besoin, on trouve toujours de
laide sur internet et it is not forbiden to RTFM, ce
qui se traduit gentiment par la doc est ton amie.
Je passe dans les pages suivantes quelques paramtre de squid.

Configuration de base

La plupart des paramtres de squid doivent rester


par dfaut.
Vous devez changer uniquement ce dont vous
avez besoin.
Le fichier squid.conf est trs bien comment,
mme avec des rudiments danglais on peut sen
tirer et obtenir un rsultat trs encourageant. Mon
anglais est assez rudimentaire et jy suis arriv.

Configuration de base
Port http

Votre serveur proxy a une adresse ou un nom, mais quel


port allez-vous utiliser.
# TAG: http_port
#
Usage: port
#
hostname:port
#
1.2.3.4:port
exemple :
#Default:
# http_port 3128
http_port 8080

Le port par dfaut est 3128 mais rien ne vous empche de


le modifier. Ici, jai mis 8080 ce nest quun exemple...
A noter, les commentaires sont toujours prcds de #

Configuration de base
cache_dir

Emplacement du cache :

# TAG: cache_dir
#
Usage:
#
cache_dir Type Directory-Name Fs-specific-data [options]
#
You can specify multiple cache_dir lines to spread the
#
cache among different disk partitions.
# [...]
cache_dir ufs /var/spool/squid 100 16 256

Ceci est une machine qui ma servi a faire des tests, ma


configuration nest donc pas optimale. Les chiffres correspondent
la taille disque, aux nombres de rpertoire de 1er et 2eme niveau
pour le stockage. Ce sont les options par dfaut.

Autres options

Options de configuration pour le fonctionnement du


programme : la plupart des options par dfaut font
laffaire...
Les acl qui sont llment le plus amusant dans la
configuration, cest ce qui vous permettra douvrir ou de
fermer des portes votre guise.
Quelques exemples dans quelques pages.

Bloquer / autoriser des IP.

# TAG: http_access

#
Allowing or Denying access based on defined access lists
#
Access to the HTTP port:
#
http_access allow|deny [!]aclname ...
#
[...]
#Default:
# http_access deny all
#[...]
#http_access allow our_networks
acl MAKO src 10.0.0.0/24 <== groupe, Reseau/SM
acl Users proxy_auth REQUIRED <== Authentification requise.
http_access allow localhost <== autorisation machine locale.

Accs par authentification

Paramtre auth_param :

# TAG: auth_param
#
This is used to define parameters for the various authentication
#
schemes supported by Squid.
#
#
format: auth_param scheme parameter [setting]
# [...] (signifie que jai coup quelques lignes)
auth_param basic program /usr/lib/squid/ncsa_auth /etc/squid/users

Fait appel lutilisation du programme ncsa_auth et


ncessite la cration dun fichier de comptes utilisateurs
(users)

Initialisation du fichier
dauthentification

Crer un fichier /etc/squid/users :


# touch /etc/squid/users
Utiliser htpasswd pour remplir ce fichier :
#htpasswd gerard tartanpion
#htpasswd moana p#a@S.s
#htpasswd jean elefantssiphleurs
Vrifier les mots de passe avec ncsa_auth :
/usr/lib/squid/ncsa_auth /etc/squid/users

Authentification.
[root@minitux ~]# htpasswd -b /etc/squid/users gerard tartanpion
Adding password for user gerard
[root@minitux ~]# htpasswd -b /etc/squid/users moana p#a@S.s;W.d
Adding password for user moana
[root@minitux ~]# htpasswd -b /etc/squid/users jean elefantssiphleurs
Adding password for user jean
[root@minitux ~]#
[root@minitux ~]# /usr/lib/squid/ncsa_auth /etc/squid/users
jean elefantssiphleurs
OK
gerard ouaisbof
ERR Wrong password <== ici on voit bien lerreur de mot de passe
moana p#a@S.s
OK
Combinaison de touches CTRL d pour revenir au prompt.

Le rsultat

Moana se trompe plusieurs fois, linvite revient.

Sil essaie sans mot de passe (annuler) il aura un


message explicite : Error cache acces denied.

Le fichier
/etc/squid/users
Les mots de passe sont crypts...
[root@minitux ~]# cat /etc/squid/users
jonas:RWr4aNSWZGQ.c
joto:yKrEJWL5.RtY6
gerard:FkVsVPwPeOHe2
moana:uFXvReS9hiZWE
jean:Vc6n5e1FSL1UU
[root@minitux ~]#

Les acls

On peut interdire laccs des protocoles :


http, SSL, POP, etc...
On peut aussi ninterdire laccs qu certains sites ou certains
domaines via les acl :
acl aclname url_regex [-i] ^http:// ...
http_access deny aclname
Interdire une liste de sites :
acl url_interdites url_regex /etc/squid/denied_url
http_access deny url_interdites

Avec les acl on peut interdire laccs une liste de site


Cependant il existe un produit complmentaire, squid-guard.
Un site de rfrence :
http://www.ac-creteil.fr/reseaux/internet/inet/proxy/Squid/default.htm
Un autre :
http://cri.univ-tlse1.fr/documentations/cache/squidguard.htm

Exemples dACLs

acl caramail dstdomain caramail.lycos.fr


acl url_interdites url_regex "/etc/squid/denied_url"
acl cuisine url_regex cuisine
http_access deny caramail
http_access deny url_interdites
http_access deny cuisine

Jai fait un paquet de 3 interdictions :

Le domaine caramail.lycos.fr

Une liste durl comprise dans le fichier denied_url

Les sites contenant le mot cuisine dans ladresse.

squidGuard

Une parenthse sur ce produit qui est complmentaire


de squid.
Il contient une base de donnes importante permettant
de bloquer de nombreux sites.
Cest un module qui est aussi sous licence GPL.
Ma connaissance en est trs limite pour le moment...
donc je nen dis pas plus.

Dansguardian

Blocage de contenu.
On peut nommer un site nimporte comment et mettre
un contenu sans rapport avec le nom.
Avec Dansguardian, ce genre de surprise est vite
car il permet de bloquer un site en fonction de son
contenu.
Dansguardian est suivi rgulirement et il existe des
paquetages prts installer pour diffrentes
distribution, ce qui le rend plus facilement accessible
que squidguard.

Squid : le cot

Pour un tablissement scolaire ou pour une


entreprise, le cot de mise en place de ce
produit ne sera que celui de la main doeuvre
et celui de la formation. Pour peu que la main
doeuvre soit interne ltablissement, le
cot en est encore rduit.
Squid est un logiciel libre sous licence G.P.L.
Amortissement : Les utilisateurs dinternet
nont dautres choix que dtre productifs,
donc ce cot sera vite amorti.

Administration simplifie

Il existe un excellent produit sous licence


GNU/GPL qui permet de faire de
ladministration de serveur Linux en local ou
distance avec une grande facilit et une
interface graphique agrable.
Il serait souhaitable quil y ait dans les mois
qui viennent une prsentation sur ce produit :
webmin. Je peux vous montrer trs
succinctement quoi ressemble...

Epilogue

Je vous ai donn quelques exemples


permettant de faire des blocages assez srs.
Il existe dautres paramtres. Si vous
recherchez un peu vous trouverez une mine
dinformation sur internet. Certains sites
donnent des informations permettant daller
encore plus loin dans la configuration.
Il existe ce jour un livre un anglais sur
squid aux dition OReilly.

Des liens...

EN VRAC car il y en a beaucoup.

http://igm.univ-mlv.fr/~dr/XPOSE2003/Squid/pr01.html

http://stargate.ac-nancymetz.fr/linux/cache/configuration/configuration.htm
http://www.accreteil.fr/reseaux/internet/inet/proxy/default.htm

http://dansguardian.org/ Pour Dansguardian...

etc...

saisissez squid proxy cache dans votre moteur de


recherche prfr...

Conclusion

La configuration de squid permet de


parfaitement matriser les accs internet.
Elle est relativement logique et finalement
assez simple car il est facile de trouver de
laide.

Merci et bonne soire...

Questions ???