Nous allons décrire et résoudre les erreurs les plus courantes qui apparaissent lors de l'utilisation de l'antivirus ClamAV (clamscan, clamdscan et freshclam).
Les erreurs de compilation de ClamAV à partir de ses sources en sont pas abordés ici.
clamdscan "Can't open file or directory ERROR"
Lorsque vous scannez des fichiers ou des répertoires il est possible que certains d'entre eux provoquent cette erreur. Les fichiers correspondants ne sont donc pas scannés et outrepassent la vérification de la présence de malwares.
Cela peut provenir des droits des répertoires ou des fichiers, il vous faut donc vérifier que clamdscan a bien les droits en lecture et écriture sur ces dossiers et fichiers.
Mais cela peut aussi provenir d'apparmor. La solution est de mettre clamd dans le mode "complain" d'apparmor. Voici la solution pour Debian :
apt-get install apparmor-utils
aa-complain /usr/sbin/clamd
clamdscan "File path check failure: Permission denied. ERROR"
Pour corriger cette erreur, vous pouvez tester les 3 solutions suivantes :
- Mettre les fichiers et les répertoires scannés en droit 666 : chmod 666 *
- Utiliser clamdscan avec l'option --fdpass : clamdscan --fdpass
- Utiliser clamdscan avec l'option --stream : clamdscan --stream
"Ignoring mirror (due to previous errors)" dans les logs de freshclam
Lorsque ce message d'erreur apparaît, c'est que vous n'arrivez pas à télécharger les bases de données de signatures de l'antivirus.
Ce message correspond à une version antérieure à ClamAV 0.102.
A partir de la version 0.102, le code de la partie réseau de freshclam a été radicalement changé. Par conséquent, pour résoudre cette erreur, il est nécessaire de mettre à jour votre version de ClamAV.
"nonblock_connect: connect(): fd=5 errno=101: Network is unreachable" et "WARNING: getpatch: Can't download daily-xxx.cdiff from db.local.clamav.net" dans les logs de freshclam
Ce message indique une impossibilité de se connecter aux serveurs de ClamAV pour télécharger les bases de données de signatures de l'antivirus.
- Soit votre serveur a un problème de connexion à Internet.
- Soit vous utilisez un proxy (transparent ou pas). Freshclam préfère une connexion directe aux serveurs de ClamAV est supporte très mal les connexions par Proxy. Surtout si le Proxy modifie les propriétés de la connexion HTTP(S), par exemple en changeant le User-Agent.
- Soit vous utilisez une très vielle version de l'antivirus ClamAV, et il est impératif de le mettre à jour.
"WARNING: Can't read main.cvd header from db.local.clamav.net (IP: )" dans les logs de freshclam
Vous n'arrivez pas à télécharger les bases de données de signatures de l'antivirus.
Il est possible que le fichier mirrors.dat soit saturé. Ce fichier sert à blacklister des serveurs miroirs de ClamAV qui sont en erreur. Si vous avez eu une déconnexion Internet, il est possible que freshclam ait blacklisté tous les mirroirs et qu'il n'y en ait plus de disponible.
La solution est donc de supprime ce fichier (par exemple /var/lib/clamav/mirrors.dat pour Debian) et de relancer freshclam.
A noter que depuis les versions 0.100 ce problème n'existe plus. Donc si vous voyez ce type d'erreur, c'est qu'il est important de mettre à jour ClamAV
"WARNING: Message: SSL peer certificate or SSH remote key was not OK" dans les logs de freshclam
Vous n'arrivez pas à mettre à jour les bases de données de signatures de l'antivirus et ce message apparaît.
Il est possible que votre ordinateur ne soit par à l'heure. Mettez à jour la date et l'heure en NTP.
"ERROR: This tool requires libclamav with functionality level XXX or higher (current f-level: XXX)"
Il est possible que vous ayez 2 versions différentes de libclamav installées sur votre système. Cela peut être 2 versions fournies par votre système d'exploitation. Il suffit donc de supprimer la plus ancienne. Cela peut aussi être un mix entre une installation par les codes sources de ClamAV, et une version fournie par le système d'exploitation. Il faut toujours veiller à n'avoir qu'une seule version de libclamav installée sur votre système.
"LibClamAV Error: yyerror()" et "LibClamAV Warning: cli_loadyara: failed to parse or load 1 yara rules from file"
ClamAV supporte des signatures antivirales au format YARA. Mais le moteur d'interprétation Yara utilisé est spécifique et interne à ClamAV. Et ce moteur yara n'est pas 100% compatible avec l'interpréteur officier Yara.
Certaines règles YARA ne fonctionnent donc pas totalement avec ClamAV.
Pour résoudre ce problème :
- Soit vous ré-écrivez la règle YARA qui pose problème pour la rendre compatible avec ClamAV.
- Soit vous espérez que dans un futur proche le moteur Yara de ClamAV soit amélioré.
Les erreurs "LibClamAV Error" comme par exemple "LibClamAV Error: [scan_biff_for_xlm_macros] Unexpected state value 4" à l'utilisation ClamAV.
Ces erreurs sont très spécifiques et peuvent mettre en évidence un problème de scan de données mal gérées par ClamAV. Nous conseillons donc de remonter l'information aux équipes de développement de ClamAV sur le
Github officiel.
"LibClamAV Warning: fmap: map allocation failed", "LibClamAV Error: CRITICAL: fmap() failed" et "Can't allocate memory ERROR" à l'utilisation ClamAV
Ce message d'erreur indique généralement un manque de mémoire RAM lors d'un scan. Donc :
- Soit vous n'avez pas assez de mémoire, il serait bon d’augmenter la mémoire RAM de votre serveur ou VPS.
- Soit vous êtes en train de scanner un objet trop gros. Pour éviter cela, mettez des limites à la taille des objets scannés : --max-filesize ou --max-scansize en ligne de commande
- Soit vous scannez des fichiers ou répertoires systèmes, comme par exemple le répertoire /proc sous Linux. Ceci est interdit, ne le faites pas.
"Segmentation fault (core dumped)" à l'utilisation de ClamAV
Ce message d'erreur est certainement le plus important de tous. Il indique un plantage de l'antivirus qui est tellement violent que le système d'exploitation a mis un terme au processus ClamAV.
Mais le message est trop généraliste et est la conséquences ne nombreuses causes possibles, comme par exemple la configuration de votre système d'exploitation, les ressources disponibles (RAM) ou encore l'objet que vous tentez de scanner avec ClamAV (trop gros, ou fichier système de /proc par exemple).
Il n'est donc pas possible de déterminer la cause exacte de ce plantage et la meilleure solution est d'ouvrir un ticket de bug aux équipes de développement de ClamAV sur leur
Github officiel.
TCP: No tcp AF_INET/AF_INET6 SOCK_STREAM socket received from systemd
Le démon ClamAV est en exécution, mais le port TCP 3310 n'est pas ouvert : la commande "lsof -i|grep clamd" ne retourne rien.
Au démarrage de clamd, le message d'erreur suivant apparait : "TCP: No tcp AF_INET/AF_INET6 SOCK_STREAM socket received from systemd".
La solution est de créer le répertoire /etc/systemd/system/clamav-daemon.socket.d/ puis d'y mettre le fichier /etc/systemd/system/clamav-daemon.socket.d/extend.conf :
cat /etc/systemd/system/clamav-daemon.socket.d/extend.conf
[Socket]
SocketUser=clamav
ListenStream=3310
Puis de redémarrer votre serveur.
La politique de fin de vie (End-Of-Life ou EOL) de l'antivirus ClamAV
Depuis le 15 décembre 2024, seules
les versions 1.0.x, 1.3.x et 1.4.x de l'antivirus ClamAV sont supportées et maintenues.
Si vous avez une version antérieure, ClamAV n'est plus censé fonctionner car les récentes bases de données de signatures ne sont plus compatibles avec ces anciennes versions. Donc soit vous utilisez nos
signatures additionnels pour ClamAV, en version Professionnelles minimum, soit vous mettez à jour d'urgence votre antivirus ClamAV. Soit les deux, c'est encore mieux !
Pour aller un peu plus loin, je vous conseille de lire notre article à propos des
vieilles versions de l'antivirus ClamAV.
L'antivirus ClamWin ne fonctionne plus
ClamWin est un portage Windows de l'antivirus ClamAV mais réalisé par un tiers. Donc ClamWin n'est pas supporté ni développé par les équipes de Cisco / Sourcefire. Malheureusement, cet antivirus pour Windows n'est plus développé par son propriétaire et sa dernière version disponible est la version 0.103.2.1. Comme vu au paragraphe précédent les version 0.103 ne sont plus supportées par ClamAV, donc ClamAV a invalidé le téléchargement des bases de données de signatures pour ClamWin. Ce qui le rend totalement inefficace, il est donc déconseillé d'utiliser ClamWin pour une utilisation en entreprise ou dans un environnement de production.
La solution que nous conseillons est de
télécharger la version officielle de ClamAV pour Windows. Une version 32bits et une autre 64bits sont disponibles. Certes, cette version n'a pas d'interface graphique GUI, mais la ligne de commande de ClamAV n'est pas très compliquée et quelques simples fichiers BAT seront nécessaires pour automatiser le scan de votre disque dur.
Il existe aussi un
portage non officiel de l'antivirus ClamAV pour Windows qui est intéressant car il fonctionne avec de très vieux Windows (WinNT et Windows 98 !). Mais cela reste de la ligne de commande, et il n'y a pas d'interface graphique.
Erreur 426 avec les signatures de SecuriteInfo.com
Si vous obtenez une erreur 426 à l'utilisation de freshclam pour télécharger
nos signatures antivirales, c'est que vous avez un compte gratuit et un antivirus ClamAV obsolète.
La solution consiste soit à mettre à jour votre installation ClamAV, soit de choisir un abonnement "Professionnel" pour télécharger nos signatures. Soit de faire les deux pour améliorer grandement la détection des malwares par votre installation.
Je n'arrive pas à télécharger securiteinfoold.hdb, ou j'ai des erreurs 'nonblock_recv: recv timing out (30 secs)' ou 'Download failed (28) ... Message: Timeout was reached'
- Pour ClamAV plus vieux que 0.102.2, ajouter "ReceiveTimeout 2400" à votre fichier votre freshclam.conf et relancez le démon freshclam.
- Pour ClamAV 0.102.2 et supérieurs, supprimer ReceiveTimeout de votre fichier freshclam.conf et relancez le démon freshclam.
Mettre à jour votre version de ClamAV
Comme vous le voyez, la plupart des problèmes se résolvent en mettant à jour l'antivirus ClamAV à la dernière version connue. Il y a plusieurs méthodes pour faire cela, a vous de choisir celle qui correspond à votre environnement.
- Si vous avez recompilé ClamAV à partir de ses sources, il suffit de prendre la dernière version des fichiers sources de ClamAV et de le recompiler dans votre environnement. Attention néanmoins à la version de votre système d'exploitation : si vous utilisez un système d'exploitation trop ancien, il est possible que la dernière version de ClamAV provoque des erreurs de compilation.
- Si vous avez une version exécutable de ClamAV, comme par exemple avec ClamAV Windows, il suffit d'installer le package contenant la nouvelle version de l'exécutable. C'est la solution de la plus simple !
- Si c'est votre système d'exploitation qui vous a fournit l'antivirus ClamAV, comme c'est le cas pour la grande majorité des environnements Linux (Ubuntu, Debian, Red Hat, CentOS...), alors il est impératif de mettre à jour votre système d'exploitation. Si cette mise à jour est impossible car trop contraignante, alors nous conseillons de supprimer le package ClamAV de votre système d'exploitation et d'installer puis recompiler ClamAV à partir des sources. Mais comme vu précédemment, si votre système d'exploitation trop vieux, ClamAV pourrait ne pas recompiler.
Pour aller plus loin, nous vous conseillons la lecture de notre article
Que risque-t-on a utiliser une veille version de l'antivirus ClamAV ?
Le support SecuriteInfo.com
Si vous avez des besoins spécifiques concernant ClamAV, comme par exemple un contrat de maintenance, un support à la compilation ou une veille technologique, n'hésitez pas à
nous contacter et nous expliquer vos besoins. Nous serons heureux de répondre à vos besoins de protection antivirale avec ClamAV.
Le support officiel de ClamAV
Si vous avez d'autres messages d'erreurs, ou si vous souhaitez un support direct avec les équipes de développement ClamAV, vous avez deux possibilités :
- Soit vous vous inscrivez sur la liste de diffusion officielle (en anglais uniquement) et vous pouvez ensuite poser votre question par email. La communauté et certains des développeurs de ClamAV vous répondrons sur cette liste.
- Soit vous créez un ticket sur leur Github officiel. Mais pour cela vous devez être développeur car vous devrez apporter beaucoup d’éléments techniques à votre ticket. Ce n'est pas pour le grand public.
Le saviez vous ?
SecuriteInfo.com met à disposition des
signatures antivirales additionnelles pour l'antivirus Clamav. Cela permet d'augmenter énormément la détection des malwares et des spams.
Note : ClamAV est une marque déposée par Cisco
Tags
ANTIVIRUS
CLAMAV
LINUX
WINDOWS
MACOS
Inscription à notre lettre d'information
Inscrivez-vous à notre
lettre d'information pour vous tenir au courant de nos actualités et de nos dernières trouvailles.