Squid – Installation et configuration

Définition

Les serveurs proxy permettent de sécuriser et d’améliorer l’accès à certaines pages Web en les stockant en cache (ou copie). Ainsi, lorsqu’un navigateur envoie une requête sur la demande d’une page Web qui a été précédemment stockée, la réponse et le temps d’affichage en sont améliorés. L’utilisateur accède plus rapidement au site et ne sature pas le proxy pour sortir. Les serveurs proxy renforcent également la sécurité en filtrant certains contenus Web et les logiciels malveillants.

Filtrage

Le filtrage est appliqué en fonction de la politique de sécurité en place sur le réseau. Ceci permet de bloquer selon une liste noire, les sites considérés comme malveillants et/ou inutiles au contexte de travail de l’entreprise (pornographie … etc)  

Authentification

Afin de limiter l’accès au réseau extérieur, et de renforcer ainsi la sécurité du réseau local, il peut être nécessaire de mettre en place un système d’authentification pour accéder aux ressources extérieures. Ceci est assez dissuasif pour les utilisateurs souhaitant visiter des sites contraires à la charte de leur système d’information. Ils se sentent suivis et restent “sages” dans leurs recherches.

Stockage des Logs

Le stockage, des logs des sites visités et des pages vues, permet à l’administrateur du réseau de redéfinir la politique de sécurité du réseau et/ou d’intervenir auprès d’un utilisateur qui visite fréquemment des sites malveillants ou sans rapport avec l’activité de l’entreprise.

Installation :

Mettre à jour la logithèque:

apt update -y

Installation du proxy Squid :

apt install squid -y

Configuration:

Avant la modification du fichier de configuration, faire une copie de celui-ci.

cp /etc/squid/squid.conf   /etc/squid/squid.conf.old

Ensuite, retirer tous les commentaires du fichier pour une meilleure lisibilité.

vi /etc/squid/squid.conf

Puis une fois dans vi :

:g/^\(#\|$\)/d

le fichier /etc/squid/squid.conf ressemblera à cela :

acl SSL_ports port 443
acl Safe_ports port 80 # http
acl Safe_ports port 21 # ftp
acl Safe_ports port 443 # https
acl Safe_ports port 70 # gopher
acl Safe_ports port 210 # wais
acl Safe_ports port 1025-65535 # unregistered ports
acl Safe_ports port 280 # http-mgmt
acl Safe_ports port 488 # gss-http
acl Safe_ports port 591 # filemaker
acl Safe_ports port 777 # multiling http

acl CONNECT method CONNECT
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access allow localhost manager
http_access deny manager
http_access allow localhost
http_access deny all
http_port 3128
coredump_dir /var/spool/squid
refresh_pattern ^ftp: 1440 20% 10080
refresh_pattern ^gopher: 1440 0% 1440
refresh_pattern -i (/cgi-bin/|\?) 0 0% 0
refresh_pattern . 0 20% 4320

Explications :

http_port  écoute sur toutes les interfaces réseau sur le port 3128
coredump_dir  indique le répertoire pour les fichiers d’erreur.
refresh_pattern  précisent les règles qui établissent si un fichier est “frais” ou “périmé”. Un fichier “périmé” est supprimé du cache. laissez les règles par défaut.
refresh_pattern ne contrôle le cache disque qu'indirectement. Il aide Squid à décider si une requête donnée peut ou non être un mise de cache ou doit être traitée comme une erreur. Les paramètres libéraux augmentent votre taux de réponse du cache mais augmentent également les chances que les utilisateurs reçoivent une réponse périmée. Les paramètres conservateurs, par contre, diminuent les taux de réussite et les réponses désuètes.
visible_hostname : définit le nom du serveur squid
Gopher est assez rares de nos jours. Squid connaît aussi WAIS et whois, mais ceux-ci sont encore plus obscurs.

Apres configuration pour un usage simple, sans squidguard ni authentification :

# mise en place d'un proxy server# Config du proxy parent avec authentification
     cache_peer 192.168.20.100 parent 8080 0 default no-query login=mayachi:3SqEvRjg

# règle d'autorisation pour notre réseaux booktic
     never_direct allow all

# nom spécial utilisé dans les logs d'erreur
     visible_hostname squid_mous

# fourni l'e mail de l'admin en cas d'arrêt du serveur
     cache_mgr mustapha@ayachi.ovh

# squid ajoute l'ip dans la requête http
     forwarded_for off

# avoir les messages d'erreur en francais
     error_directory /usr/share/squid/errors/French
# le tag acl qui permet de définir un contrôle d'accès.
     acl monreseaux src 172.16.0.0/8
     acl SSL_ports port 443
     acl Safe_ports port 80       # http
     acl Safe_ports port 21       # ftp
     acl Safe_ports port 443      # https

     acl CONNECT method CONNECT
#donne l'autorisation d'accés au Web au machine appartenant au 172.16.0.0/8       http_access allow monreseaux
     http_access deny CONNECT !SSL_ports
     http_access deny !Safe_ports
     http_access deny all

# Port d'écoute
     http_port 3128

# mémoire alloué à squid
     cache_mem 50 MB

# gestion de fichiers :
     coredump_dir /var/spool/squid# tag pour la gestion du rafraichissement des objets en cache.     refresh_pattern ^ftp:        1440 20%  10080
     refresh_pattern -i (/cgi-bin/|\?) 0  0%   0
     refresh_pattern .            0    20%  4320

Pour tous les utilisateurs du réseaux local qui voudront aller surfer, ou bien toutes machine qui souhaiterai faire une requette http,https ou ftp devra passer par le proxy.

Donc une configuration sera requise sur les navigateurs , apt , proxy windows…

Référence :

http://www.squid-cache.org/Doc/

http://etutorials.org/Server+Administration/Squid.+The+definitive+guide/Chapter+1.+Introduction/

http://linux.crdp.ac-caen.fr/linux_cdr/x177.html

Leave a Reply