Laboratorio di reti Relazione N 4 Gruppo 9 Mesin Alberto Vettorato Mattia
Scopo Lo scopo dell'esercitazione è quello di configurare un server mail, comprensivo di antivirus e filtro antispam. Software usato POSTFIX come MTA CLAMAV come antivirus CLAMASSASSIN come interfaccia verso l'antivirus SPAMASSASSIN come filtro antispam PROCMAIL come MDA DOVECOT come server POP3/IMAP POSTFIX Il Server Mail POSTFIX è un software SMTP completamente compatibile con Sendmail. E' stato progettato per poter essere facile da configurare e con un occhio di riguardo per la sicurezza. Anatomia di Postfix: le ellissi gialle rappresentano i vari processi, i rettangoli gialli sono i file delle mailbox o delle code di posta, quelli azzurri sono i file di configurazione Configurazione: Per poter configurare POSTFIX, si devono sostanzialmente modificare due file: main.cf e master.cf. Nel primo, sono contenuti i parametri necessari alla configurazione di base (come il domainname e l'hostname). Il secondo contiene le regole per definire il comportamento del demone master. Prima di installare POSTFIX, è opportuno eseguire due
operazioni: prima creare i due utenti Postfix e Maildrop con i relativi gruppi: ~#groupadd maildrop ~#groupadd postfix ~#useradd -s /bin/false -d /dev/null -g maildrop maildrop ~#useradd -s /bin/false -d /dev/null -g postfix postfix Dopodichè, si devono assegnare l'hostname e il nome del dominio alla machina: ~#domainname local ~#hostname mail (questi due comandi devono essere eseguiti al boot del sistema. ES: in distribuzioni BSD è possibile inserli in /etc/rc.d/rc.local) PS: è necessario arrestare il demone di Sendmail prima di avviare POSTFIX. main.cf Il parametro myhostname definisce il nome del server: myhostname = mail mydomain, invece, permette di specificare il dominio a cui appartiene il server: mydomain = local myorigin permette di specificare il dominio da usare per la posta inviata attraverso questo server: myorigin = $mydomain inet_interface permette di definire le interfacce su cui resterà in ascolto il demone: inet_interfaces = 127.0.0.1, 192.168.0.2 Con mynetwork vengono definiti gli host che possono usufruire del servizio: mynetworks = 127.0.0.0/8, 192.168.0.0/24 Definizione degli alias: alias_maps = hash:/etc/postfix/aliases
alias_database = hash:/etc/postfix/aliases Con mailbox_command viene indicato quale sarà il programma utilizzato per lo smistamento della posta nelle caselle locali: mailbox_command = /usr/bin/procmail -m /etc/procmailrc PROCMAIL PROCMAIL, oltre ad essere utilizzato come MDA, nel nostro caso viene usato anche per richiamare SPAMASSASSIN e CLAMAV. La scelta è caduta su PROCMAIL, anziché su AMAVIS, perchè non richiede nessun servizio in ascolto su porte aggiuntive: quindi, maggior sicurezza, dato che ogni porta aperta è un potenziale buco (indipendentemente dall'interfaccia su cui ascolta), e maggior stabilità, visto che un eventuale crash di PROCMAIL provocherebbe la perdita di una mail e non il blocco totale di tutte le mailbox del sistema. Di contro, usando un programma e non un demone, si ha più carico per il sistema. /etc/procmailrc #Imposto il sistema di mailbox qmail-style ORGMAIL = $HOME/Maildir/ #File di log per procmail LOGFILE=/var/log/procmail.log VERBOSE=yes #Invio solo le mail inferiori a 256KB a SpamAssassin :0fw * < 256000 /usr/bin/spamassassin #Controllo se la mail è stata fleggata come Spam e la inoltro alla MailBox :0:/tmp/spam.lock *^X-Spam-Flag: YES $HOME/Maildir/spam #Invio la mail al filtro clamassassin :0fw /usr/local/bin/clamassassin #Controllo se la mail è stata fleggata come infetta e la inoltro alla mailbox :0: *^X-Virus-Status: Yes $HOME/Maildir/INFECTED
SPAMASSASSIN Per i stessi motivi per cui non abbiamo utilizzato AMAVIS, abbiamo deciso di usare SPAMASSASSIN non come demone. A questo punto, l'unico file da configurare è local.cf. /etc/mail/spamassassin/local.cf # Cambia il soggetto del sospetto spam rewrite_header subject *****SPAM***** # Incapsula lo spam in un attachment (0=no, 1=yes, 2=safe) report_safe 1 # Abilita i filtri bayesiani use_bayes 1 # Abilita l auto apprendimento dei filtri Bayesiani bayes_auto_learn 1 # Linguaggio utilizzato nelle mail (italiano) ok_languages it CLAMAV Avendo utilizzato CLAMASSASSIN, CLAMAV non necessita di particolari configurazioni visto che verrà usato dallo script per flaggare le mail infette. Solo dopo, una specifica regola di PROCMAIL provvederà a determinare il comportamento da assumere, analogamente a quello che succede con SPAMASSASSIN. Prima di installare CLAMAV, è necessario creare un suo utente non privilegiato, tipicamente chiamato clamav. Nel file di configurazione di CLAMAV, clamav.conf, contenuto all'interno della directory /etc/, abbiamo commentato la riga Example, e abbiamo apportato le seguenti modifiche: TCPSocket 3310 Porta su cui gira il demone TCPAddr 127.0.0.1 Indirizzo a cui è bindato il demone ScanMail Viene abilitata la scansione della mailbox
ScanArchive Viene abillitata la scansione dei file compressi ScanOLE2 Abilita la scansione dei documenti Microsoft Office Inoltre, abbiamo commentato anche la direttiva VirusEvent, perchè non è compito di CLAMAV eseguire operazioni in caso di file infetto, ma sarà PROCMAIL a decidere la politica. In fase di compilazione di CLAMASSASSIN, abbiamo utilizzato l'opzione: ~#./configure --enable-clamdscan che obbliga CLAMASSASSIN a usare il client CLAMDSCAN, per facilitare la configurazione. Una volta completata la configurazione, si può avviare il demone clamd. DOVECOT Di seguito vengono riportate le righe che sono state modificate rispetto al file di configurazione originale: /etc/dovecot.conf imap_listen = * pop3_listen = * Le stringhe sopra indicate, dicono a Dovecot di restare in ascolto su tutte le interfacce di rete. ssl_disable = yes La stringa sopra serve per disabilitare il supporto SSL/TLS (connessione sicura). default_mail_env = maildir:%h/maildir Questa stringa viene usata per indicare a DOVECOT che usiamo un sistema di mailbox qmailstyle (Maildir), e dove sono le mailbox dei vari utenti.