squid - LoLiTa

Transcription

squid - LoLiTa
SQUID
Contrôlez et accélérez le surf
Association LOLITA
Logiciels Libres à Tahiti & ses îles.
Présentation de SQUID
Proxy libre pour Unix et Linux...
Prés entation entièrement réalis é avec des Log iciels libres .
Jonas FERNANDEZ – SHARK EURL MAKO
http://www.shark.pf - [email protected]
Qu’est ce qu’un proxy ?
●
●
●
Ce type de logiciel est utilisé dans des entreprises et
des établissements scolaires. Il sert à contrôler les
accès et les sites visités et le trafic sortant en général.
On peut en faire un système de contrôle parental bien
qu’il ne soit pas exactement fait pour cela.
Il permet de veiller à ce que les utilisateurs d’Internet
ne fréquentent pas des sites à tendance illégale ou
non-productif : pornographique, pédophile, 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 s’en apercevoir.
Monoposte ou serveur ?
●
●
●
Squid peut être utilisé en monoposte, mais il
n’est pas d’un grand intérêt dans ce cas.
C’est un logiciel serveur. A ce titre il permet
de centraliser les connexions à internet.
Ainsi sur un réseau comportant un routeur,
vous pouvez configurer une machine comme
proxy, faire pointer tous les accès internet
vers cette machine et en faire l’intermédiaire
obligé entre le client et le routeur.
Serveur Proxy.
●
●
Parce qu’un croquis vaut mieux qu’un discours
On peut obliger les machines à passer par le proxy et
bloquer internet à celles qui ne le feraient pas.
Simplicité d’apprentissage
●
●
●
Pour vous donner un ordre d’idée, j’ai installé et réglé
les paramètres de squid avec la seule aide de quelques
documents disponibles sur internet.
J’ai commencé à rédiger cette présentation environ dix
jours après l’installation.
Ce propos vous permet d’apprécier la facilité
d’apprentissage de ce produit. Certes je suis
informaticien, mais je suis persuadé que avec un
minimum d’assistance et un minimum d’expérience, on
peut se débrouiller.
SQUID ...
●
Comme tout serveur proxy sophistiqué, squid permet de :
●
Centraliser les accès à internet,
●
Bloquer certains accès
●
●
–
Par adresses IP ou plages d’adresses,
–
Par noms d’utilisateurs,
–
Par procédure d’authentification.
Bloquer des URL de sites en particulier.
Enregistrer les accès des utilisateurs aux sites qu’ils ont
visités.
Le besoin
●
●
●
●
Une entreprise salarie des employés pour une certaine
tâche. Par forcément pour passer des heures sur internet.
Un lycée peut donner accès à internet à des élèves à des
fins de recherche.
Si dans une entreprise, ou dans un Centre de Documentation scolaire, quelqu’un joue en réseau ou visite des
sites tels que ceux du genre cités précédemment, la
connexion internet mise gratuitement à disposition de l’utilisateur est mal employée.
Un contrôle minimum est donc nécessaire.
Pré-requis
●
●
●
En général, un vielle machine peut faire l’affaire.
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 d’avoir un miroir
disque avec un contrôleur SCSI ou SATA.
Squid va mettre en cache des téléchargements afin
d’éviter de les refaire à chaque demande. Suivant
le volume des fichiers récupérés il faudra adapter le
volume des partitions. (voir ci-après)
Proposition de
partitionnement
●
Il s’agit d’exemples adaptés aux établissements scolaires la
source est ci-dessous :
http://stargate.ac-nancymetz.fr/linux/cache/configuration/configuration.htm
●
La partition /var devra être d’au moins 500 Mo
●
Il faudra créer une partition dédiée au cache d’au moins 1 Go.
●
Le swap devra être le double de la mémoire vive.
●
Tout ceci est adaptable en fonction du nombre d’utilisateurs
simultanés.
L’installation
●
●
●
●
Squid peut être téléchargé sur internet sous la forme de
source tar.gz, de rpm ou autre.
Il est possible qu’il soit compris dans les CD de votre
distribution Linux favorite.
Pour l’installation, il y a une méthode par type de
paquetage. On pourrait faire une présentation rien que
sur les installation d’application.
Travaillant avec Fedora Core 4, le paquetage était
inclus dans ma distribution, j’ai juste eu à le
sélectionner pendant l’installation puis à le mettre à jour
avec yum. #yum -y update squid*
Configuration très simple
●
●
●
●
Squid a un fichier de configuration :
/etc/squid/squid.conf .
Les paramètres par défaut lui permettent de fonctionner, mais pas encore de bloquer.
Le fichier squid.conf tient sur plusieurs pages, pourtant, bien que paraissant barbare, les réglages sont
assez simple. En cas de besoin, on trouve toujours de
l’aide 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 paramètre de squid.
Configuration de base
●
●
●
La plupart des paramètres de squid doivent rester
par défaut.
Vous devez changer uniquement ce dont vous
avez besoin.
Le fichier squid.conf est très bien commenté,
même avec des rudiments d’anglais on peut s’en
tirer et obtenir un résultat très encourageant. Mon
anglais est assez rudimentaire et j’y 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 défaut est 3128 mais rien ne vous empêche de
le modifier. Ici, j’ai mis 8080 ce n’est qu’un exemple...
A noter, les commentaires sont toujours précédés 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 m’a servi a faire des tests, ma
configuration n’est donc pas optimale. Les chiffres correspondent à
la taille disque, aux nombres de répertoire de 1er et 2eme niveau
pour le stockage. Ce sont les options par défaut.
Autres options
●
●
●
Options de configuration pour le fonctionnement du
programme : la plupart des options par défaut font
l’affaire...
Les acl qui sont l’élément le plus amusant dans la
configuration, c’est ce qui vous permettra d’ouvrir 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.
Accès par authentification
●
Paramètre 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 j’ai coupé quelques lignes)
auth_param basic program /usr/lib/squid/ncsa_auth /etc/squid/users
●
Fait appel à l’utilisation du programme ncsa_auth et
nécessite la création d’un fichier de comptes utilisateurs
(users)
Initialisation du fichier
d’authentification
●
●
●
Créer un fichier /etc/squid/users :
# touch /etc/squid/users
Utiliser htpasswd pour remplir ce fichier :
#htpasswd gerard tartanpion
#htpasswd moana p#[email protected]
#htpasswd jean elefantssiphleurs
Vérifier 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#[email protected];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 l’erreur de mot de passe
moana p#[email protected]
OK
Combinaison de touches CTRL d pour revenir au prompt.
Le résultat
●
Moana se trompe plusieurs fois, l’invite revient.
●
●
●
●
S’il 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 cryptés...
[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 l’accès à des protocoles :
http, SSL, POP, etc...
On peut aussi n’interdire l’accès 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 l’accès à une liste de site
Cependant il existe un produit complémentaire, squid-guard.
Un site de référence :
http://www.ac-creteil.fr/reseaux/internet/inet/proxy/Squid/default.htm
Un autre :
http://cri.univ-tlse1.fr/documentations/cache/squidguard.htm
Exemples d’ACLs
●
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
●
J’ai fait un paquet de 3 interdictions :
●
Le domaine caramail.lycos.fr
●
Une liste d’url comprise dans le fichier denied_url
●
Les sites contenant le mot cuisine dans l’adresse.
squidGuard
●
●
●
●
Une parenthèse sur ce produit qui est complémentaire
de squid.
Il contient une base de données importante permettant
de bloquer de nombreux sites.
C’est un module qui est aussi sous licence GPL.
Ma connaissance en est très limitée pour le moment...
donc je n’en dis pas plus.
Dansguardian
●
●
●
●
Blocage de contenu.
On peut nommer un site n’importe comment et mettre
un contenu sans rapport avec le nom.
Avec Dansguardian, ce genre de surprise est évitée
car il permet de bloquer un site en fonction de son
contenu.
Dansguardian est suivi régulièrement et il existe des
paquetages prêts à installer pour différentes
distribution, ce qui le rend plus facilement accessible
que squidguard.
Squid : le coût
●
●
●
Pour un établissement scolaire ou pour une
entreprise, le coût de mise en place de ce
produit ne sera que celui de la main d’oeuvre
et celui de la formation. Pour peu que la main
d’oeuvre soit interne à l’établissement, le
coût en est encore réduit.
Squid est un logiciel libre sous licence G.P.L.
Amortissement : Les utilisateurs d’internet
n’ont d’autres choix que d’être productifs,
donc ce coût sera vite amorti.
Administration simplifiée
●
●
Il existe un excellent produit sous licence
GNU/GPL qui permet de faire de
l’administration de serveur Linux en local ou
à distance avec une grande facilité et une
interface graphique agréable.
Il serait souhaitable qu’il y ait dans les mois
qui viennent une présentation sur ce produit :
webmin. Je peux vous montrer très
succinctement à quoi çà ressemble...
Epilogue
●
●
●
Je vous ai donné quelques exemples
permettant de faire des blocages assez sûrs.
Il existe d’autres paramètres. Si vous
recherchez un peu vous trouverez une mine
d’information sur internet. Certains sites
donnent des informations permettant d’aller
encore plus loin dans la configuration.
Il existe à ce jour un livre un anglais sur
squid aux édition O’Reilly.
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 préféré...
Conclusion
●
●
La configuration de squid permet de
parfaitement maîtriser les accès internet.
Elle est relativement logique et finalement
assez simple car il est facile de trouver de
l’aide.
●
Merci et bonne soirée...
●
Questions ???