OPNsense - Unable to find specified template VIRUS_FOUND

Petite note suite à l'installation d'une machine OPNsense. Lors de la détection d'un virus/malware avec le service Proxy Web, le message suivant apparaît sur les clients : Unable to find specified template: /tmp/c-icap/templates//virus_scan/en/VIRUS_FOUND. Nous allons voir dans cet article comment résoudre cet incident.

Cause

En regardant le message d'erreur, il est explicite que le service c-icap ne trouve pas le template à renvoyer aux clients du service Proxy Web. En faisant un ls /tmp/c-icap/templates//virus_scan/en le répertoire est vide.

Lorsque l'on regarde le fichier utiliser pour générer la configuration du service c-icap, on retrouve le répertoire vide :

# cat /usr/local/opnsense/service/templates/OPNsense/CICAP/c-icap.conf | grep TemplateDir
TemplateDir /tmp/c-icap/templates/

On peut résoudre le problème en modifiant la directive correctement mais cela va poser un nouveau problème. Lors d'une mise à jour, cette configuration sera de nouveau incorrecte (sauf si une correction est mise en place par l'éditeur).

Nous allons voir comment résoudre cette problématique proprement et sans être impacter par les mises à jours futures.

Prérequis

Pouvoir accéder en shell sur la machine OPNsense.

Procédure

Nous allons créer un script qui sera lancé au démarrage de OPNsense pour modifier les chemins des templates en utilisant les liens symboliques.

1) Se connecter au shell de OPNsense

2) Créer le fichier suivant et saisir le contenu ci-dessous :

Fichier: /usr/local/etc/rc.syshook.d/start/99-custom-icap

#!/bin/sh

sleep 60

rm -rf /tmp/c-icap/templates/virus_scan/en
ln -s /usr/local/share/c_icap/templates/virus_scan/en/ /tmp/c-icap/templates/virus_scan/en

date >> /tmp/custom.log

exit 0

3) Ajouter les autorisations d’exécution au nouveau script :

# chmod +x /usr/local/etc/rc.syshook.d/start/99-custom-icap

4) Redémarrer la machine OPNsense pour vérifier que tout fonctionne correctement

Pour vérifier la bonne exécution du script au démarrage, il est possible de regarder la présence du fichier de log :

# cat /tmp/custom.log
Tue Aug 23 21:56:06 CEST 2022

Pour tester le bon fonctionnement du service, il existe des URLs de tests, en voici un exemple :

 

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *