martes, 31 de agosto de 2010

Antispam Qmail con spamassassin, dcc, razor

SpamAssassin

Instalación de spamassin desde los repositorios:
yum -y install spamassassin

Iniciar/Reiniciar el servicio y que suba por defecto en los niveles de operación 3 y 5:
service spamassassin restart
chkconfig --level 35 spamassassin on

Editar el archivo /etc/sysconfig/spamassassin:


vi /etc/sysconfig/spamassassin

Reemplazar el contenido que tiene por:
SPAMDOPTIONS="-x -u spamd -H /home/spamd -d"

Editar el archivo de configuración de spamassassin:
vi /etc/mail/spamassassin/local.cf

Adicionar la siguiente línea:
required_hits 5

Los siguientes módulos deben estar listos para spamassassin:


yum -y install perl-Digest-SHA1 \
perl-Digest-HMAC \
perl-Net-DNS \
perl-HTML-Tagset \
perl-HTML-Parser \
perl-Time-HiRes \
perl-suidperl \
perl-DateManip \
perl-TimeDate


Algunos módulos no están disponibles mediante el repositorio y se deben instalar mediante CPAN:

perl -MCPAN -e "install Time::HiRes"
perl -MCPAN -e "install Parse::Syslog"
perl -MCPAN -e "install Statistics::Distributions"
perl -MCPAN -e "install Mail::SPF::Query"
perl -MCPAN -e "install IP::Country::Fast"
perl -MCPAN -e "install MIME::Base64"
perl -MCPAN -e "install Getopt::Long"
perl -MCPAN -e "install URI::Escape"
perl -MCPAN -e "install Mail::SPF"
perl -MCPAN -e "install Mail::SpamAssassin"
perl -MCPAN -e "install Bundle::CPAN"
perl -MCPAN -e "install IO::Zlib"
perl -MCPAN -e "install Test::Harness"
perl -MCPAN -e "install Test::Simple"
perl -MCPAN -e "install Mail::DKIM"
perl -MCPAN -e "install Mail::DomainKeys"
perl -MCPAN -e "install Crypt::OpenSSL::Bignum"
perl -MCPAN -e "install Archive::Tar"
perl -MCPAN -e "install IO::Socket::INET6"
perl -MCPAN -e "install IO::Socket::SSL"
perl -MCPAN -e "install Net::Ident"
perl -MCPAN -e "install Encode::Detect"
perl -MCPAN -e "install Razor2::Client::Agent" # will be installed with Razor software
perl -MCPAN -e "install File::Copy" # problem

Algunos módulos que se utilizan en los archivos .pre (mas adelante los configuramos):

perl -MCPAN -e "install Mail::SpamAssassin::Plugin::RelayCountry"
perl -MCPAN -e "install Mail::SpamAssassin::Plugin::URIDNSBL"
perl -MCPAN -e "install Mail::SpamAssassin::Plugin::Hashcash"
perl -MCPAN -e "install Mail::SpamAssassin::Plugin::SPF"
perl -MCPAN -e "install Mail::SpamAssassin::Plugin::DCC"
perl -MCPAN -e "install Mail::SpamAssassin::Plugin::Pyzor"
perl -MCPAN -e "install Mail::SpamAssassin::Plugin::Razor2"
perl -MCPAN -e "install Mail::SpamAssassin::Plugin::SpamCop"
perl -MCPAN -e "install Mail::SpamAssassin::Plugin::AntiVirus"
perl -MCPAN -e "install Mail::SpamAssassin::Plugin::AWL"
perl -MCPAN -e "install Mail::SpamAssassin::Plugin::AutoLearnThreshold"
perl -MCPAN -e "install Mail::SpamAssassin::Plugin::WhiteListSubject"
perl -MCPAN -e "install Mail::SpamAssassin::Plugin::DomainKeys"
perl -MCPAN -e "install Mail::SpamAssassin::Plugin::MIMEHeader"
perl -MCPAN -e "install Mail::SpamAssassin::Plugin::ReplaceTags"
perl -MCPAN -e "install Mail::SpamAssassin::Plugin::DKIM"
perl -MCPAN -e "install Mail::SpamAssassin::Plugin::Check"
perl -MCPAN -e "install Mail::SpamAssassin::Plugin::HTTPSMismatch"
perl -MCPAN -e "install Mail::SpamAssassin::Plugin::URIDetail"
perl -MCPAN -e "install Mail::SpamAssassin::Plugin::Shortcircuit"
perl -MCPAN -e "install Mail::SpamAssassin::Plugin::Bayes"
perl -MCPAN -e "install Mail::SpamAssassin::Plugin::BodyEval"
perl -MCPAN -e "install Mail::SpamAssassin::Plugin::DNSEval"
perl -MCPAN -e "install Mail::SpamAssassin::Plugin::HTMLEval"
perl -MCPAN -e "install Mail::SpamAssassin::Plugin::HeaderEval"
perl -MCPAN -e "install Mail::SpamAssassin::Plugin::MIMEEval"
perl -MCPAN -e "install Mail::SpamAssassin::Plugin::RelayEval"
perl -MCPAN -e "install Mail::SpamAssassin::Plugin::URIEval"
perl -MCPAN -e "install Mail::SpamAssassin::Plugin::WLBLEval"
perl -MCPAN -e "install Mail::SpamAssassin::Plugin::VBounce"
perl -MCPAN -e "install Mail::SpamAssassin::Plugin::Rule2XSBody"
perl -MCPAN -e "install Mail::SpamAssassin::Plugin::ASN"
perl -MCPAN -e "install Mail::SpamAssassin::Plugin::ImageInfo"

