Si estás recibiendo gran cantidad de “spam” (correo no deseado) en tu cuenta de correo, una de las soluciones más eficaces es la instalación de un filtro antes de leer el correo. Spamassasin es un filtro basado en Perl contra los correos no deseados que utiliza un amplio abanico de reglas sobre la cabecera y el cuerpo del mensaje del correo para detectarlo.
Este artículo se centra en la instalación de Spamassasin sobre Windows -hay que advertir de antemano que sólo funciona correctamente sobre plataformas basadas en tecnología NT, como: Windows 2000, XP y Windows 2003. Los pasos de instalación han sido extraídos de forma resumida de http://www.openhandhome.com/howtosa260.html
Existen una serie de requisitos básicos para su correcta instalación:
1. Tener instalado Perl. La distribución que existe para Windows es Active Perl. Para que funcione correctamente Spamassasin, es necesario utilizar la versión 5.6 de Active Perl que puede ser descargada de aquí.
2. Una vez que tengamos instalado Perl en la máquina, necesitaremos tener preparados los paquetes y utilidades necesarios para Spamassasin.
- NMAKE. Se trata del compilador -el equivalente MAKE de Linux- para construir los módulos de Perl. Podéis descargarlo de Microsoft en esta dirección: http://download.microsoft.com/download/vc15/Patch/1.52/W95/EN-US/Nmake15.exe
- Net::DNS.12..
- El propio paquete Spamassassin, que podremos descargar desde http://www.spamassassin.org/. Hay que tomar la distirbución que está empaquetada como zip.
3. A continuación, abriremos una sesión de DOS:
Ejecutar > cmd
iremos al lugar donde está instalado Perl (normalmente c:\Perl), en la carpeta bin y teclearemos (en caso de no haber colocado la ruta hasta Perl, en la variable de entorno ‘PATH’ de Windows):
PPM (es la consola que viene con esta distribución de Perl usada para el mantenimiento de Perl)
Ya en la consola de Perl, pasaremos a instalar los siguientes módulos, en caso de no estar instalados ya:
- DB_File. Para ellos tecleamos: install DB_File
- Time::HiRes. Para ellos tecleamos: install Time::HiRes
4. Instalación de Net::DNS.12. Descomprimiremos la distribución antes descargada, abriremos una sesión de DOS y después nos colocaremos en la carpeta donde ha sido descomprimido, e introduciremos lo siguiente:
perl MAKEFILE.PL
nmake
nmake INSTALL
Si todo ha ido bien, ya tendremos instalado el módulo de Perl. Concretamente, lo podremos ver en la carpeta ‘c:\Perl\site\lib\net\dns’.
Conviene borrar los archivos que han sido descomprimidos para la compilación de Perl, ya no serán necesarios.
5. Ahora vamos con Spamassassin. Descomprimimos el archivo zip, con las fuentes de este módulo que nos descargamos previamente. Como hicimos con Net::DNS.12, abriremos una sesión de DOS, nos colocaremos en la carpeta donde está descomprimido el paquete y teclearemos lo siguiente:
perl makefile.pl
nmake
nmake INSTALL
Preguntará lo siguiente:
What email address or URL should be used in the suspected-spam report
text for users who want more information on your filter installation?
(In particular, ISPs should change this to a local Postmaster contact)
default text: [the administrator of that system]
a lo cual podremos responder con cualquier dirección, por ejemplo: micorreo@local.com.
Si todo ha ido bien tras teclear ‘perl makefile.pl’, veremos los siguientes mensajes en la consola de DOS:
Checking if your kit is complete…
Looks good
Writing Makefile for Mail::SpamAssassin
Makefile written by ExtUtils::MakeMaker 5.45
Después de teclear ‘nmake’, deberíamos ver lo siguiente:
Microsoft (R) Program Maintenance Utility Version 1.50 Copyright (c) Microsoft Corp 1988-94. All rights reserved. cp lib/Mail/SpamAssassin/NetSet.pm blib\lib\Mail\SpamAssassin\NetSet.pm cp lib/Mail/SpamAssassin/Bayes.pm blib\lib\Mail\SpamAssassin\Bayes.pm cp lib/Mail/SpamAssassin/ConfSourceSQL.pm blib\lib\Mail\SpamAssassin\ConfSourceS QL.pm cp lib/Mail/SpamAssassin/DBBasedAddrList.pm blib\lib\Mail\SpamAssassin\DBBasedAd drList.pm cp lib/Mail/SpamAssassin/PerMsgStatus.pm blib\lib\Mail\SpamAssassin\PerMsgStatus .pm cp lib/Mail/SpamAssassin/Reporter.pm blib\lib\Mail\SpamAssassin\Reporter.pm cp lib/Mail/SpamAssassin/SHA1.pm blib\lib\Mail\SpamAssassin\SHA1.pm cp lib/Mail/SpamAssassin/Win32Locker.pm blib\lib\Mail\SpamAssassin\Win32Locker.p m cp lib/Mail/SpamAssassin/HTML.pm blib\lib\Mail\SpamAssassin\HTML.pm cp lib/Mail/SpamAssassin/ArchiveIterator.pm blib\lib\Mail\SpamAssassin\ArchiveIt erator.pm cp lib/Mail/SpamAssassin/PerMsgLearner.pm blib\lib\Mail\SpamAssassin\PerMsgLearn er.pm cp lib/Mail/SpamAssassin/AutoWhitelist.pm blib\lib\Mail\SpamAssassin\AutoWhiteli st.pm cp lib/Mail/SpamAssassin/PhraseFreqs.pm blib\lib\Mail\SpamAssassin\PhraseFreqs.p m cp lib/Mail/SpamAssassin/Util.pm blib\lib\Mail\SpamAssassin\Util.pm cp lib/Mail/SpamAssassin/Message.pm blib\lib\Mail\SpamAssassin\Message.pm cp lib/Mail/SpamAssassin/Dns.pm blib\lib\Mail\SpamAssassin\Dns.pm cp lib/Mail/SpamAssassin/EvalTests.pm blib\lib\Mail\SpamAssassin\EvalTests.pm cp lib/Mail/SpamAssassin/Locales.pm blib\lib\Mail\SpamAssassin\Locales.pm cp lib/Mail/SpamAssassin/Replier.pm blib\lib\Mail\SpamAssassin\Replier.pm cp lib/Mail/SpamAssassin/Conf.pm blib\lib\Mail\SpamAssassin\Conf.pm cp lib/Mail/SpamAssassin.pm blib\lib\Mail\SpamAssassin.pm cp lib/Mail/SpamAssassin/AuditMessage.pm blib\lib\Mail\SpamAssassin\AuditMessage .pm cp lib/Mail/SpamAssassin/Locker.pm blib\lib\Mail\SpamAssassin\Locker.pm cp lib/Mail/SpamAssassin/MailingList.pm blib\lib\Mail\SpamAssassin\MailingList.p m cp lib/Mail/SpamAssassin/CmdLearn.pm blib\lib\Mail\SpamAssassin\CmdLearn.pm cp lib/Mail/SpamAssassin/EncappedMIME.pm blib\lib\Mail\SpamAssassin\EncappedMIME .pm cp lib/Mail/SpamAssassin/BayesStore.pm blib\lib\Mail\SpamAssassin\BayesStore.pm cp lib/Mail/SpamAssassin/NoMailAudit.pm blib\lib\Mail\SpamAssassin\NoMailAudit.p m cp lib/Mail/SpamAssassin/PersistentAddrList.pm blib\lib\Mail\SpamAssassin\Persis tentAddrList.pm cp lib/Mail/SpamAssassin/Received.pm blib\lib\Mail\SpamAssassin\Received.pm cp lib/Mail/SpamAssassin/TextCat.pm blib\lib\Mail\SpamAssassin\TextCat.pm cp lib/Mail/SpamAssassin/UnixLocker.pm blib\lib\Mail\SpamAssassin\UnixLocker.pm cp lib/Mail/SpamAssassin/EncappedMessage.pm blib\lib\Mail\SpamAssassin\EncappedM essage.pm C:\Perl\bin\perl.exe build/preprocessor -Mbytes -DPERL_VERSION="5.6.1" -Mvars -DVERSION="2.63" -DPREFIX="C:\Perl" -DDEF_RULES_DIR="C:\Perl/share/spa massassin" -DLOCAL_RULES_DIR="C:\Perl/etc/mail/spamassassin" -DINSTALLSITELIB= "C:\Perl\site\lib" -DCONTACT_ADDRESS="mario@local.com" -Msharpbang -DPERL_BIN= "C:\Perl\bin\perl.exe" -DPERL_WARN="" -DPERL_TAINT="" -m -isa-learn.raw -osa-l earn C:\Perl\bin\perl.exe -IC:\Perl\lib -IC:\Perl\lib -MExtUtils::Command -e cp sa-learn blib\script\sa-learn C:\Perl\bin\perl.exe -IC:\Perl\lib -IC:\Perl\lib -e "system qq[pl2bat.b at ].shift" blib\script\sa-learn C:\Perl\bin\perl.exe build/preprocessor -Mbytes -DPERL_VERSION="5.6.1" -Mvars -DVERSION="2.63" -DPREFIX="C:\Perl" -DDEF_RULES_DIR="C:\Perl/share/spa massassin" -DLOCAL_RULES_DIR="C:\Perl/etc/mail/spamassassin" -DINSTALLSITELIB= "C:\Perl\site\lib" -DCONTACT_ADDRESS="mario@local.com" -Msharpbang -DPERL_BIN= "C:\Perl\bin\perl.exe" -DPERL_WARN="" -DPERL_TAINT="" -m -ispamassassin.raw -o spamassassin C:\Perl\bin\perl.exe -IC:\Perl\lib -IC:\Perl\lib -MExtUtils::Command -e cp spamassassin blib\script\spamassassin C:\Perl\bin\perl.exe -IC:\Perl\lib -IC:\Perl\lib -e "system qq[pl2bat.b at ].shift" blib\script\spamassassin
Finalmente, al teclear ‘nmake INSTALL’, veríamos esto:
Microsoft (R) Program Maintenance Utility Version 1.50 Copyright (c) Microsoft Corp 1988-94. All rights reserved. Installing C:\Perl\site\lib\Mail\SpamAssassin.pm Installing C:\Perl\site\lib\Mail\SpamAssassin\ArchiveIterator.pm Installing C:\Perl\site\lib\Mail\SpamAssassin\AuditMessage.pm Installing C:\Perl\site\lib\Mail\SpamAssassin\AutoWhitelist.pm Installing C:\Perl\site\lib\Mail\SpamAssassin\Bayes.pm Installing C:\Perl\site\lib\Mail\SpamAssassin\BayesStore.pm Installing C:\Perl\site\lib\Mail\SpamAssassin\CmdLearn.pm Installing C:\Perl\site\lib\Mail\SpamAssassin\Conf.pm Installing C:\Perl\site\lib\Mail\SpamAssassin\ConfSourceSQL.pm Installing C:\Perl\site\lib\Mail\SpamAssassin\DBBasedAddrList.pm Installing C:\Perl\site\lib\Mail\SpamAssassin\Dns.pm Installing C:\Perl\site\lib\Mail\SpamAssassin\EncappedMessage.pm Installing C:\Perl\site\lib\Mail\SpamAssassin\EncappedMIME.pm Installing C:\Perl\site\lib\Mail\SpamAssassin\EvalTests.pm Installing C:\Perl\site\lib\Mail\SpamAssassin\HTML.pm Installing C:\Perl\site\lib\Mail\SpamAssassin\Locales.pm Installing C:\Perl\site\lib\Mail\SpamAssassin\Locker.pm Installing C:\Perl\site\lib\Mail\SpamAssassin\MailingList.pm Installing C:\Perl\site\lib\Mail\SpamAssassin\Message.pm Installing C:\Perl\site\lib\Mail\SpamAssassin\NetSet.pm Installing C:\Perl\site\lib\Mail\SpamAssassin\NoMailAudit.pm Installing C:\Perl\site\lib\Mail\SpamAssassin\PerMsgLearner.pm Installing C:\Perl\site\lib\Mail\SpamAssassin\PerMsgStatus.pm Installing C:\Perl\site\lib\Mail\SpamAssassin\PersistentAddrList.pm Installing C:\Perl\site\lib\Mail\SpamAssassin\PhraseFreqs.pm Installing C:\Perl\site\lib\Mail\SpamAssassin\Received.pm Installing C:\Perl\site\lib\Mail\SpamAssassin\Replier.pm Installing C:\Perl\site\lib\Mail\SpamAssassin\Reporter.pm Installing C:\Perl\site\lib\Mail\SpamAssassin\SHA1.pm Installing C:\Perl\site\lib\Mail\SpamAssassin\TextCat.pm Installing C:\Perl\site\lib\Mail\SpamAssassin\UnixLocker.pm Installing C:\Perl\site\lib\Mail\SpamAssassin\Util.pm Installing C:\Perl\site\lib\Mail\SpamAssassin\Win32Locker.pm Installing C:\Perl\bin\sa-learn Installing C:\Perl\bin\sa-learn.bat Installing C:\Perl\bin\spamassassin Installing C:\Perl\bin\spamassassin.bat Writing C:\Perl\site\lib\auto\Mail\SpamAssassin\.packlist Appending installation info to C:\Perl\lib/perllocal.pod C:\Perl\bin\perl.exe -IC:\Perl\lib -IC:\Perl\lib -MExtUtils::Command -e mkpath C:\Perl/etc/mail/spamassassin C:\Perl\bin\perl.exe -MFile::Spec -MFile::Copy -e "copy(q{rules/local.c f}, q{C:\Perl/etc/mail/spamassassin/local.cf}) unless -f q{C:\Perl/etc/mail/spam assassin/local.cf};" C:\Perl\bin\perl.exe -IC:\Perl\lib -IC:\Perl\lib -MExtUtils::Command -e mkpath C:\Perl/share/spamassassin C:\Perl\bin\perl.exe -e "map unlink, " C:\Perl\bin\perl.exe build/preprocessor -Mvars -DVERSION="2.63" -DPREF IX="C:\Perl" -DDEF_RULES_DIR="C:\Perl/share/spamassassin" -DLOCAL_RULES_DIR="C :\Perl/etc/mail/spamassassin" -DINSTALLSITELIB="C:\Perl\site\lib" -DCONTACT_AD DRESS="mario@local.com" -m -Irules -OC:\Perl/share/spamassassin 10_misc.cf 20_an ti_ratware.cf 20_body_tests.cf 20_compensate.cf 20_dnsbl_tests.cf 20_fake_helo_t ests.cf 20_head_tests.cf 20_html_tests.cf 20_meta_tests.cf 20_phrases.cf 20_porn .cf 20_ratware.cf 20_uri_tests.cf 23_bayes.cf 25_body_tests_es.cf 25_body_tests_ pl.cf 25_head_tests_es.cf 25_head_tests_pl.cf 30_text_de.cf 30_text_es.cf 30_tex t_fr.cf 30_text_it.cf 30_text_pl.cf 30_text_sk.cf 50_scores.cf 60_whitelist.cf u ser_prefs.template triplets.txt languages C:\Perl\bin\perl.exe -IC:\Perl\lib -IC:\Perl\lib -MExtUtils::Command -e chmod C:\Perl/share/spamassassin
6. Como último paso, deberemos añadir una línea al archivo ‘spamassassin.bat’, que se ha generado en la carpeta ‘c:\Perl\bin’. Para ello, lo editaremos, y añadiremos la siguiente línea, por ejemplo después de ‘@ECHO OFF’:
SET RES_NAMESERVERS=ipaddress
donde ipaddress, es la dirección o direcciones de DNS que estemos utilizando. Si son varias, deberían estar separadas por un espacio.
Con esto ya tendremos instalado Spamassassin en nuestra máquina windows. Si deseamos hacer una prueba, se puede crear un archivo de texto de prueba y teclear lo siguiente:
spamassassin -D < archivo-spam-prueba.txt
Si deseamos comprobar que DNS funciona correctamente, existe un script muy útil que verifica esto:
use Net::DNS; my $name = "spamassassin.org"; my $res = Net::DNS::Resolver->new; my @mx = mx($res, $name); if (@mx) { foreach $rr (@mx) { print $rr->preference, " ", $rr->exchange, "\n"; } } else { print "can't find MX records for $name: ", $res->errorstring, "\n";
lo grabamos en un archivo llamado por ejemplo ‘test.pl’ y tecleamos:
perl test.pl
Para configurar de forma visual Spamassasin, existe un programa escrito en Visual Basic que os podeis descargar en esta dirección: http://www.openhandhome.com/
Spamassasin, tiene muchas opciones para configurar el filtro, así como los niveles de filtrado. Si deseais más información (en inglés), se encuentra en esta dirección: