Howto MailScanner+Clamav+Spamassassin+Postfix

De Tutoriales de Informatica
Saltar a: navegación, buscar

Sist. operativos

Debian 6.0 (Squeeze).

Dependicias necesarias

  • debconf.
  • Postfix.
  • Libarchive-zip-perl.
  • Libconvert-tnef-perl.
  • libdbd-sqlite3-perl.
  • Libdbi-perl.
  • libdigest-sha1-perl.
  • Libhtml-parser-perl.
  • Libmailtools-perl. >=2.02
  • Libmime-tools-perl
  • libmime-perl. >= 5.419
  • libnet-dns-perl >=0.65
  • libnet-ip-perl
  • libole-storage-lite-perl.
  • Spamassassin. >=3.1
  • ucf.
  • Unzip.
  • Clamav. (Necesario)
  • Clamav-daemon (Necesario)
  • libclamav -dev (Necesario)
  • libnet-cidr-lite-perl. (Recomendado)
  • tnef. >=1.4.3 (Recomendado)
  • libmail-spf-query-perl. (Sugerido)
  • libnet-ldap-perl. (sugerido)
  • build-essential.
  • gcc.
  • Gawk.
  • Libmodule-cpants-analyse-perl.
  • Libtest-kwalitee-perl.
  • Libtest-strict-perl.
  • Libpod-coverage-perl.
  • Libpod-coverage-trustpod-perl.
  • Libtest-pod-coverage-perl.
  • Gettext.

Repositorios utilizados

deb http://http.us.debian.org/debian/ squeeze main contrib non-free 
deb-src http://http.us.debian.org/debian/ squeeze main contrib non-free 

Instalación de Dependencias

Apt-get install debconf postfix libarchive-zip-perl libconvert-tnef-perl libdbd-sqlite3-perl libdbi-perl libdigest-sha1-perl libhtml-parser-perl libmailtools-perl libmime-tools-perl libmime-perl libnet-dns-perl libnet-ip-perl libole-storage-lite-perl Spamassassin ucf unzip clamav clamav-daemon libnet-cidr-lite-perl tnef libmail-spf-query-perl libnet-ldap-perl build-essential gcc gawk libmodule-cpants-analyse-perl libtest-kwalitee-perl libtest-strict-perl libpod-coverage-perl libpod-coverage-trustpod-perl libtest-pod-coverage-perl gettext postfix-pcre postfix-mysql razor pyzor

Instalción de MYSQL

apt-get install mysql-server mysql-client libmysqlclient15-dev

Instalación de Apache

apt-get install apache2 apache2-doc apache2-mpm-prefork apache2-utils libexpat1 ssl-cert

Instalación de PHP5 y Ruby

apt-get install libapache2-mod-php5 libapache2-mod-ruby php5 php5-common php5-curl php5-dev php5-gd php5-idn php-pear php5-imagick php5-imap php5-mcrypt php5-memcache php5-mhash php5-ming php5-mysql php5-pspell php5-recode php5-snmp php5-sqlite php5-tidy php5-xmlrpc php5-xsl php5-sqlite php5-tidy php5-xmlrpc php5-xsl

Instalación MailScanner

cd /opt
wget http://www.mailscanner.info/files/4/tar/MailScanner-install-4.82.6-1.tar.gz
tar -xvzf MailScanner-install-4.82.6-1.tar.gz
cd MailScanner-install-4.82.6
./install.sh

Configuración

MailScanner

Editar el archivo MailScanner.conf que se encuentra en /opt/MailScanner-install-4.82.6/etc y modificar los siguiente parametros:

