Clamav: integrazione con Thunar per scansioni su richiesta

Clamav è un famosissimo antivirus per sistemi Gnu/Linux; in questo articolo vedremo come installarlo su un sistema Ubuntu, e come impostare un’azione di Thunar per richiedere una scansione a richiesta di uno o più files e directories.

Installazione di ClamAV

L’installazione di ClamAV è molto semplice; basta digitare, da terminale

sudo apt-get install clamav

Il pacchetto porta con sé alcune dipendenze, tra cui il pacchetto clamav-freshclam che installa un demone per il download automatico delle nuove firme virali dai mirror di ClamAV. Per chi volesse fare del fine-tuning, il file di configurazione di freshclam è in /etc/clamav/freshclam.conf; come configurazione automatica, comunque, il demone è configurato per cercare aggiornamenti sui mirror 24 volte al giorno (ovvero, una volta l’ora).

Scansione da linea di comando

Il comando clamscan permette di eseguire scansioni su files e directories da linea di comando. Passando varie opzioni è possibile configurarne il comportamento secondo le nostre necessità. L’azione per Thunar che andremo ad impostare si basa proprio su clamscan, con l’evidente comodità di utilizzare un rapido link grafico, al posto della linea di comando, con tutti i parametri già impostati e configurati per una scansione significativa.

Script Shell Viruscheck.sh

Lo script bash Viruscheck.sh è il motore dell’azione che andremo a configurare in Thunar. Aprite il vostro editor preferito e copiate/incollate lo script seguente:

#!/bin/bash
#Check di un path per rilevare virus

PROGNAME="$0"

#Controllo che esista clamscan
if [ ! -x "/usr/bin/clamscan" ]; then
    echo "Errore. Manca eseguibile clamscan"
    exit 1
fi

#Se lanciato senza argomenti, mostro utilizzo
if [ ! $1 ]; then
    echo "$PROGNAME scansiona una o più directories/files specificati come argomenti"
        echo "Uso: $PROGNAME /path1 /path2 /path3 /path/file1"
        exit 0
fi

#Eseguo il check delle directory/file
(
clamscan --recursive --max-filesize=1000M --infected $* |grep FOUND > /tmp/.foundviruses
)|zenity --progress --no-cancel --pulsate --auto-close --text "Scansione delle minacce in corso...."
virus=`cat /tmp/.foundviruses|wc -l`
if [ $virus -gt 0 ]; then
    zenity --error --text "Attenzione\!\nTrovati Virus\!\nNumero di minacce rilevate: $virus\n\nREPORT\n____________\n`cat /tmp/.foundviruses`"
else
    zenity --info --text "Files/Directory scansionati.\nNessuna minaccia rilevata."
fi
rm -f /tmp/.foundviruses
exit 0

Salvatelo in una directory appartenente al vostro PATH e rendetelo eseguibile con

chmod +x /path/viruscheck.sh

Azione VirusCheck in Thunar

Ora non resta che aggiungere un’azione personalizzata in Thunar per eseguire la scansione su richiesta. Dal menu Modifica, scegliere la voce Imposta azioni personalizzate.

Dalla nuova finestra scegliere il pulsante “+” per aggiungere una nuova azione, quindi compilare i campi del Tab Base nel modo seguente:
Nome: VirusCheck
Descrizione: Scansiona gli elementi per rilevare minacce
Comando: viruscheck.sh %F
Icona: [sceglierne una di proprio gradimento]

Il tab Condizioni di visibilità deve avere impostato * come Schema del file, e la spunta su tutti i tipi di files e cartelle:

Una volta confermato, la nuova azione è subito disponibile dal menu contestuale di Thunar per tutti i files e le directories. È possibile selezionare files e directories multipli per la stessa scansione.

Se vengono rilevati files compromessi, viene riportata una finestra d’errore con il path completo dei files virati; nell’esempio, VirusCheck ha trovato due file compromessi con l’eicar test virus.