Servei de correu (MailScanner, spamAssassin, clamAV i SquirrelMail)

Objectiu:

Aquesta segona part del tutorial de correu pretén explicar com afegir les funcionalitats d’Antispam i Antivirus al nostre servidor de correu. Actualment, i tal com s’ha explicat a la primera part d’aquest tutorial tenim:

  • un postfix que gestiona l’smtp (enviament de correus)
  • un courier que gestiona l’accés a les bústies (pop3 i imap)
  • autenticació via LDAP tant en l’enviament com en l’accés a bústies.
    • amb SASLAuth per smtp
    • amb Courier-Authdaemon per pop3 i imap

Quan acabem aquest tutorial el nostre servidor podrà detectar missatges amb contingut no desitjat (Spam), AntiVirus i actuar segons les normes de la organització.

Per què Mailscanner, Spamassassin i ClamAV?

Tots tres són gratuïts, s’integren entre ells i amb Postfix sense cap problema i presenten un rendiment molt acceptable per les nostres necessitats.

Obtenció del software:

Partim de la base que disposem d’un servidor amb Ubuntu 7.04 Server. És molt probable que aquest tutorial funcioni sobre d’altres distribucions, però ha estat provat principalment sobre Ubuntu.

Es suposaran implementats:

  • Tutorial Ubuntu 7.04 Server (Part I i Part II)
  • Tutorial servei LDAP (slapd)
  • Correu Postfix amb Courier i LDAP. (Part I)

Utilitzarem l’eina apt per aconseguir tot el software necessari. S’ha entrat al sistema utilitzant l’usuari root. Per començar actualitzem les nostres fonts de apt.

$ apt-get update

Per instal·lar els paquets necessaris executarem la següent comanda:

$ apt-get install mailscanner spamassassin clamav squirrelmail

A més instal·larem unes quantes eines per accedir a fitxer comprimits (opcional):

$ apt-get install unrar zip lha

Configuració:

El primer que s’ha de fer és parar el postfix:

$ /etc/init.d/postfix stop

A continuació modifiquem la configuració del postfix de nou, en aquest cas per indicar-li que els missatges els tractarà una tercera part. A l’arxiu /etc/postfix/main.cf afegim la següent línia:

header_checks = regexp:/etc/postfix/header_checks

i que l’arxiu /etc/postfix/header_checks contingui:

/^Received:/ HOLD

Això farà que tots els missatges rebuts es posin a la cua HOLD per ser tractats.

En aquest cas la configuració recau sobre el MailScanner. L’arxiu es troba en /etc/MailScanner/MailScanner.conf. Anirem a modifcar-lo i ens assegurarem que conté les següents línies:

%org-name% = domini.com
%org-long-name% = Nom de la organització
 %web-site% = www.domini.com
%report-dir% = /etc/MailScanner/reports/ca
Run As User = postfix
Run As Group = postfix
Incoming Queue Dir = /var/spool/postfix/hold
Outgoing Queue Dir = /var/spool/postfix/incoming
MTA = postfix

finalment donem permisos a postfix per escriure als directoris de MailScanner:

$ chown postfix.postfix /var/spool/MailScanner/incoming
$ chown postfix.postfix /var/spool/MailScanner/quarantine

Ja podem arrencar el postfix de nou i el MailScanner:

$ /etc/init.d/postfix start

Per assegurar que MailScanner arrenqui al boot de la màquina modifiquem l’arxiu /etc/default/mailscanner, ha de tenir:

run_mailscanner = 1

aleshores:

 $ /etc/init.d/mailscanner start

Si tot ha anat correctament veurem que l’arxiu de log del correu (/var/log/mail.log) presentarà el següent:

MailScanner[21138]: MailScanner E-Mail Virus Scanner version 4.57.6 starting...
MailScanner[21138]: Read 759 hostnames from the phishing whitelist
MailScanner[21138]: Using SpamAssassin results cache
MailScanner[21138]: Connected to SpamAssassin cache database
MailScanner[21138]: Enabling SpamAssassin auto-whitelist functionality...
MailScanner[21138]: I have found clamav scanners installed, and will use them all by default.
MailScanner[21138]: ClamAV scanner using unrar command /usr/bin/unrar
MailScanner[21138]: Using locktype = flock

Ja hem acabat. Per provar que la configuració funciona podriem enviar un parell de correus, un amb virus i l’altre amb spam per comprobar que els detecta.

Enviar missatges de prova:

Spam: El missatge haurà de contenir la següent cadena:

XJS*C4JDBQADN1.NSBN3*2IDNEN*GTUBE-STANDARD-ANTI-UBE-TEST-EMAIL*C.34X

Virus: El missatge haurà de contenir la següent cadena (eicar):

X5O!P%@AP[4PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H*

Squirrelmail.

Per acabar només queda configurar l’squirrelmail. Aquest és un client de correu IMAP i SMTP via http. Amb la instal·lació bàsica que hem fet s’instal·larà també, si no el teníem ja, un servidor apache2 i el mòdul php5. No és l’objectiu d’aquest tutorial configurar aquests paquets, això ja ho vam tractar en aquesta entrada.

Per accedir al client web podem adreçar el nostre navegador a:

http://adreça_o_ip_del_servidor_de_correu/squirrelmail

Evidentment, aquest encara no està configurat per connectar amb el nostre servidor de correu. Això ho podem fer des de la línia de comandes, executant el següent:

$ squirrelmail-configure

Aquesta comanda dóna pas a un menú de configuració. Basicament ens interessa:

  • 1: Preferències de la nostra organització, nom, logos…
  • 2: Preferències del servidor. Aquí és on haurem de treballar més assegurant-nos que tant el servidor IMAP com l’SMTP apuntin a l’adreça IP o nom DNS del nostre servidor.
  • 3: Preferències de carpetes. Aquí se’ns permetrà escollir si volem crear carpetes per defecte i com tractar els missatges eliminats, els esborranys i demés.
  • 10: Llenguatges, aquí podem seleccionar el català escrivint “ca_ES”.
    NOTA: El paquet php està compilat de manera que incorpora gettext en la configuració. Això impedeix que es visualitzin correctament algunes de les cadenes en català. Per solucionar aquest problema es pot recompilar el paquet php traient aquesta opció de les regles de Debian.
  • La resta d’opcions les podeu configurar com més bé us vagi.