Aujourd'hui, nous examinons le logiciel antivirus ClamAV et comment l'utiliser pour protéger votre serveur ou votre bureau. Je vais vous montrer comment configurer ClamAV pour analyser quotidiennement tous les fichiers du système, du site Web et des e-mails et vous avertir par e-mail en cas de détection d'un virus. Pour ceux qui ne connaissent pas ClamAV, ClamAV est une solution logicielle antivirus open source disponible sur toutes les distributions Linux. L'une des exigences de ce guide est que votre serveur dispose déjà d'un service de messagerie fonctionnel.
Ce tutoriel fonctionne bien sur Debian systèmes, mais doit être compatible avec Ubuntu systèmes également.
Installation et configuration
Tout d'abord, nous exécutons la commande pour installer Clamav et un outil pour envoyer des notifications par e-mail.
apt-get update && apt-get install clamav clamav-freshclam heirloom-mailx
Assurez-vous que la définition de virus sera mise à jour avec la commande :
service ClamAV-freshclam start
Par défaut, ClamAV vérifiera les nouvelles définitions de virus toutes les heures. Si vous souhaitez modifier ce paramètre, vous pouvez modifier le fichier /etc/clamav/freshclam.conf.
nano /etc/clamav/freshclam.conf
Et modifiez la ligne suivante :
# Check for new database 24 times a day Checks 24
à
# Check for new database 1 times a day Checks 1
dans ce cas le contrôle sera effectué, une seule fois par jour. Je vous suggère de partir 24 fois par jour.
Pour faire une mise à jour manuelle des définitions de virus, vous pouvez exécuter :
freshclam -v
Activer la notification et planifier l'analyse
Dans le script suivant, modifiez la variable DIRTOSCAN pour spécifier les répertoires que vous souhaitez analyser.
Nous créons le fichier /root/clamscan_daily.sh
nano /root/clamscan_daily.sh
et nous collons le code suivant :
#!/bin/bash LOGFILE="/var/log/clamav/clamav-$(date +'%Y-%m-%d').log"; EMAIL_MSG="Please see the log file attached."; EMAIL_FROM="[email protected]"; EMAIL_TO="[email protected]"; DIRTOSCAN="/var/www /var/vmail"; for S in ${DIRTOSCAN}; do DIRSIZE=$(du -sh "$S" 2>/dev/null | cut -f1); echo "Starting a daily scan of "$S" directory. Amount of data to be scanned is "$DIRSIZE"."; clamscan -ri "$S" >> "$LOGFILE"; # get the value of "Infected lines" MALWARE=$(tail "$LOGFILE"|grep Infected|cut -d" " -f3); # if the value is not equal to zero, send an email with the log file attached if [ "$MALWARE" -ne "0" ];then # using heirloom-mailx below echo "$EMAIL_MSG"|mail -a "$LOGFILE" -s "Malware Found" -r "$EMAIL_FROM" "$EMAIL_TO"; fi done exit 0
Vous pouvez modifier les deux variables EMAIL_FROM et EMAIL_TO pour refléter les adresses e-mail souhaitées et modifier la liste des répertoires à analyser dans la variable DIRTOSCAN.
Enregistrez le fichier avec ( ctrl+o ) et modifiez l'autorisation comme suit :
chmod 0755 /root/clamscan_daily.sh
Activez maintenant l'exécution quotidienne du script en créant un lien symbolique dans le répertoire /etc/cron.daily/ :
ln /root/clamscan_daily.sh /etc/cron.daily/clamscan_daily
Vous devriez maintenant pouvoir recevoir une notification par e-mail une fois par jour en cas de virus ou de logiciel malveillant dans vos fichiers de messagerie ou vos sites Web. ClamAV analyse également le contenu des fichiers PHP pour détecter la présence de logiciels malveillants ou d'autres contenus potentiellement malveillants.
Tester le script
Dans cette configuration, ClamAV n'effectuera aucune action sur les virus trouvés, il ne fera que les signaler. Alors ne vous inquiétez pas, rien ne sera supprimé ou modifié. Pour tester le script, exécutez simplement :
/root/clamscan_daily.sh
Une fois la commande terminée, il y aura deux états possibles :
- Clamav a trouvé un virus :dans ce cas, vous recevrez un e-mail dans votre boîte de réception avec le journal en pièce jointe.
- Clamav n'a rien trouvé, ou quelque chose ne va pas. Dans ce cas, vous devrez vérifier ce que dit le journal. Pour vérifier les journaux, vous devez vérifier /var/log/clamav/
Je vais joindre un petit exemple de journal pour savoir ce que vous devriez lire :
Starting a daily scan of /var/www directory. Amount of data to be scanned is 36G. Mon Jun 15 13:17:14 CEST 2015 ----------- SCAN SUMMARY ----------- Known viruses: 3841819 Engine version: 0.98.4 Scanned directories: 47944 Scanned files: 316827 Infected files: 0 Data scanned: 17386.77 MB Data read: 34921.59 MB (ratio 0.50:1) Time: 1432.747 sec (23 m 52 s) Mon Jun 15 13:41:06 CEST 2015 ------------------------------------------------------ ------------------------------------------------------ Starting a daily scan of /var/vmail directory. Amount of data to be scanned is 7.0G. Mon Jun 15 13:41:27 CEST 2015 /var/vmail/domain.tld/info/Maildir/.Cestino/cur/1386677288.M361286P15524.domain.tld,W=2675,S=2627:2,S: Heuristics.Phishing.Email.SpoofedDomain FOUND /var/vmail/domain.tld/info/Maildir/.Cestino/cur/1371451873.M697795P19793.domain.tld,W=5421,S=5353:2,S: Heuristics.Phishing.Email.SpoofedDomain FOUND /var/vmail/domain.tld/info/Maildir/.Cestino/cur/1390203133.M981287P17350.domain.tld,W=3223,S=3157:2,S: Heuristics.Phishing.Email.SpoofedDomain FOUND /var/vmail/domain.tld/info/Maildir/.Cestino/cur/1386677288.M361285P15524.domain.tld,W=2270,S=2227:2,S: Heuristics.Phishing.Email.SpoofedDomain FOUND
Dans ce cas, ClamAV a trouvé un e-mail de phishing sur [email protected], donc dans ce cas, vous recevrez également l'e-mail.
C'est tout !