Si alguno de los módulos de arriba falla se debe instalar manualmente con make. Mas trabajo pero así es la vida... se sufre a veces!!!.

Editar el archivo de configuración de spamassassin deshabilitar si existe la opción:
# ok_languages en


Habilitar/Deshabilitar/Activar chequeos en los archivos .pre:


vi /etc/mail/spamassassin/init.pre
...
loadplugin Mail::SpamAssassin::Plugin::RelayCountry
# loadplugin Mail::SpamAssassin::Plugin::URIDNSBL
#loadplugin Mail::SpamAssassin::Plugin::SPF
...


vi /etc/mail/spamassassin/v310.pre
...
loadplugin Mail::SpamAssassin::Plugin::DCC
# loadplugin Mail::SpamAssassin::Plugin::Pyzor
loadplugin Mail::SpamAssassin::Plugin::Razor2
# loadplugin Mail::SpamAssassin::Plugin::SpamCop
# loadplugin Mail::SpamAssassin::Plugin::AntiVirus
# loadplugin Mail::SpamAssassin::Plugin::AWL
loadplugin Mail::SpamAssassin::Plugin::AutoLearnThreshold
# loadplugin Mail::SpamAssassin::Plugin::WhiteListSubject
# loadplugin Mail::SpamAssassin::Plugin::DomainKeys
loadplugin Mail::SpamAssassin::Plugin::MIMEHeader
loadplugin Mail::SpamAssassin::Plugin::ReplaceTags
...


vi /etc/mail/spamassassin/v312.pre
...
loadplugin Mail::SpamAssassin::Plugin::DKIM


vi /etc/mail/spamassassin/v320.pre
...
loadplugin Mail::SpamAssassin::Plugin::Shortcircuit
loadplugin Mail::SpamAssassin::Plugin::ASN
loadplugin Mail::SpamAssassin::Plugin::Rule2XSBody

Compilando y actualizando las reglas de SpamAssassin:

La mejor manera es compilar las reglas con el comando "sa-compile" para ellos se necesita el re2c, lo baje e instale de
http://packages.sw.be/re2c/


El siguiente comando actualiza las reglas:
sa-update -D


Las compilamos:
sa-compile


Reiniciamos spamassassin:
service spamassassin restart


Testear spamassassin y checar errores:
spamassassin --lint -D

Si no hay errores, felicidades tienes una instalación limpia de Spamassasin.


Instalando DCC :


Bajar el software e instalarlo:cd /downloads/
wget http://www.rhyolite.com/anti-spam/dcc/source/dcc.tar.Z
tar xzf dcc.tar.Z
cd dcc-1.3.123
./configure
make
make install


Actualizar el archivo de configuración de spamassassin:


vi /etc/mail/spamassassin/local.cf
...
...
dcc_home /var/dcc
dcc_path /usr/local/bin/dccproc
dcc_dccifd_path /var/dcc/dccifd



vi /var/dcc/dcc_conf
. . .
DCCIFD_ENABLE=on
. . .


cp /var/dcc/libexec/rcDCC /etc/rc.d/init.d/dcc
chkconfig --level 35 dcc on
service dcc start


Verificar que los procesos de dcc están corriendo:

# ps aux | grep -i dcc
 root      8318  0.0  0.0   2548   284 ?        Ss   17:32   0:00 /var/dcc/libexec/dccifd -tREP,20 -tCMN,5, -llog -wwhiteclnt -Uuserdirs -SHELO -Smail_host -SSender -SList-ID
root      8319  0.0  0.1  34852  2604 ?        Sl   17:32   0:00 /var/dcc/libexec/dccifd -tREP,20 -tCMN,5, -llog -wwhiteclnt -Uuserdirs -SHELO -Smail_host -SSender -SList-ID

Habiliar el plugin dcc en los archivos .pre (v310.pre).  Reiniciar luego SpamAssassin.

DCC utilizar puertos tanto TCP como UDP, el firewall (si existe) debería permitir el acceso irrestricto. 



Instalar Razor:

Bajar e instalar Razor:


cd /downloads/
wget http://ufpr.dl.sourceforge.net/project/razor/razor-agents/2.84/razor-agents-2.84.tar.bz2
tar xjf razor-agents-2.84.tar.bz2
cd razor-agents-2.84
perl Makefile.PL
make install


Adicionar la siguiente línea al archivo de configuración local.cf de spamassassi:

vi /etc/mail/spamassassin/local.cf
...
...
razor_config /etc/razor/razor-agent.conf


Luego ejecutar los comandos:
razor-admin -d -home=/etc/razor -create
razor-admin -d -home=/etc/razor -register



Reiniciar spamassasin:
service spamassassin restart

Checar algún error con el comando:
tail -n20 /var/log/maillog |more
Algunos tips que me solucionaron problemas del dcc (Error: no working DCC servers dcc1.dcc-servers.net dcc2.dcc-servers.net dcc3.dcc-servers.net)
chown qscand:qscand /var/dcc
chmod 755 /var/dcc

2 comentarios:

  1. Excelente, funciona muy bién, esperemos que termine en gran parte el problema de spam

    ResponderEliminar
  2. Gracias Guillermo, eso es una eterna pelea que hay que ir monitorizando regularmente, pero estas herramientas ayudan mucho.

    ResponderEliminar