03/06/2013
Schedulazione clamwin
Oh antivirus! Croce e delizia di ogni sistema Windows!
Se vi ritrovate nella spiacevole condizione di amministrare qualche server Windows è possibile che da un giorno con l’altro vi capiti a tiro qualche burocrate che “pretende” (non si sa bene in base a quale astrusa norma o principio) sia installato un antivirus, che questo sia aggiornato quotidianamente e che sia schedulata una scansione del sistema.
In questa situazione una persona normale e ragionevole proporrebbe di fare una veloce analisi per capire l’utilità e il rapporto costi/benefici di questa soluzione, ad esempio:
- sui filesystem del server vengono scritti file?
- che origine hanno i file che eventualmente vengono scritti sui filesystem?
- i servizi che girano sul server come reagiscono a fronte di una scansione?
- quali sono le esclusioni che è necessario definire sull’antivirus per fare in modo che le scansioni non interferiscano con i servizi esistenti?
Tutte domande sensate, ma che dalla mia esperienza nella maggioranza dei casi cadono nel vuoto, per molti utenti l’antivirus è un must, ci deve essere punto e basta, è un tabù intoccabile…
In questi casi Clamwin è una discreta soluzione, è leggero, è poco invasivo, di default non prevede rilevazione realtime (possibile tramite Clam Sentinel) che può compromettere le performance del sistema e infine è free e opensource (cosa utile se questi sono requisiti imposti dal cliente di turno).
Per contro Clamwin non è accurato come altri antivirus più blasonati e rispetto a questi rileva un numero eccessivo di falsi positivi, ma soprattutto ha uno schedulatore un po’ dozzinale che funziona solo se c’è un utente loggato sul sistema.
A tal proposito l’approccio degli sviluppatori è sensato, clamwin funziona splendidamente da CLI, perchè inventarsi uno schedulatore quando il sistema operativo stesso ne ha uno che funziona egregiamente? Della serie KISS (Keep It Simple Stupid…)
Per schedulare aggiornamento e scansione comprensiva di notifiche email bastano questi strumenti:
- notepad
- un file .bat
- blat
Create un semplice file di testo con estensione .bat o .cmd (es clamsched.bat) con questa sintassi:
@echo off rem ###### Personalizzate queste variabili SET TARGET=c:\ d:\ SET LOG=c:\temp\clam-results.txt SET BLATEXE=C:\utils\blat\full\blat.exe SET BLATLOG=C:\utils\blat\blat.log SET SMTPSERVER=smtp.domain.local SET [email protected] SET [email protected] SET ESCLUSIONIDIR=--exclude-dir="C:\\directory-da-escludere" --exclude-dir="C:\\Program Files\\directory-da-escludere2" SET ESCLUSIONIFILE=--exclude="c:\\directory-esempio\\user\\Administrator\\.bash_history" --exclude="d:\pagefile.sys" date /T time /T
rem ###### Aggiornamento db antivirus echo Aggiorno db antivirus "c:\Program Files\clamwin\bin\freshclam.exe" echo. rem ###### Inizio scansione echo Scansione avviata echo. "c:\Program Files\clamwin\bin\clamscan.exe" -d "C:\Documents and Settings\All Users\.clamwin\db" %ESCLUSIONIFILE% %ESCLUSIONIDIR% -i -r %TARGET% >%LOG% 2>&1 echo. goto answer%errorlevel%
:answer0 rem # Commentate per non ricevere mail in caso di scansione negativa echo Nessun virus rilevato %BLATEXE% %LOG% -to %RCPTMAIL% -server %SMTPSERVER% -f %SENDERMAIL% -subject "Scansione antivirus OK" -q -log %BLATLOG% echo Scansione completa goto end
:answer1 echo Possibile virus rilevato %BLATEXE% %LOG% -to %RCPTMAIL% -server %SMTPSERVER% -f %SENDERMAIL% -subject "PROBLEMA SCANSIONE ANTIVIRUS" -q -log %BLATLOG% echo Controlla il file %LOG% goto end
:answer2 echo Errore nell'esecuzione dello script %BLATEXE% %LOG% -to %RCPTMAIL% -server %SMTPSERVER% -f %SENDERMAIL% -subject "PROBLEMA ESECUZIONE SCRIPT ANTIVIRUS" -q -log %BLATLOG% goto end :end echo. date /T time /T echo =========================== echo. exit
Per schedulare aggiornamento e scansione vi basta aprire il task scheduler di Windows e creare un nuovo job che esegue il seguente comando:
C:\utils\clamsched.bat >> C:\utils\clamsched.log 2>&1