%report-dir% = /etc/MailScanner/reports/es
Run As User = postfix
Run As Group = postfix
Incoming Queue Dir = /var/spool/postfix/hold
Outgoing Queue Dir = /var/spool/postfix/incoming
MTA = postfix
Run As User = postfix
Run As Group = postfix
Virus Scanners = clamav
%org-name% = serloy
%org-long-name% = SerLoy Sistemas
%web-site% = http://www.serloy.com.ar
Incoming Work User = clamav
Incoming Work Group = 0640
Virus Scanning = yes
Virus Scanners = clamav
Monitors for ClamAV Updates = /var/lib/clamav/*.cvd
Quarantine Infections = yes  // para mantener copias de los archivos infectados
Notify Senders Of Viruses = yes //Notifica si el mail es infectado a quien envía
Virus Subject Text = {Virus Eliminado?}
Content Subject Text = {Contenido Peligroso?}
Disarmed Subject Text = {Revisado HTML}
Phishing Subject Text = {Posible intento de Fraude?}
Notices To = sergio.loyola@serloy.com.ar // cuenta en donde se recibe los mensajes 
de los mails que están infectados
Local Postmaster = ergio.loyola@serloy.com.ar // igual que el anterior
Spam List =  ORDB-RBL spamhaus.org spamhaus-XBL SBL+XBL spamcop.net NJABL

Necesitamos crear una carpeta y asignar permisos a postfix

mkdir /var/spool/MailScanner/spamassassin
chown postfix:postfix /var/spool/MailScanner/spamassassin
chown postfix:postfix /var/spool/MailScanner/quarantine
chown postfix:postfix /var/spool/MailScanner/incoming

Filtro por Contenido (MCP)

Para habilitar el filtro por contenido hay que hacer lo siguiente

find /usr/share/perl5 -name SpamAssassin -print

Este comando nos da la ruta sobre la que trabaja el MailScanner, en nuestro caso es la /usr/share/perl5/Mail/SpamAssassin. Nos movemos a ese directorio y ejecutamos lo siguiente:

perl -MMail::SpamAssassin -e 'print "You have version $Mail::SpamAssassin::VERSION\n";'

Este comando nos da la version de Spamassassin que estamos utilizando, con este dato vamos a la siguiente pagina: http://www.mailscanner.info/mcp.html nos descargamos los patch que nos corresponden y ejecutamos lo siguiente:

patch < Conf.pm.patch.3.0.0
patch < Message.pm.patch.3.0.0
patch < PerMsgStatus.pm.patch.3.0.0

Luego modificamos lo siguiente en el archivo MailScanner.conf

#
# MCP (Message Content Protection)
# -----------------------------
#
# This scans text and HTML messages segments for any banned text, using
# a 2nd copy of SpamAssassin to provide the searching abilities.
# This 2nd copy has its own entire set of rules, preferences and settings.
# When used together with the patches for SpamAssassin, it can also check
# the content of attachments such as office documents.
#
# See http://www.mailscanner.info/mcp.html for more info.
#

#Modificado por sergio el 13-04-2011
#Antes figuraba no

MCP Checks = yes

# Do the spam checks first, or the MCP checks first?
# This cannot be the filename of a ruleset, only a fixed value.
First Check = spam

# The rest of these options are clones of the equivalent spam options
MCP Required SpamAssassin Score = 1
MCP High SpamAssassin Score = 10
MCP Error Score = 1

MCP Header = X-%org-name%-MailScanner-MCPCheck:
Non MCP Actions = deliver
MCP Actions = deliver
High Scoring MCP Actions = store
Bounce MCP As Attachment = no

MCP Modify Subject = start
MCP Subject Text = {MCP?}
High Scoring MCP Modify Subject = start
High Scoring MCP Subject Text = {MCP?}

Is Definitely MCP = no
Is Definitely Not MCP = no
Definite MCP Is High Scoring = no
Always Include MCP Report = no
Detailed MCP Report = yes
Include Scores In MCP Report = no
Log MCP = no

MCP Max SpamAssassin Timeouts = 20
MCP Max SpamAssassin Size = 100k
MCP SpamAssassin Timeout = 10

MCP SpamAssassin Prefs File = %mcp-dir%/mcp.spam.assassin.prefs.conf
MCP SpamAssassin User State Dir =
MCP SpamAssassin Local Rules Dir = %mcp-dir%
MCP SpamAssassin Default Rules Dir = %mcp-dir%
MCP SpamAssassin Install Prefix = %mcp-dir%
Recipient MCP Report = %report-dir%/recipient.mcp.report.txt
Sender MCP Report = %report-dir%/sender.mcp.report.txt

Agregar filtros

Para filtrar por contenido, voy al directorio /opt/MailScanner/etc/mcp y edito el archivo reglas.cf

EJ:

body     RULE4    /tu cuenta de correo ha superado/i
describe RULE4    tu cuenta de correo ha superado cuerpo del mensaje
score    RULE4    50

Luego voy al Mailwatch -> Tools/Links -> Update SpamAssasin Rule MCP -> Run Now y Mailwatch -> Tools/Links -> Update MCP Rule Descriptions -> Run Now

Postfix

Como primer medida paramos el servicio postfix y editamos el archivo main.cf ubicado en /etc/postfix y agregamos lo siguiente:

header_checks = regexp:/etc/postfix/header_checks

Creamos el archivo header_checks con el siguiente contenido:

/^Received:/ HOLD 

Editamos el archivo transport, ubicado en /etc/postfix. En este archivo indicamos los dominios a manejar con sus respectivos SMTP

nano /etc/postfix/transport

programacion.serloy.com.ar smtp:[192.168.0.10]
soporte.serloy.com.ar smtp:[192.168.0.10]
itt.serloy.com.ar smtp:[192.168.0.10]

Luego ejecutamos el siguiente comando para crear la base (trasnport.db)


postmap /etc/postfix/transport

vi /etc/postfix/relay-domains

Esto le indica al sistema que debe recibir correos de cualquier usuario de estos dominios:

programacion.serloy.com.ar  OK
soporte.serloy.com.ar OK
itt.serloy.com.ar OK
serloy.com.ar OK

Luego hay que crear el binario:

postmap /etc/postfix/relay-domains

Ejemplo de como tiene que quedar el archivo main.cf

# See /usr/share/postfix/main.cf.dist for a commented, more complete version


# Debian specific:  Specifying a file name will cause the first
# line of that file to be used as the name.  The Debian default
# is /etc/mailname.
#myorigin = /etc/mailname

smtpd_banner = $myhostname ESMTP $mail_name (Debian/GNU)
biff = no

# appending .domain is the MUA's job.
append_dot_mydomain = no

# Uncomment the next line to generate "delayed mail" warnings
#delay_warning_time = 4h

readme_directory = no

# TLS parameters
smtpd_tls_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
smtpd_tls_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
smtpd_use_tls=yes
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache

# See /usr/share/doc/postfix/TLS_README.gz in the postfix-doc package for
# information on enabling SSL in the smtp client.

myhostname = antispam.correo.serloy.com.ar
mydomain = antispam.serloy.com.ar
myorgin = $mydomain
inet_interfaces = all
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
myorigin = /etc/mailname
mydestination =
mynetwork_style = host
relay_domains = hash:/etc/postfix/relay-domains
transport_maps = hash:/etc/postfix/transport
append_at_myorigin = no
header_checks = regexp:/etc/postfix/header_checks
relayhost =
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
mailbox_command = procmail -a "$EXTENSION"
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = all

Apache

Modifico el archivo /etc/apache2/mods-available/dir.conf

nano /etc/apache2/mods-available/dir.conf

y agrego lo siguiente:

DirectoryIndex index.html index.htm index.shtml index.cgi index.php index.php3 index.pl index.xhtml


Habilito algunos modulos de Apache

a2enmod ssl
a2enmod rewrite
a2enmod suexec
a2enmod include

Recargo la configuración de apache:

/etc/init.d/apache2 force-reload

Imagick

Debido a un bug que provoca el siguiente error:

PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib/php5/20060613/imagick.so' - libWand.so.9: cannot open shared object file: No such file or directory in Unknown on line 0

Hay que hacer lo siguiente para solucionarlo:

apt-get remove php5-imagick

apt-get install libmagick++-dev

pecl install imagick

editar /etc/php5/apache2/php.ini y agregar la siguiente linea:

extension=imagick.so

Reinicio Apache

/etc/init.d/apache2 restart

Pyzor

Tenemos que cambiar algunos permisos, sobre Pyzor

chmod -R a+rX /usr/share/doc/pyzor /usr/bin/pyzor /usr/bin/pyzord
chmod -R a+rxX /usr/share/python-support/pyzor

Here we supply the IP address of the Pyzor server to Pyzor. This will create the server's IP address in a servers file therein. Then it will test the connection. If you are behind a firewall, open port 24441/udp in and out to your server. While you're at it also open up 6277/udp for DCC, 2703/tcp for Razor and 783/tcp for SpamAssassin:

pyzor --homedir /opt/MailScanner/lib/MailScanner discover
pyzor ping

Razor

Crear carpeta de configuracion: .razor

rm /etc/razor/razor-agent.conf
mkdir /opt/MailScanner/lib/MailScanner/.razor
razor-admin -home=/opt/MailScanner/lib/MailScanner/.razor -create
razor-admin -home=/opt/MailScanner/lib/MailScanner/.razor -discover
razor-admin -home=/opt/MailScanner/lib/MailScanner/.razor -register
chown -R postfix:www-data /opt/MailScanner/lib/MailScanner
chmod -R ug+rwx /opt/MailScanner/lib/MailScanner

Hay que realizar unos cambios en /opt/MailScanner/lib/MailScanner/.razor/razor-agent.conf:

nano /opt/MailScanner/lib/MailScanner/.razor/razor-agent.conf

Cambiar el debuglevel = 3 to debuglevel = 0

debuglevel = 0
razorhome = /var/lib/MailScanner/.razor/

Instalación y configuración de MailWatch

Lo primero que hay que hacer, es verificar que el archivo php.ini tenga los siguiente seteos:

   * short_open_tag = On
   * safe_mode = Off
   * register_globals = Off
   * magic_quotes_gpc = On
   * magic_quotes_runtime = Off
   * session.auto_start = 0

These will be commented out you must remove the "#" to activate them:

   * extension=mysql.so
   * extension=gd.so

Descargamos Mailwatch

wget http://downloads.sourceforge.net/mailwatch/mailwatch-1.0.4.tar.gz?modtime=1178902008&big_mirror=0
tar xzvf mailwatch-1.0.4.tar.gz
cd mailwatch-1.0.4

Creo la base de Datos

mysql -u root -p < create.sql

Creo usuario y contraseña para Mailscanner SQL Logging

mysql -p
mysql> GRANT ALL ON mailscanner.* TO mailwatch@localhost IDENTIFIED BY 'password';

Creo el usuario de administración web

mysql mailscanner -u mailwatch -p

Enter password: ******

mysql> INSERT INTO users VALUES ('username',md5('password'),'mailscanner','A','0','0','0','0','0');

Edito y copio MailWatch.pm

Edito MailWatch.pm y cambio los valores $db_user y $db_pass por los ingresados en el paso anterior y muevo el archivo

mv MailWatch.pm /opt/MailScanner/etc/CustomFunctions/

Configuracion Mailwatch

Muevo el directorio mailscanner que se encuentra dentro del directorio mailwatch a la carpeta /var/www

mv mailscanner/ /var/www/
cd /var/www/mailscanner

Creo el directorio temp:

mkdir temp
chgrp www-data temp
chmod g+w temp

Chequeo los permisos de /var/www/mailscanner/images y /var/www/images/cache , los mismo deberian ser ug+rwx y pertenecer a root.

chown root:www-data images
chmod ug+rwx images
chown root:www-data images/cache
chmod ug+rwx images/cache

Creo el archivo conf.php a partir de conf.php.example, lo edito y cambio lo siguiente:

define(DB_USER, 'mailwatch');
define(DB_PASS, 'password');
define(MAILWATCH_HOME, '/var/www/mailscanner');
define(MS_LIB_DIR, '/usr/share/MailScanner/');
define(QUARANTINE_USE_FLAG, true);

Configuro MailScanner

Las siguientes opciones deben estar seteadas de la siguiente manera:

nano opt/MailScanner/etc/MailScanner.conf

   * Quarantine User = root
   * Quarantine Group = www-data
   * Quarantine Permissions = 0660
   * Quarantine Whole Message = yes
   * Always Looked Up Last = &MailWatchLogging
   * Quarantine Whole Message As Queue Files = no
   * Detailed Spam Report = yes
   * Include Scores In SpamAssassin Report = yes

Integrar Blacklist/Whitelist a SQL

Editar los valores de conexión MySQL dentro de la subrutina CreateList de SQLBlackWhiteList.pm para que coincida con los valores que ha entrado en MailWatch.pm anterior. Ambos archivos deben contener los mismos valores. (Busque las siguientes líneas en SQLBlackWhiteList.pm y escriba sus propios datos.)

my($db_user) = 'mailwatch';
my($db_pass) = 'password';

Copio SQLBlackWhiteList.pm a /opt/MailScanner/etc/CustomFunctions/.

Edito MailScanner.conf y seteo lo siguiente:

   * Is Definitely Not Spam = &SQLWhitelist
   * Is Definitely Spam = &SQLBlacklist

Spamassassin

Primero, necesito deshabilitar el archivo de configuración por defecto.

mv /etc/spamassassin/local.cf /etc/spamassassin/local.cf.disabled

Ahora hago una copia de seguridad del archivo de configuración del spamassasin que se encuentra en mailscanner.

cp /opt/MailScanner/etc/spam.assassin.prefs.conf /opt/MailScanner/etc/spam.assassin.prefs.conf.back

Agrego los path para pyzor y razor:

pyzor_options --homedir /opt/MailScanner/lib/MailScanner/
razor_config /opt/MailScanner/lib/MailScanner/.razor/razor-agent.conf

Comentar la siguiente linea:

  • #bayes_auto_expire 0

Mover la base bayesiana y setear los permisos en la configuracion

nano /opt/MailScanner/etc/spam.assassin.prefs.conf
bayes_path /etc/MailScanner/bayes/bayes
bayes_file_mode 0660

Reeemplazar "YOURDOMAIN-COM" por el valor colocado en "%org-name%"

bayes_ignore_header X-YOURDOMAIN-COM-MailScanner
bayes_ignore_header X-YOURDOMAIN-COM-MailScanner-SpamCheck
bayes_ignore_header X-YOURDOMAIN-COM-MailScanner-SpamScore
bayes_ignore_header X-YOURDOMAIN-COM-MailScanner-Information

Crear un nuevo directorio para bayes y setear permisos para que este en el grupo web user

mkdir /etc/MailScanner/bayes
chown -R root:www-data /etc/MailScanner/bayes
chmod -R ug+rw /etc/MailScanner/bayes
chmod g+s /etc/MailScanner/bayes

Copiar la base de bayes existente

cp /var/lib/MailScanner/bayes_* /etc/MailScanner/bayes
chown root:www-data /etc/MailScanner/bayes/bayes_*
chmod g+rw /etc/MailScanner/bayes/bayes_*

Hay que asegurarse que"bayes_auto_expire 0" no este comentado en el archivo spam.assassin.prefs.conf

Editar el archivo SpamAssassin v310.pre para habilitar Razor

loadplugin Mail::SpamAssassin::Plugin::Razor2

Para chequear que spamassassin esta utilizando la base correctar, debe correrse el siguiente comando:

spamassassin -D -p /opt/MailScanner/etc/spam.assassin.prefs.conf --lint

Debe obtnerse un resultado similar al siguiente:

debug: using "/etc/MailScanner/spam.assassin.prefs.conf" for user prefs file
debug: bayes: 28821 tie-ing to DB file R/O /etc/MailScanner/bayes/bayes_toks
debug: bayes: 28821 tie-ing to DB file R/O /etc/MailScanner/bayes/bayes_seen
debug: bayes: found bayes db version 2
debug: Score set 3 chosen.

Convertir la base de bayes Spamassassin a SQL

mysql -u root -p

mysql> create database sa_bayes;
mysql> GRANT ALL ON sa_bayes.* TO sa_user@localhost IDENTIFIED BY 'sa_password';
mysql> flush privileges;

localizar el archivo bayes_mysql.sql:

locate bayes_mysql.sql
mysql -u sa_user -p sa_bayes < /path/to/bayes_mysql.sql

Realizar backup de la base existente:

sa-learn -p /etc/MailScanner/spam.assassin.prefs.conf --backup > sa_bayes_backup.txt
sa-learn -p /path/to/spam.assassin.prefs.conf --clear #

Realizo unos cambio sobre spam.assassin.prefs.conf:

bayes_store_module Mail::SpamAssassin::BayesStore::SQL
bayes_sql_dsn DBI:mysql:sa_bayes:localhost
bayes_sql_username sa_user
bayes_sql_password sa_password
bayes_sql_override_username root

y comento lo siguiente:

#bayes_path /etc/MailScanner/bayes/bayes
#bayes_file_mode 0660

Relleno la base de datos de bayes:

sa-learn -p /etc/MailScanner/spam.assassin.prefs.conf --restore sa_bayes_backup.txt

Agrego lo siguiente al cron

crontab -e
30 01 * * * /path/to/sa-learn --force-expire --sync -p /etc/MailScanner/spam.assassin.prefs.conf

Seteo permisos:

chown -R postfix:www-data /var/spool/MailScanner
chown -R postfix:www-data /opt/MailScanner/lib/MailScanner
chown -R postfix:www-data /var/run/MailScanner
chown -R postfix:www-data /var/lock/subsys/MailScanner
chown -R postfix:www-data /var/spool/postfix/hold
chmod -R ug+rwx /var/spool/postfix/hold
chmod -R u+rwx,g+rx /var/spool/MailScanner/quarantine

reinicio MailScanner

/opt/MailScanner/bin/check_mailscanner

Chequeo la instalación:

spamassassin -x -D -p /opt/MailScanner/etc/spam.assassin.prefs.conf --lint

Editar el archivo db_clean y cambiar #!/usr/bin/php -qn por #!/usr/bin/php -q

Instalación de quarantine clean

cp /usr/src/mailwatch-1.0.4/tools/quarantine_maint.php /usr/bin/quarantine_maint.php
cp /usr/src/mailwatch-1.0.4/tools/db_clean.php /usr/bin/db_clean.php
chmod +x /usr/bin/quarantine_maint.php
chmod +x /usr/bin/db_clean.php

Edito cron y agrego las siguiente linea

crontab -e
15 10 * * 2 /usr/bin/quarantine_maint.php --clean &> /dev/null
58 23 * * * /usr/bin/db_clean.php &> /dev/null

Reinicio y con esto ya esta tarminada la instalaci{on y configuración. ahora ingreso desde un browser a http://<hostname>/mailscanner/ e ingreso mi usuario y contraseña.

Visualización de las colas de postfix (inbound / outbound)

MailWatch no visualiza correctamente las colas de postfix. Siempre aparecen en cero. Para subsanarlo, debemos aplicar un parche al código PHP de la aplicación.

Descargamos el código y lo descomprimimos.

wget -P /var/www/lhpaiak http://www.gbnetwork.co.uk/mailscanner/files/postfixmail.tar.gz
tar zxf postfixmail.tar.gz

Copiamos los ficheros en el directorio de la aplicación y parcheamos el fichero functions.php.

cd postfixmail
cp postfix* /var/www/mailscanner/
patch /var/www/mailscanner/functions.php functions.php.diff

Cambiamos los permisos al directorio /var/spool/postfix/hold.

chgrp www-data /var/spool/postfix/hold
chmod g+rw /var/spool/postfix/hold

Listo!

MSRE (MailScanner Ruleset Editor)

MSRE es un editor de reglas para MailScanner. Utiliza para ello un interface Web. Se integra visualmente con MailWatch, utilizando hojas de estilo similares. Vamos a descargarlo al directorio /var/www/lhpaiaki y descomprimirlo.

wget -P /var/www/lhpaiak http://sourceforge.net/projects/msre/files/msre/0.2.2/msre-0.2.2.tar.gz
tar -zxf msre-0.2.2.tar.gz

Lo instalamos dentro del directorio /var/www/mailscanner.

    
mkdir /var/www/mailscanner/msre
cp msre-0.2.2/*.php /var/www/mailscanner/msre/
cp msre-0.2.2/*.css /var/www/mailscanner/msre/

El fichero de configuración y el script de actiualización los situamos en /etc/msre.

    
mkdir /etc/msre
cp msre-0.2.2/msre_reload.sh /etc/msre/
cp msre-0.2.2/msre.conf.sample /etc/msre/msre.conf

Editamos el archivo /etc/msre/msre.conf y modificamos la linea $CONF_ruleset_dir = y colocamos la ubicación de nuestra carpeta rules.

Ponemos el fichero de tarea de cron en /etc/cron.d/.

    
cp msre-0.2.2/msre_reload.crond /etc/cron.d/

Modificamos los permisos del directorio /etc/MailScanner/rules para que MSRE pueda escribir en los ficheros que hay en su interior.

    
chown -R root:www-data /etc/MailScanner/rules
chmod g+rwxs /etc/MailScanner/rules
chmod g+rw /etc/MailScanner/rules/*

Si deseamos podemos modificar la hoja de estilos /var/www/mailscanner/msre/style.css. Se recomienda aumentar el tamaño de las tipografías.

La configuración no la vamos a tocar.

Finalmente lo integramos con MailWatch. Deseamos que se acceda al editor desde el menú de herramientas de MailWatch. Este menú está en el fichero /var/www/mailwatch/other.php. En dicho fichero, al final de la sección de herramientas añadimos las siguientes líneas:

....
<? if($GLOBALS['user_type'] == 'A'): ?>
    <LI><A HREF="msre/">Ruleset Editor</A>
<? endif; ?>
....

Liberando de cuarentena, correo con contenido peligroso

Liberar un mail de cuarentena y que no sea chequeado nuevamente con los filtros antispam y antivirus. Debemos agregar un registro a la db mailscanner en la tabla whitelist. Los valores serian:

to_address = default
to_domain = default
from_address = 127.0.0.1

Actualizar base GeoIP

Cambiar /var/www/mailscanner/geoip_update.php:

nano /var/www/mailscanner/geoip_update.php

Cambiar

dbquery("LOAD DATA INFILE

por

dbquery("LOAD DATA LOCAL INFILE

Luego ir a /var/www/mailscanner y cambiar los permisos de la carpeta temp, para que el usuario www-data pueda escribir sobre la misma.

Liberar de cuarentena como mailadmin

Para que cuando liberemos un mail de cuarentena llegue la notificación como sergio.loyola@serloy.com.ar, hay que modificar el archivo conf.php ubicado en la carpeta /var/www/mailscanner.

El parametro que modificamos de dicho archivo es el siguiente:

define('QUARANTINE_FROM_ADDR', 'postmaster');

Y lo reemplazamos por el siguiente:

define('QUARANTINE_FROM_ADDR', 'sergio.loyola@serloy.com.ar');

Tambien podemos modificar otros parametros:

define('QUARANTINE_REPORT_SUBJECT', 'Reporte de Mensaje en cuarentena');
define('QUARANTINE_SUBJECT', 'Mensaje Liberado desde la Cuarentena');
define('QUARANTINE_MSG_BODY', 'Le hacemos envio del mensaje original que estuvo en cuarentena, y hemos liberado : por su solicitud.
Atte.,
MailAdmin SERLOY');

Referencias

http://www1.iurreta-institutua.net/lhpaiak/docs/ins_posta_stat_es.html

http://www.howtoforge.com/the-perfect-spamsnake-ubuntu-8.04

http://drivemeca.blogspot.com/2008/09/email-server-con-postfix-mailscanner.html