142 lines
4.7 KiB
TeX
142 lines
4.7 KiB
TeX
|
% Copyright (c) 2004-2010 Evolix <info@evolix.fr>
|
|||
|
% Permission is granted to copy, distribute and/or modify this document
|
|||
|
% under the terms of the GNU Free Documentation License, Version 1.2
|
|||
|
% or any later version published by the Free Software Foundation;
|
|||
|
% with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.
|
|||
|
% A copy of the license is included at http://www.gcolpart.com/howto/fdl.html
|
|||
|
|
|||
|
\section{SQUID}
|
|||
|
|
|||
|
\subsection{Pr<EFBFBD>sentation}
|
|||
|
|
|||
|
Le logiciel Squid (\url{http://www.squid-cache.org}) est le serveur proxy le plus connu et le plus utilis<69>. Il permet d'op<6F>rer un filtrage sur des flux HTTP et/ou FTP en fonction du contenu qui transite ou des sites consult<6C>es. Il peut <20>tre utile pour acc<63>l<EFBFBD>rer le d<>bit vers les pages d<>j<EFBFBD> consult<6C>es (utilisation du cache) ou encore r<>glementer (ou prot<6F>ger) la naviguation sur Internet. On peut ainsi filtrer en fonction d'extensions de fichiers, de mots cl<63>s, d'URL, etc.\\
|
|||
|
|
|||
|
Squid fonctionne sur toutes les plateformes UNIX, et dispose d'une communaut<75> de d<>veloppeurs mondiale. De nombreux d<>veloppements annexes ont <20>t<EFBFBD> r<>alis<69>s, comme Squid-Guard ou un module Squid pour Webmin.\\
|
|||
|
|
|||
|
\subsection{Installation}
|
|||
|
|
|||
|
Squid est pr<70>sent dans de nombreuses distributions Linux et syst<73>mes
|
|||
|
Unix en tout genre.\\
|
|||
|
|
|||
|
Exemple sous Debian, il suffit d'installer les packages \textit{squid -
|
|||
|
squid-common - squid-client} et optionnelement \textit{squid-cgi}.\\
|
|||
|
|
|||
|
La configuration se fait via le fichier \textit{/etc/squid/squid.conf}.
|
|||
|
|
|||
|
\subsection{Configuration de base}
|
|||
|
|
|||
|
\begin{verbatim}
|
|||
|
# Port d'<27>coute
|
|||
|
http_port 80
|
|||
|
|
|||
|
# Taille du cache
|
|||
|
cache_mem 16 MB
|
|||
|
\end{verbatim}
|
|||
|
|
|||
|
\subsection{Gestion des restrictions}
|
|||
|
|
|||
|
Les restrictions sont op<6F>r<EFBFBD>es sur plusieurs points :
|
|||
|
|
|||
|
\begin{itemize}
|
|||
|
\item un m<>canisme d'ACL (Access Classes Lists) pour restreindre l'acc<63>s au serveur proxy
|
|||
|
\item un m<>canisme d'ACO (Access Classes Operators) qui permettent de restreindre l'acc<63>s <20> certaines URLs
|
|||
|
\end{itemize}
|
|||
|
~\\
|
|||
|
\noindent Exemple d'ACL :
|
|||
|
|
|||
|
\begin{verbatim}
|
|||
|
# on n'autorise que les machines du sous-r<>seau
|
|||
|
acl CLIENTS src 192.168.1.0/255.255.255.0
|
|||
|
http_access allow CLIENTS
|
|||
|
http_access deny all
|
|||
|
|
|||
|
# ports s<>curis<69>s
|
|||
|
acl Safe_ports port 80 443
|
|||
|
http_access deny !Safe_ports
|
|||
|
\end{verbatim}
|
|||
|
~\\
|
|||
|
\noindent Exemple d'ACO :
|
|||
|
|
|||
|
\begin{verbatim}
|
|||
|
acl url_mp3 url_regex -i \.mp3$
|
|||
|
http_access deny url_mp3
|
|||
|
\end{verbatim}
|
|||
|
|
|||
|
\subsection{Authentification}
|
|||
|
|
|||
|
Le logiciel Squid permet de nombreux modes de fonctionnement. Entre autres, il est possible de donner lieu <20> une utilisation authentifi<66>e. Seul un utilisateur dot<6F> d'un login et d'un mot de passe pourra utiliser les ressources de Squid.\\
|
|||
|
|
|||
|
Pour cel<65>, il faut par exemple rajouter dans la configuration :
|
|||
|
|
|||
|
\begin{verbatim}
|
|||
|
acl Users proxy_auth REQUIRED
|
|||
|
http_access deny !Users
|
|||
|
|
|||
|
# choix de la m<>thode, exemple
|
|||
|
authenticate_program /usr/lib/squid/ncsa_auth /usr/lib/squid/passquid
|
|||
|
\end{verbatim}
|
|||
|
|
|||
|
Le choix du mode d'authentification vous appartient, vous avez en effet le choix entre :
|
|||
|
|
|||
|
\begin{itemize}
|
|||
|
\item \textit{ncsa\_auth} qui utilise un fichier d'utilisateurs Squid, remplis par exemple via la commande htpasswd
|
|||
|
\item \textit{smb\_auth} pour utiliser une base Samba
|
|||
|
\item \textit{ldap\_auth} pour utiliser une base LDAP
|
|||
|
\item \textit{pam\_auth} pour utiliser l'authentification PAM
|
|||
|
\end{itemize}
|
|||
|
~\\
|
|||
|
|
|||
|
\subsubsection{Exemple : ncsa\_auth}
|
|||
|
|
|||
|
Dans le cas de \textit{ncsa\_auth}, vous avez donc <20> cr<63>er votre fichier d'utilisateurs :
|
|||
|
|
|||
|
\begin{verbatim}
|
|||
|
Dans squid.conf :
|
|||
|
/usr/lib/squid/ncsa_auth
|
|||
|
|
|||
|
Cr<EFBFBD>ation du fichier d'utilisateurs :
|
|||
|
htpasswd -c /etc/squid/users utilisateur_test motdepasse_test
|
|||
|
|
|||
|
Ce qui donne :
|
|||
|
utilisateur_test:QXgxhYPbn
|
|||
|
\end{verbatim}
|
|||
|
|
|||
|
\subsubsection{Exemple : ldap\_auth}
|
|||
|
|
|||
|
La directive <20> utiliser afin d'activer le support LDAP est :
|
|||
|
|
|||
|
\begin{verbatim}
|
|||
|
acl aclname ldap_auth (((static | dynamic) group) | username) ...
|
|||
|
\end{verbatim}
|
|||
|
|
|||
|
\begin{verbatim}
|
|||
|
Dans squid.conf :
|
|||
|
|
|||
|
# serveur LDAP <20> joindre
|
|||
|
auth_param basic program /usr/lib/squid/squid_ldap_auth -u uid -b
|
|||
|
ou=test,ou=evolix,o=evolix,c=fr -h ldap.evolix.fr -p 389
|
|||
|
|
|||
|
# param<61>tres
|
|||
|
auth_param basic children 5
|
|||
|
auth_param basic realm Squid proxy-caching web server
|
|||
|
|
|||
|
# temps d'authentification
|
|||
|
auth_param basic credentialsttl 2 hours
|
|||
|
\end{verbatim}
|
|||
|
|
|||
|
\subsection{Mod<EFBFBD>le distribu<62>}
|
|||
|
|
|||
|
Il est <20>galement possible de "cascader" plusieurs serveurs cache. Pour se faire, le fichier de configuration squid.conf doit <20>tre configur<75> dans cette optique. Les diff<66>rents serveurs Squid peuvent par la suite communiquer normalement ou via le protocole \textit{ICP}.\\
|
|||
|
~\\
|
|||
|
Exemple :
|
|||
|
|
|||
|
\begin{verbatim}
|
|||
|
cache_peer_domain peer1.domaine.com pper2.domaine.com
|
|||
|
|
|||
|
cache_peer peer.domaine.com parent 80 7 no-query proxy-only
|
|||
|
|
|||
|
neighbor_type_domain peer3.domaine.com parent peer4.domaine.com
|
|||
|
\end{verbatim}
|
|||
|
|
|||
|
Enfin, Squid utilise plusieurs journaux afin de rendre compte des diff<66>rentes/acc<63>s qui ont <20>t<EFBFBD> r<>alis<69>s (access.log etc.).
|