J’avais besoin de créer un script que j’ai nommé « clamav-tr.sh« , celui-ci permet d’ajouter une fonction temps réel à clamav. Il scanne en temps réel le répertoire « /home » (par défaut), si un virus est trouvé, il sera déplacé en quarantaine (dans /tmp). Un fichier caché (.clamav-tr.log) sera disponible dans le dossier de l’utilisateur du script. J’utilise clamdscan (clamav-daemon) parce qu’il est beaucoup plus rapide que clamscan.
Je partage mon script, il peut être utile pour surveiller un répertoire ou des partages samba.
Pré-requis: clamav-daemon et inotify-tools.
Recommandé pour un PC de bureau: libnotify-bin.
#!/bin/bash # Script "ClamAV Temps Réel", par HacKurx # https://hackurx.wordpress.com # Licence: GPL v3 # Dépendance: clamav-daemon inotify-tools # Recommandé pour PC de bureau: libnotify-bin DOSSIER=/home QUARANTAINE=/tmp LOG=$HOME/.clamav-tr.log inotifywait -q -m -r -e create,modify,access "$DOSSIER" --format '%w%f|%e' | sed --unbuffered 's/|.*//g' | while read FICHIER; do clamdscan --quiet --no-summary -i -m "$FICHIER" --move=$QUARANTAINE if [ "$?" == "1" ]; then echo "`date` - Malware trouvé dans le fichier '$FICHIER'. Le fichier a été déplacé dans $QUARANTAINE." >> $LOG echo -e "33[31mMalware trouvé!!!33[00m" "Le fichier '$FICHIER' a été déplacé en quarantaine." if [ -f /usr/bin/notify-send ]; then notify-send -u critical "ClamAV Temps Réel" "Malware trouvé!!! Le fichier '$FICHIER' a été déplacé en quarantaine." fi fi done
Des améliorations à faire concernant mon script ? Pas de problème, celui-ci est disponible et modifiable sur la page clamav du wiki ubuntu-fr.org.
A savoir qu’il est possible d’améliorer les bases de données antivirales de clamav avec des signatures tiers en installant le paquet « clamav-unofficial-sigs« , ou manuellement avec les bases de données disponibles sur sanesecurity (toutefois une mauvaise configuration augmentera le risque de faux positifs).
Sur le site web ci-dessus, on trouve par exemple les bases de données de securiteinfo comportant 1450 signatures de malwares shell et exécutable Linux inconnu par clamav. Il est souvent dit que Linux ne craint pas les virus mais il ne faut pas confondre le terme virus avec celui de malware.
Bien que plus sûr GNU/Linux n’est pas infaillible, la popularité d’Ubuntu ou d’autres distributions accessibles vous le prouvera d’avantage. Prendre conscience de cela est le meilleur moyen de réduire la faille de sécurité chaise clavier 😉
Bonjour,
Merci pour ce post ! Très utile !
Par contre, pour les améliorations, j’ai noté que inotifywait envoie 2 fois le fichier qu’il détecte en sortie dans le cas d’une copie d’un autre répertoire vers le répertoire surveillé. Ex :
/home/titi|MODIFY
/home/titi|MODIFY
Du coup le scan antivirus est lancé 2 fois…
J’ai commencé à bidouiller pour essayé de ne pas avoir de doublons, mais sans succès. Si tu trouves avant moi je suis preneur !
Ah faudra que je regarde à cela merci pour le retour.
inotifywait est gourmand il me semble. Il vaudrait mieux il me semble utiliser lsyncd qui est mieux ficelé
Ok merci je testerai lsyncd mais inotifywait m’a pas semblé si gourmand.
Bonjour,
Je souhaite savoir comment peut-on savoir si le scan est actif. Lien de la discussion: http://forum.ubuntu-fr.org/viewtopic.php?id=982941
Merci.
J’essaie le script et j’ai un souci avec les partages Samba : nos partages contiennent des milliers de fichiers et au démarrage du script, un énorme trafic réseau est généré.
J’ai essayé l’option –exclude ‘^/home/mon_home/.gvfs/’ sans succès.
Salut, désolé de ne répondre que maintenant, as-tu regardés du coté de scannedonly?
http://olivier.sessink.nl/scannedonly/
Pingback: Nono’s Vrac 74 « m0le'o'blog
Salut,
Après avoir rendu le script exécutable (chmod +x « nom du script »), faut-il le lancer au démarrage en le copiant dans le dossier /etc/init.d/?
Merci.
Pingback: ClamAV Realtime : Protection antivirale temps réel : Portage sous Gentoo GNU/Linux – www.pingwho.org
faut remplacer ACCESS par CREATE dans la commande ionotify.