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

martes, 27 de julio de 2010

eBox.vmx vmx para VMWare

EBox platform es una interesante distro de linux que lleva consigo muchas aplicaciones de redes para una pyme. De muy fácil administración y manejo.

Al bajar la versión para VMWare el paquete solo contiene el archivo eBox.vmdk pero no así el archivo de configuración de la máquina virtual eBox.vmx. Como solo tengo en mi máquina instalado el VMWare Player, entonces mi problema fue como crear el archivo de configuración vmx, aunque el archivo de configuración se puede editar con cualquier editor de textos existen herramientas en Internet que permiten la creación de estos archivos.

Yo utilicé http://www.easyvmx.com/ que mediante un formulario permite crear dicho archivo. Elegí 512MB en RAM, 2 tarjetas de red, compatibilidad con el CD-ROM y usb entre las principales características.

Mi archivo de configuración se puede bajar en: eBox.vmx

De todos modos si todavía desea cambiar parámetros el VMWare Player permite dicha acción eligiendo la máquina virtual con "Edit Virtual Machine Settings" y por ejemplo cambiar el tamaño de la RAM.


jueves, 8 de julio de 2010

Instalación TrueType fonts linux

Una potente librería para generar gráficos en php es jpgraph cuando hacía la prueba de los gráficos que genera para gantt obtuve un error de que no encontraba el font arial.ttf. El nombre del paquete que proporciona los fonts de microsoft es msttcorefonts. Como no viene en la distro CentOS por defecto debemos crear el rpm desde sus fuentes. Para ello seguimos los siguientes pasos:
  1. Instala el paquete  que permite extraer información de la especificación de un paquete cabextract, lo baje de los rpms de dag. rpm -ivh cabextract-1.2-1.el5.rf.i386.rpm
  2. Baja la especificación del paquete msttcorefonts con el comando: wget http://corefonts.sourceforge.net/msttcorefonts-2.0-1.spec
  3. Con la especificación podemos generar el nuevo rpm: rpmbuild -bb msttcorefonts-2.0-1.spec
  4. El anterior comando baja los archivos necesarios los compila y genera el rpm (Necesitas tener instaladas las herramientas de desarrollo en tu sistema). Ahora nos toca instalar ese paquete con: rpm -ivh /usr/src/redhat/RPMS/noarch/msttcorefonts-2.0-1.noarch.rpm
  5. Los nuevos fondos se instalan en /usr/share/fonts/msttcorefonts/. En mi problema para permitir que jpgraph encuentre los fonts requeridos tuve que crear el directorio: mkdir /usr/share/fonts/truetype y copiar los fondos con: cp /usr/share/fonts/msttcorefonts/*.ttf /usr/share/fonts/truetype/
Al final pude obtener mi gráfico :-)