BULMA: Ensalada de correo: Courier−imap, Exim, Fetchmail, Procmail, Spamassassin, Kmail, Evolution, Thunderbird y Squirrelmail
Bisoños Usuarios de GNU/Linux de Mallorca y Alrededores | Bergantells Usuaris de GNU/Linux de Mallorca i
Afegitons
Ensalada de correo: Courier−imap, Exim, Fetchmail, Procmail,
Spamassassin, Kmail, Evolution, Thunderbird y Squirrelmail (29897 lectures)
Per Paco Ros, Paco (http://www.pacoros.net)
Creat el 07/09/2003 18:31 modificat el 07/09/2003 18:31
Tengo 5 ó 6 direcciones de correo en casa y, por algún motivo, un par de ellas han caído en manos de
los spammers.
Por ese motivo, me he visto en la necesidad de aderezar esta ensalada para montar un sistema que me
filtre el correo no deseado y sea lo más rápido posible.
Después de varias lecturas, un par de pruebas y unos consejos de la bulmailing este es el resultado de
mis "investigaciones": Un "cromo" sobre cómo poner en marcha cada cosa en un entorno doméstico.
Mirad los "relacionados" si queréis soluciones más potentes.
Introducción
Vaya por delante que la solución final pasa por utilizar Exim + courier−imap + fetchmail + procmail + Kmail +
Squirrelmail, pero vamos paso por paso.
Todo lo que voy a explicar a continuación está probado en Debian Sid, aunque estos programas son tan conocidos que,
no deberíais tener problemas para encontrar paquetes en vuestra distribución.
Exim
El primer punto a tratar es el reparto de correo local. En Debian, sólo por instalarla, se instala un servidor SMTP. En mi
caso es Exim (v3.36 aunque está disponible Exim 4). Si por el motivo que sea no se instaló cuando instalasteis la
distribución: apt−get install exim
Al instalarlo en Debian, debemos indicar que lo usaremos como servidor de correo para nuestra LAN o, incluso, para
nuestro host individual. Seleccionaremos el usuario que deberá recibir el correo de root y poco más.
Ya tenemos correo local. Podemos hacer una prueba con echo 'Prueba' | mail −s 'Primera prueba' usuario@host e
inmediatamente recibiremos un you have a new mail
Vamos a aprovechar para poner el correo local en formato Maildir porque, como explicaré a continuación,
courier−imap necesita encontrar el correo local en formato Maildir para funcionar.
Para ello editaremos /etc/exim/exim.conf y buscaremos la sección que pone local_delivery:. La modificaremos y la
dejaremos así:
driver = appendfile
maildir_format = true
directory = /home/${local_part}/Maildir
create_directory = true
group = mail
mode = 0600
check_string = ""
escape_string = ""
1/5
BULMA: Ensalada de correo: Courier−imap, Exim, Fetchmail, Procmail, Spamassassin, Kmail, Evolution, Thunderbird y Squirrelmail
prefix = ""
suffix = ""
Evidentemente, la parte importante es la que pone maildir_format.
Reiniciamos exim con /etc/init.d/exim restart y ya tenemos el correo en formato maildir.
Podemos volver a hacer la prueba del correo y, antes de leerlo, ir al directorio $HOME/Maildir/new para comprobar
que tenemos un mensaje de correo nuevo.
Ahora nos ocuparemos de cómo leerlo, ya que mailx (comando mail en la consola) no lee maildir, aunque podríais usar
perfectamente, por ejemplo, mutt en este punto y leer vuestro mensaje.
Fetchmail
Ahora que tenemos el correo local funcionando vamos a instalar fetchmail. Esta herramienta permite, a partir de un
fichero de configuración en el $HOME del usuario (.fetchmailrc) recoger el correo de varios servidores externos y
dárselo a Exim para que lo reparta.
La instalación: apt−get install fetchmail
No hay que hacerle nada raro. Sólo crear un fichero .fetchmailrc en nuestro $HOME. Hay herramientas como
fetchmailconf que lo hacen por nosotros, pero yo me he encontrado incorrecciones en el fichero generado y no sé si son
culpa del fetchmailconf o de que no sé usar ese programa.
En cualquier caso, el fichero es muy simple. Vamos a suponer que nuestro usuario local es pepe. Tiene que tener este
aspecto:
set postmaster "pepe"
set bouncemail
set no spambounce
set properties ""
#set daemon 90 (Hablaremos de esta opción en seguida)
# Cuentas de correo de ono:
[email protected] y
[email protected]
poll pop3.ono.com with proto POP3
user 'pepe1' there with password 'ElPasswordDePepe1' is 'pepe' here
user 'pepe2' there with password 'ElPasswordDePepe2' is 'pepe' here
# Cuentas de correo terra:
[email protected] [email protected] y
[email protected]
poll pop3.terra.es
user 'pepe2' there with password 'ElPasswordDePepe2' is 'pepe' here
user 'pepe3' there with password 'ElPasswordDePepe3' is 'pepe' here
user 'pepe4' there with password 'ElPasswordDePepe4' is 'pepe' here
# Cuentas de correo de Microsoft:
[email protected] ;−)
poll microsoft.com with proto POP3
user 'wgates' there with password 'Hasecorp' is 'pepe' here
Para comprobar que funciona podemos ejecutar fetchmail y ver y resultado. Si hay correo en alguna cuenta aparecerá
en $HOME/Maildir/new
Si queremos (que es lo deseable) que fetchmail se ejecute constantemente tenemos 2 opciones:
− Ponerlo en el cron
− Ejecutarlo en modo daemon
Si lo ejecutamos en modo daemon, tenemos que quitar el comentario de la línea que pone set daemon en el .fetchmailrc
indicando un número de segundos y bastará con ejecutarlo una vez cada vez que pongamos el equipo en marcha (por
ejemplo poniéndolo en el .bashrc o en el Autostart de KDE o Gnome).
2/5
BULMA: Ensalada de correo: Courier−imap, Exim, Fetchmail, Procmail, Spamassassin, Kmail, Evolution, Thunderbird y Squirrelmail
A mí me ha parecido más cómodo ponerlo en el cron. Este demonio fundamental en cualquier sistema UNIX que
ejecuta periódicamente las tareas.
Para poner el fetchmail en el cron tenemos que añadir la siguiente línea en el fichero /var/spool/cron/crontabs/pepe
(recordemos que nuestro usuario se llama pepe):
*/3 * * * * /usr/bin/fetchmail −s
/3 indica que se ejecutará la tarea cada 3 minutos. Si tenéis problemas con el cron, siempre podéis usar una utilidad
como kcron para añadir la tarea o consultar la página man (man crontab).
Spamassassin
Poco que decir: apt−get install spamassassin. Tenéis varios artículos en BULMA hablando de Spamassassin y de
bogofilter. Para ponerlo a funcionar usaremos procmail.
Sin embargo, procmail no es la única manera de utilizar Spamassassin. Podemos ahorrarnos todo lo que he estado
explicando y configurar Kmail o Evolution para que ejecuten Spamassassin a la llegada de cualquier correo como
explican en este articulo para Kmail(1) y en este otro para Evolution(2).
Configurar directamente spamassassin de esta manera tiene un problema: ralentiza enormemente la recogida del correo.
El Kmail o Evolution se conectan al servidor para recoger el correo y, antes de depositarlo en las carpetas del
programa, ejecutan spamassassin y no continúan bajando mensajes hasta que spamassassin ha terminado dejando
semi−congelado el cliente de correo.
Podéis probar estas técnicas si queréis antes de meteros en la configuración del resto de ingredientes de la ensalada :−)
Procmail
Ahora que ya tenemos todas nuestras cuentas de correo centralizadas en nuestra máquina, queremos procesar el correo.
Esta tarea la lleva a cabo exim justo antes de dejar el correo en el Maildir de cada usuario.
Procmail es una herramienta muy potente que permite repartir el correo, filtrarlo, organizarlo en carpetas, reenviarlo
automáticamente... etc. Nosotros sólo lo vamos a utilizar para llamar a spamassassin.
Opcionalmente podríamos mandar el Spam a /dev/null, pero, a veces, el spamassassin se equivoca, con lo cual siempre
es mejor revisar el spam antes de borrarlo.
Instalarlo es fácil: apt−get install spamassassin
Una vez instalado hay que crear un fichero llamado .procmailrc en el home de cada usuario. Este es el que sólo llama a
Spamassassin:
PATH=/usr/bin:/bin:/usr/local/bin:.
MAILDIR=$HOME/Maildir # Asegurarse de que existe!!
DEFAULT=$MAILDIR/
:0fw: spamassassin.lock
* <256000
| spamassassin
# Algunas versiones de Spamassassin eliminan la letra F
# de la cabecera From
:0
* ^^rom[ ]
{
LOG="*** Dropped F off From_ header! Fixing up. "
:0 fhw
3/5
BULMA: Ensalada de correo: Courier−imap, Exim, Fetchmail, Procmail, Spamassassin, Kmail, Evolution, Thunderbird y Squirrelmail
| sed −e '1s/^/F/'
}
Listo. Lo único que hace spamassassin es añadir una cabecera X−Spam−Status: Yes si considera que el mensaje
procesado es Spam. Luego, filtraremos los mensajes con esta cabecera y los llevaremos a otra carpeta.
Podéis probar si funciona con algo así:
$ echo '<html><body>www.freeporn.com</body></html>' | \
mail −s 'Free porn or enlarge your penis' pepe@localhost
Miráis en $HOME/Maildir/new el último fichero (por fecha) y hacedle un cat. Veréis la cabecera Spam−Status a Yes.
Kmail
Este es el cliente que viene con el KDE como muchos sabréis. Tenemos que definir una nueva cuenta de correo Local:
1.− Ir a Preferencias − Configurar Kmail Red Recibiendo
2.− Pulsar Añadir
3.− Seleccionar Directorio del buzón
4.− Introducir /home/pepe/Maildir/ directorio del buzón (recordemos que nuestro usuario se llama pepe)
Ahora configuramos el filtrado desde el Kmail:
1.− Ir a Preferencias Configurar filtros
2.− Crear un filtro donde X−Spam−Flag sea igual a Yes
3.− Pedid que se os mueva el mensaje a la carpeta Spam (creadla a mano si no la tenéis)
Ya está. Le podéis dar a Comprobar correo.
Podéis hacer la misma prueba de antes con el free porn para ver si funciona.
Evolution
Es el cliente de Ximian que casi forma parte de Gnome. El funcionamiento con Evolution es muy similar al de Kmail.
Hay que dar de alta la cuenta de correo local como Maildir y configurar los filtros para que cuando llegue un mensaje
con la cabecera X−Spam−Flag: Yes lo mueva a la carpeta Spam
Courier−imap
Yo quería poder leer el correo vía web por si no estoy en casa o, incluso, con un cliente imap, así que probé uw−imapd.
Muy simple, funciona con imap sobre SSL (no olvidéis configurar la cuenta como SSL en vuestro cliente si usáis este)
pero tiene un molesto bug(3
Comentarios de: BULMA: Ensalada de correo: Courier-imap, Exim, Fetchmail, Procmail, Spamassassin, Kmail, Evolution, Thunderbird y Squirrelmail (0)
No hay comentarios