amavis II Security Workshop Riccardo Veraldi - INFN sez. Firenze Amavis È un mail virus scanner scritto in perl, ne esistono 3 diverse versioni: • amavis: per mail server con un volume di traffico medio/basso • amavisd e amavisd-new: versioni demonized di amavis per mail server con elevato volume di traffico Cos’è amavisd-new È un’interfaccia high-performance tra l’MTA (ad es. Sendmail) ed uno o più content checker (virus scanners e/o SpamAssassin etc.). Può comunicare con l’MTA utilizzando (E)SMTP, LMTP oppure un programma helper esterno (ad es. Programmi MILTER-aware). La caratteristica peculiare di amavis è quella di richiamare una virus scanning engine esterna (sophos, f-prot, vexira etc.) per effettuare la scansione vera e propria sostituendosi in questo senso a prodotti antivirus completi per mail server ($$$$$...) amavisd-new e sendmail • Si aggancia a sendmail tramite il programma amavis-milter utilizzando l’interfaccia MILTER di sendmail; amavis-milter crea un socket che viene utilizzato per la comunicazione fra sendmail e amavisd. APPENDDEF(`confENVDEF', `-DMILTER') INPUT_MAIL_FILTER(`milter-amavis', `S=local:/var/amavis/amavis-\ milter.sock, F=T, T=S:10m;R:10m;E:10m') • In questa modalità vi sono due processi in esecuzione, amavisd e amavis-milter: entrambi girano in modalità non-superuser, è opportuno quindi definire un utente ed un gruppo per l’esecuzione di questi processi, ad es. vscan:vscan • Vengono utilizzate 2 directory: – /var/amavis per la scansione delle mail – /var/virusmails directory di quarantena Amavisd-new: amavisd e amavis-milter • Le due componenti di amavisd-new (amavisd daemon – amavis-milter) comunicano fra loro tramite un socket amavisd.sock • Il nome del socket è hardcoded all’interno di amavismilter.c (AMAVISD_SOCKET) • Il protocollo utilizzato in questo canale è NON MILTER, è un protocollo privato di amavis. amavisd-new: schema di funzionamento sez. Firenze Viene utilizzato come interfaccia fra l’MTA e la virus scanning engine. amavis-milter.sock amavis-milter virus alert Incoming mail amavisd.sock sendmail-8.12.11 sendmail smmsp mail delivery virus found antivirus engine: Sophos sweep NO YES amavisd quarantine Configurazione di amavisd La configurazione del demone amavisd risiede in amavisd.conf: 1. 2. 3. 4. 5. 6. 7. 8. MTA settings MTA specific Logging Notifiche/DSN, BOUNCE/REJECT/DROP/PASS, quarantena whitelist, per-user setting Resource limit Programmi esterni: virus scanners, SpamAssassin Debugging Configurazione di amavis-milter Non ha bisogno di configurazioni particolari, bisogna solo passare come argomento il nome del socket UNIX di interfaccia con sendmail: amavis-milter -D -p /var/amavis/amavis-milter.sock Conclusioni • Ottimo mail scanner • Velocità di scansione e stabilità • Può interfacciarsi con un elevato numero di virus scanning engine presenti sul mercato • Supporta la scansione di archivi compressi • Si può interfacciare direttamente a SpamAssassin (non testato) • Altamente customizzabile (Whitelists, per recipient e sender handling etc.)