CSITA - Università di Genova
Claudio Di Martino
Protezione da virus in ambiente Unix
Claudio Di Martino ([email protected])
CSITA - Università di Genova
Gennaio – Marzo 2002
CSITA - Università di Genova
Claudio Di Martino
Antivirus e UNIX
•
•
I Sistemi Operativi della famiglia UNIX non sono
solitamente soggetti alle classiche infezioni da
virus.Tuttavia i sistemi UNIX spesso sono inseriti
in contesti eterogenei e forniscono servizi a
macchine con Sistemi Operativi diversi
possibilmente più vulnerabili.
Questo li mette spesso in posizione privilegiata per
effettuare un servizio di controllo antivirus in
quanto non sono soggetti ad infezione da parte dei
virus che eventualmente possono transitare su di
essi.
Gennaio – Marzo 2002
CSITA - Università di Genova
Claudio Di Martino
SOPHOS Anti-Virus (1/2)
CSITA ha acquisito un certo numero di
licenze server di Sophos antivirus
redistribuibili all'interno dell'Università.
Sophos è disponibile per un ampio numero di
piattaforme e viene costantemente
aggiornato:
Gennaio – Marzo 2002
CSITA - Università di Genova
Claudio Di Martino
SOPHOS Anti-Virus (2/2)
•
•
•
•
•
•
•
•
•
Windows NT/2000/XP
Windows 95/98/Me
Linux
NetWare
DOS/Windows 3.1x
OpenVMS
OS/2
vari Unix (HP-UX, SCO, Solaris, *BSD, ecc...)
Macintosh
Gennaio – Marzo 2002
CSITA - Università di Genova
Claudio Di Martino
Installazione di SOPHOS
• Scaricare il file .tar corrispondente al proprio S.O.
(https://www2.csita.unige.it/intranet/reftecnici/sophos.php3) in
una directory di lavoro (es. /tmp) e posizionarsi in essa (cd
/tmp);
•
•
•
•
Scompattare l'archivio con tar xvf os.arch.tar
Entrare nella directory di installazione (cd sav-install);
Lanciare lo script di installazione (./install.sh -ni);
Impostare la variabile d'ambiente per i file di aggiornamento
(SAV_IDE=/usr/local/sav; export SAV_IDE).
Gennaio – Marzo 2002
CSITA - Università di Genova
Claudio Di Martino
Uso di SOPHOS da shell
• Verificare che /usr/local/bin sia nel PATH della shell ed
eventualmente aggiungerlo:
PATH=$PATH:/usr/local/bin; export PATH;
• Per fare una scansione rapida dei files con estensione nota nella
directory corrente e sottodirectory:
sweep .
• Per fare una scansione di tutti i file e anche degli archivi
contenuti nella directory /samba/shares:
sweep -all -archive -rec /samba/shares
• Il return code sarà 0 se non verranno rilevati errori e 3 se è stato
riconosciuto un virus o un frammento di virus.
Gennaio – Marzo 2002
CSITA - Università di Genova
Claudio Di Martino
Aggiornamento di SOPHOS(1/2)
•
•
•
Sophos AV aggiorna le firme dei virus nuovi
mediante file ausiliari aggiuntivi al file principale
di firme. Questi file hanno estensione .ide.
La politica di aggiornamento di Sophos è di
fornire un file .ide per ogni nuovo virus.
Inoltre, una volta al mese, viene rilasciata una
nuova versione del motore di scansione che
integra tutti gli .ide rilasciati fino a quel momento.
Gennaio – Marzo 2002
CSITA - Università di Genova
Claudio Di Martino
Aggiornamento di SOPHOS(2/2)
•
CSITA ha attivato un mirror dei file di firme. Il
seguente script, se l'installazione è stata eseguita
come indicato precedentemente, mantiene
aggiornati i file .ide.
cd $SAV_IDE
wget -N http://www.csita.unige.it/antivirus/ide/ides.zip
RETURN_STATUS=$?
if [ $RETURN_STATUS -gt 0 ]; then
exit
fi
unzip -o ides.zip
Gennaio – Marzo 2002
CSITA - Università di Genova
Claudio Di Martino
Integrazione di Sophos AV con un MTA
•
•
Integrare l'antivirus ai più comuni Message
Transfer Agent per Linux/Unix permette di
controllare tutta la posta in arrivo e bloccare i
messaggi che contengono allegati con virus.
Per svolgere questo compito, il MTA deve essere
coadiuvato da un apposito programma; le
istruzioni che seguono si riferiscono
all'integrazione di Amavis con Sendmail.
Gennaio – Marzo 2002
CSITA - Università di Genova
Claudio Di Martino
Installazione di maildrop(1/2)
•
•
Scaricare i sorgenti del mail delivery agent
maildrop all'indirizzo
http://www.flounder.net/~mrsam/maildrop/;
Scompattare il file scaricato (ad es. nella directory
/usr/src con il comando:
cd /usr/src; tar xvfz maildrop-1.3.6.tar.gz
•
Preparare l'installazione con il comando:
cd /usr/src/maildrop-1.3.6; ./configure
Gennaio – Marzo 2002
CSITA - Università di Genova
Claudio Di Martino
Installazione di maildrop(2/2)
•
•
•
Attendere la fine della configurazione e compilare
i sorgenti con il comando make
Installare i compilati con il comando make install
Se si vuole includere la scansione di allegati
compressi (zip,arj,lha ecc.) si devono installare le
utility in grado di gestire i diversi formati (di
solito esistono le versioni pacchettizate per tutte le
principali distribuzioni).
Gennaio – Marzo 2002
CSITA - Università di Genova
Claudio Di Martino
Installazione di AmaViS (1/2)
•
•
Scaricare i sorgenti di AMaViS (A Mail
Virus Scanner) all'indirizzo
http:///www.amavis.org
Scompattare il file scaricato con il
comando:
cd /usr/src ; tar xvfz amavis-0.2.1.tar.gz
•
Preparare l'installazione con il comando:
cd /usr/src/amavis-0.2.1 ; ./configure.
Gennaio – Marzo 2002
CSITA - Università di Genova
Claudio Di Martino
Installazione di AmaViS (2/2)
•
Controllare che durante la configurazione amavis
riconosca la presenza dell'antivirus Sophos:
[...]
checking *** Sophos Sweep ***
checking for sweep... /usr/local/bin/sweep
checking if /usr/local/bin/sweep really is Sophos Sweep... yes
[...]
•
•
Compilare i sorgenti con il comando make
Installare i compilati con il comando make
Gennaio – Marzo 2002
install
CSITA - Università di Genova
Claudio Di Martino
Integrazione di Sophos AV con Sendmail(1/3)
•
Modificare il file di configurazione sendmail.cf
(generalmente in /etc/mail/) sostituendo le righe:
Mlocal, P=/usr/bin/procmail, F=lsDFMAw5:/|@SPfhn, S=10/30, R=20/40,
T=DNS/RFC822/X-Unix,
A=procmail -Y -a $h -d $u
con
#Mlocal, P=/usr/bin/procmail, F=lsDFMAw5:/|@SPfhn, S=10/30,R=20/40,
# T=DNS/RFC822/X-Unix,
# A=procmail -Y -a $h -d $u
Mlocal, P=/usr/sbin/scanmails, F=lsDFMAw5:/|@SPfhn, S=10/30,R=20/40,
T=DNS/RFC822/X-Unix,
A=scanmails -Y -a $h -d $u
Gennaio – Marzo 2002
CSITA - Università di Genova
Claudio Di Martino
Integrazione di Sophos AV con Sendmail(2/3)
•
In alternativa è possibile ricompilare il file
sendmail.cf. Si devono aggiungere al file .m4 da
cui è stato generato il file di configurazione
sendmail.cf le seguenti direttive:
dnl change Mlocal to use AMaViS
define(`LOCAL_MAILER_PATH', `/usr/sbin/scanmails')dnl
define(`LOCAL_MAILER_ARGS', `scanmails -Y -a $h -d $u')dnl
•
Una volta completata la modifica è necessario far
ripartire il server di posta.
Gennaio – Marzo 2002
CSITA - Università di Genova
Claudio Di Martino
Integrazione di Sophos AV con Sendmail(3/3)
•
Per un corretto funzionamento di AMaViS è
necessario definire alcuni alias (nel file /etc/aliases
o /etc/mail/aliases):
[...]
root:
superuser
postmaster:
root
MAILER-DAEMON:
postmaster
virusalert:
virusmaster
[...]
•
Digitare il comando newaliases al termine della
modifica per rendere attivi i nuovi alias.
Gennaio – Marzo 2002
CSITA - Università di Genova
Claudio Di Martino
Personalizzazione di AMaViS
•
È possibile personalizzare AMaViS editando il file
/usr/sbin/scanmails in modo che notifichi il
riconoscimento dei virus ai diretti interessati:
[...]
################################################
# send virus report to admin (see mailto)?
#
# send notification message to sender?
#
# send notification message to receiver?
#
################################################
notifyadmin=yes
notifysender=yes
notifyreceiver=yes
[...]
Gennaio – Marzo 2002
CSITA - Università di Genova
Claudio Di Martino
Test di AMaViS
•
•
Per testare l'installazione è possibile utilizzare i
pattern presenti sul sito http://www.eicar.org/
(NON sono pericolosi) .
Se AMaViS è stato installato correttamente e si
spedisce eicar in attachment compare un
messaggio di questo tipo in /var/log/mail.log:
[...]
Nov 30 17:24:33 server scanmails[8149]: execution started
Nov 30 17:24:35 server scanmails[8149]: FOUND VIRUS IN MAIL from
[mittente] to [destinatario]
[...]
Nov 30 17:24:35 server scanmails[8149]: terminating
Gennaio – Marzo 2002
CSITA - Università di Genova
Claudio Di Martino
Installazione di AMaViS su un relay (1/4)
•
•
L'installazione precedente è utile per un server che
recapiti localmente la posta. Nel caso di un server
che effettua relay o che gestisce mailing-list è
comunque possibile configurare sendmail in modo
che AMaViS filtri tutta la posta in transito.
Prima di procedere alla modifica del file
sendmail.cf è opportuno crearne una copia di
salvataggio e operare su un'ulteriore copia:
cd /etc/mail
cp sendmail.cf sendmail.cf.pre-amavis
cp sendmail.cf sendmail.cf.post-amavis
Gennaio – Marzo 2002
CSITA - Università di Genova
Claudio Di Martino
Installazione di AMaViS su un relay (2/4)
•
Creare la directory che amavis userà per gestire la
posta in entrata:
mkdir /var/spool/mqamavis
chmod 0755 /var/spool/mqamavis
•
Editare il file sendmail.cf.post-amavis e
modificare la riga che inizia con:
O QueueDirectory=
in modo che punti alla directory appena creata:
O QueueDirectory=/var/spool/mqamavis
Gennaio – Marzo 2002
CSITA - Università di Genova
Claudio Di Martino
Installazione di AMaViS su un relay (3/4)
•
Modificare la riga che inizia con:
O StatusFile=
in modo che scriva nel file /var/log/amavis.st:
O StatusFile=/var/log/amavis.st
•
Individuare la riga che inizia con:
Mlocal
e inserire precedentemente le seguenti righe:
Mamavis,
P=/usr/local/sbin/amavis, F=mlsACDFMS5:/|@qhP, S=0, R=0
T=DNS/RFC822/X-Unix,
A=amavis $f $u
Gennaio – Marzo 2002
CSITA - Università di Genova
Claudio Di Martino
Installazione di AMaViS su un relay (4/4)
•
Individuare la riga che contiene la stringa:
final parsing
e inserire una riga precedente con la regola:
R$*
•
$#amavis $:$1
Sostituire sendmail.cf con sendmail.cf.post e
riavviare il server di posta.
Gennaio – Marzo 2002
CSITA - Università di Genova
Claudio Di Martino
Riferimenti
•
•
•
•
•
http://www.sophos.com/
http://www.csita.unige.it/antivirus/sophos.html
http://www.amavis.org/
http://www.flounder.net/~mrsam/maildrop/
http://www.eicar.org/anti_virus_test_file.htm
Gennaio – Marzo 2002