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 :
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}.\\