Dans cet article nous allons voir comment installer et configurer SquidClamav pour le serveur proxy Squid sous Ubuntu 20.04 / 21.04. Pour finir, nous verrons comment personnaliser les messages de SquidClamav.
Prérequis
Avoir une installation du serveur proxy Squid fonctionnelle et disposer des privilèges root.
Procédure
Installation des dépendances nécessaires :
# apt install gcc make curl c-icap libicapapi-dev libicapapi5 libssl-dev libtool-bin wget clamav-daemon
Téléchargement du module SquidClamav :
# wget https://sourceforge.net/projects/squidclamav/files/latest/download # tar xvzf download # cd squidclamav-7.1/
Configurer la compilation et réaliser l'installation :
# ./configure --with-c-icap="/usr/include/c_icap/" # make # make install # libtool --finish /usr/lib/x86_64-linux-gnu/c_icap/
Modifier le fichier /etc/default/c-icap en remplaçant START=no par :
START=yes
Ajouter à la fin du fichier /etc/c-icap/c-icap.conf la ligne suivante :
Service squidclamav squidclamav.so
Modifier la configuration de Squid pour utiliser le module SquidClamav en ajoutant le contenu suivant :
Fichier /etc/squid/squid.conf :
icap_enable on adaptation_send_client_ip on adaptation_send_username on icap_client_username_header X-Authenticated-User icap_service service_req reqmod_precache bypass=1 icap://127.0.0.1:1344/squidclamav adaptation_access service_req allow all icap_service service_resp respmod_precache bypass=1 icap://127.0.0.1:1344/squidclamav adaptation_access service_resp allow all
Finalement, modifier le fichier suivant /etc/c-icap/squidclamav.conf
Passez la varibable SafeBrowsing à 0.
Commenter la ligne redirect http://proxy.domain.dom/cgi-bin/clwarn.cgi (en ajoutant # au début)
Redémarrer, vérifier et activer les services nécessaires :
# systemctl restart clamav-daemon # systemctl status clamav-daemon # systemctl restart c-icap # systemctl status c-icap # systemctl restart squid # systemctl status squid # systemctl enable clamav-daemon # systemctl enable c-icap # systemctl enable squid
Personnalisation
Dans la configuration du fichier /etc/c-icap/c-icap.conf, il y a deux directives importantes :
# Indique l'emplacement des modèles TemplateDir /usr/share/c_icap/templates/ # Indique la langue des modèles TemplateDefaultLanguage fr
Créer le répertoire /usr/share/c_icap/templates/squidclamav/fr si il n'existe pas (dans le cas ou vous souhaitez avoir les messages en français)
# mkdir /usr/share/c_icap/templates/squidclamav/
# ls -al /usr/share/c_icap/templates/squidclamav/
total 16
drwxr-xr-x 4 root root 4096 Mar 12 11:23 .
drwxr-xr-x 3 root root 4096 Mar 12 00:40 ..
drwxr-xr-x 2 root root 4096 Mar 12 11:19 en
drwxr-xr-x 2 root root 4096 Mar 12 11:48 fr
Le fichier utilisé pour afficher l'alerte en cas de détection d'un virus/malware est le suivant :
/usr/share/c_icap/templates/squidclamav/fr/MALWARE_FOUND
Voici un exemple d'un résultat possible :
Contenu du fichier /usr/share/c_icap/templates/squidclamav/fr/MALWARE_FOUND :
<html> <head> <title>Virus ou navigation non sécurisée détectée!</title> </head> <style type="text/css"> .visu { border:1px solid #C0C0C0; color:#FFFFFF; position: relative; min-width: 13em; max-width: 52em; margin: 4em auto; border: 1px solid ThreeDShadow; border-radius: 10px; padding: 3em; -moz-padding-start: 30px; background-color: #8B0000; } .visu h2, .visu h3, .visu h4 { font-size: 130%; font-family: "times new roman", times, serif; font-style: normal; font-weight: bolder; } a:link, a:visited { color: #FFFFFF; text-decoration: underline; } </style> <body> <div class="visu"> <h1>SquidClamAv: Virus ou navigation non sécurisée détectée!</h1> <p> L'URL demandée <b> %huo </b> contient un virus ou est répertoriée comme suspecte.<br><br> Cette page ne peut pas être affichée ou le fichier ne peut pas être téléchargé. </p> <p> Type de virus ou programme malveillant / pishing: : <b> %mn </b> </p> <p> Pour plus d'informations, contactez votre administrateur système: XXXXXX@adminmalin.fr </p> <hr> <p> Ce message est généré par le service C-ICAP: <b> %iu </b> </p> </div> </body> </html>