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