Protezione da virus in ambiente Unix Claudio Di Martino (claudio@claudio.csita.unige.it) CSITA - Università di Genova
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.
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:
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
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).
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.
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.
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
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.
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
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).
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.
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 install
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, A=scanmails -Y -a $h -d $u
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.
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.
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
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
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
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
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
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.
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