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, lancerfreshclamà 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). --removesupprime le fichier infecté immédiatement et sans retour possible. Sur un serveur,--move=/var/quarantine/clamavest 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 avecchmod +x, en excluant/sys,/procet/dev. Un scan complet est très gourmand en I/O et en CPU : à planifier hors des heures de production.
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
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
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).