Accueil

ClamAV : Antivirus Open-Source pour Linux

Security
Difficulte: Beginner
4 min de lecture

Tutoriel détaillé pour installer et configurer ClamAV, un antivirus open-source, afin de protéger votre système contre les malwares.

Retour aux tutoriels

L'essentiel

  • ClamAV se décompose en deux services distincts : clamav-freshclam, qui télécharge et maintient la base de signatures, et clamav-daemon, qui garde le moteur résident en mémoire pour des scans rapides.
  • Avant la première mise à jour manuelle, il faut systemctl stop clamav-freshclam, lancer freshclam à la main, puis redémarrer les deux services. Sans base de signatures à jour, le moteur ne sert à rien.
  • Le scan manuel se fait avec clamscan, en récursif via -r. Les options qui comptent en production sont --infected (n'affiche que les détections), --move= (quarantaine) et -l (journal du rapport).
  • --remove supprime le fichier infecté immédiatement et sans retour possible. Sur un serveur, --move=/var/quarantine/clamav est le choix raisonnable : les faux positifs existent et une quarantaine reste réversible.
  • L'automatisation passe par un script dans /etc/cron.weekly/ rendu exécutable avec chmod +x, en excluant /sys, /proc et /dev. Un scan complet est très gourmand en I/O et en CPU : à planifier hors des heures de production.
Qu'est-ce que ClamAV ?
ClamAV est un moteur antivirus open-source conçu pour détecter les chevaux de Troie, les virus, les logiciels malveillants et autres menaces. C'est une solution de sécurité populaire pour les serveurs de messagerie, les passerelles web et l'analyse de fichiers sur les systèmes Linux.

Pourquoi Utiliser ClamAV ?

  • Open-Source et Gratuit : Une solution de sécurité accessible sans coût de licence.
  • Multi-plateforme : Fonctionne sur Linux, Windows et macOS.
  • Flexibilité : Peut être utilisé en ligne de commande, en tant que démon, ou intégré à d'autres applications (serveurs mail, proxys).
  • Base de données de signatures à jour : La communauté maintient une base de données de menaces régulièrement mise à jour.

Prérequis

  • Un serveur Linux (Ubuntu/Debian, CentOS/RHEL, etc.).
  • Accès root ou privilèges sudo.

Installation

Étape 1 : Installer les paquets

# Sur Debian / Ubuntu
sudo apt-get update
sudo apt-get install -y clamav clamav-daemon

# Sur CentOS / RHEL (nécessite le dépôt EPEL)
sudo yum install -y epel-release
sudo yum install -y clamav-server clamav-data clamav-update clamav-filesystem clamav clamav-server-systemd

Étape 2 : Mettre à jour la base de signatures virales

Avant toute chose, il faut télécharger la dernière base de données de signatures. Le service `freshclam` s'en charge.

# Arrêter le service pour la première mise à jour manuelle
sudo systemctl stop clamav-freshclam

# Lancer la mise à jour manuellement (peut prendre quelques minutes)
sudo freshclam

# Redémarrer les services
sudo systemctl start clamav-freshclam
sudo systemctl start clamav-daemon

Vérifiez que les services sont bien actifs :

sudo systemctl status clamav-freshclam
sudo systemctl status clamav-daemon
Prêt à scanner !
ClamAV est installé et sa base de données est à jour. Le démon `clamav-daemon` tourne en arrière-plan pour des scans rapides et `clamav-freshclam` mettra à jour les signatures automatiquement.

Utilisation en ligne de commande

L'outil principal pour lancer un scan manuel est clamscan.

Scanner un fichier

clamscan mon_fichier.zip

Scanner un répertoire de manière récursive

# -r pour récursif
clamscan -r /home/utilisateur

Options utiles

  • --infected : N'affiche que les fichiers infectés.
  • --remove : Supprime directement les fichiers infectés (à utiliser avec prudence !).
  • --move=/repertoire/quarantaine : Déplace les fichiers infectés dans un répertoire de quarantaine.
  • -l /var/log/clamav_scan.log : Enregistre le rapport de scan dans un fichier de log.

Exemple de scan complet et sûr

La commande suivante scanne tout le système, ne montre que les fichiers infectés, les déplace en quarantaine et enregistre un rapport.

sudo clamscan -r --infected --move=/var/quarantine/clamav / -l /var/log/clamav/scan_manuel.log

Automatisation avec Cron

Il est indispensable d'automatiser les scans. Voici comment programmer un scan hebdomadaire avec cron.

sudo nano /etc/cron.weekly/clamav_scan

Ajoutez le contenu suivant et rendez le fichier exécutable :

#!/bin/bash
LOG_FILE="/var/log/clamav/weekly_scan_$(date +\%Y-\%m-\%d).log"
QUARANTINE_DIR="/var/quarantine/clamav"

mkdir -p $QUARANTINE_DIR

# Scan du système de fichiers, en excluant quelques répertoires systèmes
clamscan -r --infected --move=$QUARANTINE_DIR \
    --exclude-dir="^/sys" --exclude-dir="^/proc" --exclude-dir="^/dev" \
    / > $LOG_FILE 2>&1
sudo chmod +x /etc/cron.weekly/clamav_scan
Impact sur les performances
Un scan complet du système de fichiers peut être très intensif en termes d'I/O et de CPU. Planifiez-le pendant les heures de faible activité.

Conclusion

ClamAV est une solution antivirus robuste et flexible pour les environnements Linux. Son installation est simple, et son utilisation, que ce soit manuellement ou via une automatisation cron, permet d'ajouter une couche de sécurité essentielle à vos serveurs. N'oubliez jamais que la sécurité est une question de défense en profondeur : un antivirus est un outil parmi d'autres (pare-feu, mises à jour, configuration durcie).

MR

Écrit par

Morgann Riu

Expert en cybersécurité et administration Linux. Je partage mes connaissances à travers des tutoriels gratuits et des formations pour aider les administrateurs systèmes et développeurs à sécuriser leurs infrastructures.

Questions fréquentes

Pourquoi faut-il arrêter clamav-freshclam avant de lancer freshclam à la main ?
Le service et la commande manuelle écrivent au même endroit et posent un verrou sur la base de signatures. Si le service tourne déjà, freshclam lancé en console échoue en signalant que le processus est verrouillé par un autre. On arrête donc le service, on fait la mise à jour initiale, puis on redémarre clamav-freshclam et clamav-daemon.
Faut-il utiliser --remove ou --move sur un serveur de production ?
Utilisez --move vers un répertoire de quarantaine comme /var/quarantine/clamav. ClamAV produit des faux positifs, en particulier sur les archives et les fichiers compressés, et --remove détruit le fichier sans possibilité de restauration. Avec la quarantaine, vous analysez le rapport à froid et vous restaurez ce qui doit l'être.
Pourquoi exclure /sys, /proc et /dev du scan ?
Ce sont des pseudo-systèmes de fichiers exposés par le noyau : leur contenu n'existe pas sur disque, il est généré à la volée. Les scanner ne détecte rien, gaspille du temps CPU et peut bloquer sur certains fichiers spéciaux. D'où les options --exclude-dir="^/sys" --exclude-dir="^/proc" --exclude-dir="^/dev" dans le script hebdomadaire.
Le scan complet met le serveur à genoux, comment limiter l'impact ?
Un clamscan -r / lit l'intégralité du système de fichiers et sature les I/O comme le CPU. Planifiez-le pendant les heures creuses via /etc/cron.weekly/, restreignez le périmètre aux répertoires réellement exposés plutôt qu'à la racine, et gardez les exclusions des pseudo-systèmes de fichiers. Le démon clamav-daemon existe justement pour les scans ponctuels rapides, puisqu'il garde les signatures chargées en mémoire.
Comment vérifier que ClamAV est réellement opérationnel ?
Contrôlez les deux services avec systemctl status clamav-freshclam et systemctl status clamav-daemon : les deux doivent être actifs. Le premier garantit que les signatures continuent de se mettre à jour automatiquement, le second que le moteur résident répond. Un scan de test sur un fichier isolé avec clamscan mon_fichier.zip confirme que la base est bien chargée.

Partager ce tutoriel

Cet article vous a plu ?

Cet article vous a-t-il été utile ?

Merci pour votre retour !

Commentaires

Recommandé pour vous

Article de fond sur le sujet

Checklist Sécurité Linux

30 points essentiels pour sécuriser un serveur Linux. Recevez aussi les nouveaux tutoriels par email.

Pas de spam. Désabonnement en 1 clic.