activar spf en zimbra

22 de septiembre de 2009

Hay una persona que me matará cuando lea esta entrada. Seguro que me dirá algo como "¿cabroncete, después de 5 años me dices que no filtra por SPF?".

Se esperaba que con la versión 6 de Zimbra ya se trajera esto activado de serie... pero va ser que no. Y mucho peor, yo creía que ya lo traía de serie. Está muy bien que tú dominio ya esté preparado con los registros de SPF y esas cosas, ¿pero tú Zimbra los está utilizando?.

[root@zimbra ~]# dig txt google.com
...
google.com.   3600   IN   TXT   "v=spf1 include:_netblocks.google.com 
                                 ip4:216.73.93.70/31 ip4:216.73.93.72/31 ~all"
...

La respuesta es no. No tengo ni puta idea de por qué no lo está utilizando sabiendo desde hace años todo el problema del spam y concretamente del phishing.

Quien hace uso de esta funcionalidad dentro de todos los módulos Zimbra es el SpamAssessin. Es más, lo intenta cargar al arrancar:
# cat /opt/zimbra/conf/spamassassin/init.pre | grep SPF
loadplugin Mail::SpamAssassin::Plugin::SPF

Lo que se intenta cargar es el módulo de Perl llamado "Mail::SPF::Query" que normalmente no está instalado en una distribución Linux, tampoco lo instala Zimbra y tampoco está como recomendación. ¿Raro no?.

Simplemente debemos instalar el módulo de Perl Mail::SPF::Query y todos los requisitos que previamente nos hace saber:
# perl -MCPAN -e shell
cpan> install Mail::SPF::Query
cpan> force install Mail::SPF::Query (utilizar este comando si hay algún 
problema durante la instalación)

Ahora solo queda reiniciar Zimbra y ver en el log como se hace uso del nuevo módulo de SPF:
# zcontrol stop && zmcontrol start
# cat /var/log/zimbra.log | grep SPF
Sep 22 21:57:52 zimbra amavis[31739]: extra modules loaded after 
daemonizing/chrooting: Mail/SPF/Query.pm

Enviamos una par de emails de pruebas y miramos el cuerpo del mensaje. Uno utilizado el módulo SPF:
X-Spam-Status: No, score=1.763 tagged_above=-10 required=6.6
 tests=[BAYES_50=0.001, HTML_MESSAGE=0.001, MISSING_SUBJECT=1.762,
 SPF_PASS=-0.001] autolearn=no

Y el otro sin utilizar el módulo de Perl:
X-Spam-Status: No, score=0.463 tagged_above=-10 required=6.6 tests=[AWL=1.299,
 BAYES_00=-2.599, HTML_MESSAGE=0.001, MISSING_SUBJECT=1.762]
 autolearn=no

Ver como ahora hay un nuevo filtro llamado SPF_PASS.

Más información:
- http://www.zimbra.com/forums/administrators/33120-zcs-6-0-open-source-enable-spf.html
- http://wiki.zimbra.com/index.php?title=Improving_Anti-spam_system#SPF
- http://www.abuses.es/eswl/doc/spamassassin-eswl.pdf

lluvia en estambul

15 de septiembre de 2009

La fecha, 9 de septiembre en Estambul, situación, datacenter de Vodafone... llegada de tormentas torrenciales. Momento desesperado el minuto 3:20.



configuración y uso de fetchmail

14 de septiembre de 2009

fetchmail es una utilidad para UNIX/Linux que nos permite hacer de cliente POP/IMAP y descargar el correo de un buzón (o varios buzones) en local. Originalmente se basaba en otro proyecto llamado popclient hasta que al introducir el protocolo IMAP en 1996 cambio de nombre.

Puede ser utilizado para varias cosas. Una de ellas es para los usuario que no tienen acceso directo a Internet y es un admin (o ellos mismo) el que acceden a la cuenta de correo bajo fetchmail y le entregan el correo es su buzón local de su maquina. Yo, por ejemplo, lo utilizo para acceder a un buzón de correo donde hay multitud de correos para varios destinatarios y lo injecto al MTA de Postfix para que los reparta entre los buzones de los usuario finales.

Permite hacer pool de cuentas, acceder via SSL, liminar el numero de mensajes a descargar para reducir el ancho de banda, programar los pools cada cierto tiempo, descargar correos de un dominio concreto, reescribir direcciones de correo, etc.

A petición popular de zimbra-grupo se ha escrito un manual de fetchmail con casos reales de configuraciones.

configuración y uso de fetchmail.pdf

Más información:
+ Manual de fetchmail

google apps como servidor de correo de backup

7 de septiembre de 2009

Google Apps tiene una versión gratuita que puede servirnos para usarla como servidor de correo secundario (backup) en nuestra infraestructura de empresa. La idea es que cuando nuestro servidor de correo principal este offline (servidor caído, mantenimiento, caída de la linea de Internet, etc) no perdamos ningún correo de los que nos envían.

Para ello simplemente nos damos de alta en el servicio con nuestro propio dominio y le decimos a Google Apps que comience a aceptar correo de nuestro dominio enviándoselo a una única cuenta de relay o backup.

Posteriormente nosotros, cuando el servidor primario vuelva a funcionar, comenzaremos haciendo un fecth de los correo.

Aquí tenéis toda la información necesaria: servidor_backup_googleapps.pdf

ocultando php

6 de septiembre de 2009

Hace algún tiempo escribí un post explicando los tres parámetros básico para ocultar el rastro de versión que dejaba Apache y PHP. Aun así, cualquier usuario podía saber si nuestra Web estaba escrita en PHP simplemente viendo que los archivos cargados de la Web terminaban en ".php".
Con ayuda del módulo mod_rewrite de Apache vamos a reescribir todas las URL de forma que el usuario no sepa en ningún momento que tipo de archivo está cargando. Nuestro objetivo es reescribir URLs como "http://miweb/index.php?id=123" por una URL como "http://miweb/index?id=123". Si el usuario quisiera cargar la página "index.php" debería producir un error de que la página no existe ya que realmente la que debe cargar es "index".

Los archivos que creemos no debemos quitarles el .php ya que esto será transparente para el programador Web.

Para crear estas reglas hay que crear un .htaccess en la raiz de nuestra Web o modificar la configuración general (el httpd.conf) de Apache.

RewriteEngine on

# Rescribe /carpeta/archivo.php por /carpeta/archivo
RewriteRule ^([^.?]+)$ %{REQUEST_URI}.php [L]

# Devuelve 404 si hacemos la petición /carpeta/archivo.php
# Para Apache en Windows utilizar esta condición. Para Linux no utilizar [NC]
# RewriteCond %{THE_REQUEST} "^[^ ]* .*?\.php[? ].*$" [NC]
RewriteCond %{THE_REQUEST} "^[^ ]* .*?\.php[? ].*$"
RewriteRule .* - [L,R=404]

Más información:
- Apache mod_rewrite