Dans cet article nous allons voir comment installer et configurer SquidClamav pour le serveur proxy Squid sous Ubuntu 20.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 à 1.
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>