[successivo] [precedente] [inizio] [fine] [indice generale] [indice ridotto] [indice analitico] [volume] [parte]
Clamav(1) è un sistema di individuazione di virus informatici abbastanza completo, che però non offre la possibilità di rimuovere il codice dannoso dai file infetti. In questo capitolo ne viene descritto l'uso più semplice.
Per la scansione manuale dei file, alla ricerca di virus o comunque di codice pericoloso noto, si usa il programma clamscan:
clamscan [opzioni] [file|directory]... |
Come si vede dal modello sintattico, alla fine della riga di comando si annotano i file o le directory da scandire, ma in mancanza di tale indicazione, si ottiene la scansione della directory corrente. Si osservi però che la scansione delle directory non prevede la ricorsione nelle sottodirectory successive, a meno di usare espressamente l'opzione -r.
|
Segue la descrizione di alcuni esempi.
$
clamscan
[Invio]
Scandisce i file contenuti nella directory corrente (le sottodirectory vengono tralasciate).
$
clamscan /bin/b*
[Invio]
Scandisce i file che corrispondono al modello.
$
cat mio_file | clamscan -
[Invio]
$
clamscan -r /home
[Invio]
Scandisce tutto il contenuto della directory /home/
, incluse le sottodirectory.
Un programma antivirus, per poter essere efficace, richiede di avere un aggiornamento frequente delle impronte virali, ovvero delle stringhe di riconoscimento dei virus o comunque del codice dannoso. In un'installazione normale di Clamav, i file che contengono tali informazioni vengono conservati nella directory /var/lib/clamav/
.
La distribuzione dei file contenenti le impronte virali avviene attraverso una serie di elaboratori a cui si può accedere con il nome generico database.clamav.net
, che di norma si trasforma automaticamente in un indirizzo abbastanza «vicino»:
$
host database.clamav.net
[Invio]
database.clamav.net is an alias for db.local.clamav.net. db.local.clamav.net is an alias for db.it.clamav.net. db.it.clamav.net has address 213.92.8.5 db.it.clamav.net has address 159.149.155.69 db.it.clamav.net has address 193.206.139.37 |
Da questo indirizzo si possono prelevare i file main.cvd
e daily.cvd
, ovviamente quando questi risultano aggiornati:
<http://database.clamav.net/main.cvd>
<http://database.clamav.net/daily.cvd>
Come si può intuire, il file main.cvd
è quello complessivo, di tutte le impronte virali conosciute, che viene aggiornato a cadenza mensile, mentre il file daily.cvd
viene aggiornato ogni giorno, con le impronte virali nuove, che non sono ancora presenti nel primo file.
Questi due file vanno collocati nella directory /var/lib/clamav/
, o nella directory equivalente prevista nel proprio sistema operativo.
Per automatizzare l'aggiornamento della propria copia di impronte virali, Clamav prevede il programma freshclam, a cui si associa il file di configurazione /etc/clamav/freshclam.conf
:
freshclam [opzioni] |
In condizioni normali, avviando il programma senza opzioni, si ottiene l'aggiornamento dei file delle impronte virali, nella directory predefinita (/var/lib/clamav/
), ma ciò richiede che il file di configurazione contenga almeno la direttiva seguente:
|
Il programma freshclam non richiede privilegi particolari per funzionare, a parte quelli necessari a poter aggiornare i file delle impronte virali. Di solito si predispone l'utente fittizio clamav e si fa in modo che i programmi di Clamav funzionino con i privilegi concessi a tale utente.
|
Segue la descrizione di alcuni esempi.
$
freshclam
[Invio]
Aggiorna i file delle impronte virali nella directory predefinita, in base alla configurazione. Si presume che il programma sia avviato con i privilegi necessari per poter salvare tali file.
$
freshclam --datadir=$HOME
[Invio]
Scarica i file delle impronte virali nella directory personale dell'utente.
$
freshclam -d -c 3
[Invio]
Avvia il programma come demone, richiedendo di eseguire tre controlli al giorno.
#
freshclam -u clamav
[Invio]
Avvia il programma in modo da acquisire i privilegi dell'utente clamav.
|
Per facilitare la richiesta di una scansione esiste anche il demone clamd, il cui funzionamento viene controllato esclusivamente attraverso un file di configurazione: /etc/clamav/clamd.conf
. Di norma, il demone viene avviato con i privilegi dell'utente root, salvo ridurli poi in base alla configurazione.
clamd [-c file_di_configurazione|--config-file=file_di_configurazione] |
Come si vede dal modello sintattico, con l'opzione -c è possibile dichiarare un file di configurazione diverso da quello predefinito in fase di compilazione del programma.
|
In generale, clamd da solo non serve: lo si installa sempre solo per consentire ad altri programmi di interagire con il sistema di Clamav. Pertanto, anche la configurazione dipende dalle esigenze specifiche che si vengono a presentare.
Per eseguire una scansione «manuale», sfruttando però il demone clamd, si può utilizzare il programma clamdscan, che funziona sostanzialmente come clamscan, con la differenza che il suo avvio è meno pesante:
clamdscan [opzioni] [file|directory]... |
Alcune delle opzioni di clamscan sono prive di significato per clamdscan.
|
Il programma clamdscan, avvalendosi del demone clamd, risente dei permessi con i quali il demone stesso è avviato. In pratica, se clamd funziona con i privilegi di un utente fittizio che non ha accesso a certi file, non può controllarne il contenuto.
Segue la descrizione di alcuni esempi.
$
clamdscan
[Invio]
Scandisce i file contenuti nella directory corrente (le sottodirectory vengono tralasciate).
$
clamdscan /bin/b*
[Invio]
Scandisce i file che corrispondono al modello.
$
cat mio_file | clamdscan -
[Invio]
Assieme a Clamav vengono distribuiti anche dei file innocui, che vengono rilevati come affetti da un virus. Di solito si collocano nella directory /usr/share/clamav-testfiles/
:
$
clamscan /usr/share/clamav-testfiles
[Invio]
/usr/share/clamav-testfiles/clam-error.rar: RAR module failure /usr/share/clamav-testfiles/debugm.c: OK /usr/share/clamav-testfiles/clam.cab: Unable to open file or directory /usr/share/clamav-testfiles/clam.exe.bz2: ClamAV-Test-File FOUND /usr/share/clamav-testfiles/clam.exe: ClamAV-Test-File FOUND /usr/share/clamav-testfiles/clam.rar: ClamAV-Test-File FOUND /usr/share/clamav-testfiles/clam.zip: ClamAV-Test-File FOUND ----------- SCAN SUMMARY ----------- Known viruses: 60743 Engine version: 0.88.2 Scanned directories: 1 Scanned files: 7 Infected files: 4 Data scanned: 0.00 MB Time: 2.601 sec (0 m 2 s) |
Con l'aiuto di Procmail (capitolo 317) è possibile utilizzare Clamav, per scandire i messaggi prima del recapito finale all'utente. Si possono inserire nel file ~/.procmailrc
le direttive seguenti:
|
Nella prima fase viene avviato il programma clamdscan (con le opzioni che si vedono), inviandogli il messaggio di posta elettronica attraverso lo standard input. Il risultato della scansione è un testo descrittivo che viene emesso dal programma attraverso lo standard output, che così viene assegnato alla variabile VIRUS. Nella seconda fase viene preso in considerazione lo stesso messaggio di posta elettronica, verificando che la variabile VIRUS contenga la stringa FOUND alla fine: se c'è la corrispondenza, il messaggio viene messo nel file o nella directory virus
.
|
Appunti di informatica libera 2007.02 --- Copyright © 2000-2007 Daniele Giacomini -- <daniele (ad) swlibero·org>
Dovrebbe essere possibile fare riferimento a questa pagina anche con il nome clamav.htm
[successivo] [precedente] [inizio] [fine] [indice generale] [indice ridotto] [indice analitico]