Bienvenido a   :: LINUX SOLUTIONS CENTER ::

México,  Miercoles 20 de Agosto del 2008   
  Hora Local
Home Servidores Filtrado de correo con Procmail
LINUX es nuestra Especialidad: · Servidores de Internet · Monitoreo de Servidores y Enlaces · Virtualizacion · Firewalls con OpenSource · Proxy Servers (Web Cache) · DNS y DHCP · Web Server · Webmail · NAT's · IP Forwarding · FTP Server · Email Attachmnt Filtering · Reportes estadisticos · Linux Gateway/Router · Bloqueo de Puertos · Email Server · Reporte de todo el trafico interno/externo · Administracion de Ancho de banda · VPN's con Open VPN · Soporte Ténico comercial · Administración de servidores Linux (RedHat EL/AS, Debian, CentOs, etc) · Instalación y Configuración de Servidores · Configuración de servidores de E-Mail (Sendmail, Qmail, Postfix con virtual domains) · Antvirus con OpenSource · Administración de LVM · y mas... mucho mas

El Clima
Current Wed, 20 Aug 2008 8:47 am CDT
City: Ocoyucan
Mostly Cloudy
sunrise: 7:15 am
sunset: 7:56 pm
Act: 14°
Máx: 19°
Mín: 12°

Esta NocheMañana
Scattered
Thunderstorms
Scattered
Thunderstorms
 
Máx: 19°
Mín: 12°
Máx: 22°
Mín: 12°

Próximos Cursos de GNU/Linux Julio 2008 en Puebla y más


Banner Advertisement

Otros Productos y servicios aquí


Filtrado de correo con Procmail PDF Imprimir E-mail
Servidores
Escrito por Domingo Varela   
Jueves, 06 de Marzo de 2008 23:15

Se sabe que Procmail es un paquete diseñado para filtrar correo electrónico en base a determinados criterios. Éste programa fué escrito por Stephen van de Berg, y la página se encuentra en http://www.procmail.org,

Procmail es una utilidad de uso general de correo muy potente; se puede usar para fines muy distintos:

  • Para clasificar los mensajes entrantes por remitente, asunto, o cualquier otro esquema.
  • Para rechazar correo de usuarios o dominios específicos con características o contenido (definido localmente); y se puede rechazar o separarlo según convenga.
  • Para identificar el Spam, que se puede rechazar o separarlo para examinarlo después.
  • Para buscar problemas de seguridad en el correo (como virus y macros en los archivos adjuntos o enlazados), pudiendo recharzar los mensajes o ponerlos en cuarentena.

De hecho, procmail es la herramienta de filtrado de correo preferido por los usuarios de sistemas UN*X. Se suele aplicar a los mensajes principalmente de dos formas: usandolo como agente local de entrega de correo o para filtrar el correo entrante de los usuarios, normalmente en el archivo .forward como el siguiente ejemplo:

|IFS=' ' && exec /usr/bin/ procmail -Yf- | | exit 75
#username

En el ejemplo anterior se define primero que el separador de campos del intérprete de comandos es un espacio y luego ejecuta procmail, especificando las opciones -Y (asumimos que el formato de los buzones es BSD) y -f (indica que se actualize la fecha en el From de las cabeceras). Es posible que haga falta modificar la ruta para adecuarla a un sistema. Si se desean algunas precauciones, se puede usar algo como esto:

|IFS=' ' && p=/usr/bin/procmail && test -f $p && exec $p -Yf- | | exit 75
#username

Esta versión comprueba la existencia del ejecutable de procmail antes de invocarlo. El último elemento, es un comentario para el intérprete de comandos, y es necesario. Como lo explica la página del manual de procmail, éste elemento "no es realmente un parámetro requerido por procmail, de hecho el intérprete de comandos lo descartará antes de que procmail lleve a verlo; pero es, aun así, necesario contra los programas de sendmail muy optimizados".

Nota: El archivo del usuarios .forward no es necesario ni se usa cuando procmail es el agente de entrega local.


Configuración de Procmail
Procmail recibe las intruccions de filtrado de correo en un archivo de configuración, a nivel de sistema, el archivo de configuración se localiza en el /etc/procmail. El archivo específico de cada usuario es ~/.procmail.


Configuraciones de ejemplo de Procmail

Ejemplo 1
#-------------------------------------------------------------------
#Definicion de variables
PATH=/bin:/usr/bin:/usr/local/bin:$HOME/bin:/usr/sbin
MAILDIR=$HOME/Mail
DEFAULT=$MAILDIR/logs

#desechar los mensajes de este usuario
0:
*
* ^From. *pepe@nador\.com
/dev/null

#Copiar todos los demas mensajes de correo al archivo
:0c
archivo
#---------------------------------------------------------------------

Descripción del ejemplo 1.
En la parte inicial del archivo de configuración se definen algunas variables de procmail como son: el directorio del correo, la ruta de búsqueda y el destino por dafault para los mensajes no redirigidos por alguna regla.

La primera regla filtra el correo del usuario pepe de nador.com redirigiendolo a /dev/null. Observe que la condición es una expresión regular con la que se comprueba el mensaje entrante. Contrariamente a lo que se espera, la búsqueda de patrones no es, por defecto, sensible a las mayúsculas.

La segunda regla copia incondicionalmente todos los mensajes entrantes al archivo ~/Mail/archivo, las rutas relativas son intepretadas con respecto a MAILDIR, mientras que se mantiene el mensaje original en el flujo de entrada. Dado que no hay ninguna condición especificada, todos los mensajes coindidirán y serán procesados.

La copia ocurre porque se incluye la opcion c (clonar un mensaje) en la línea inicial. Como indica esta regla, la línea inicial puede incluir potencialmente una variedad de elementos. El 0 puede estar seguido de una o mas letras de código (opciones especificando las variaciones en el manejo de mensajes), y la cadena entera puede ser seguida por otro punto, lo que causa que procmail use un achivo de bloqueo mientras procesa un mensaje con esta regla.

Si este es el archivo de configuración .procmail completo, entonces todos los mensajes no rechazados por la primera regla acabarían en el mismo lugar especificado por la variable DEFAULT, ~/Mail/logs. Se pueden usar reglas similares para hacer que procmail ordene el correo entrante en carpetas, tal y como se ilustra en el siguiente ejemplo.


ORDENANDO CORREO

#-----------------------------------------------------------------------
#configurar el directorio para rutas relativas
HOME=/home/usuario/Mail

#Ordenar y transferir varios tipos de mensajes
:0:
* ^From: (patti_singleton|craig_stone|tod_stone)@notaol\.org
cuates-usa

:0c:
* ^TO_help@zoas\.org
soporte\archivo

:0:
* ^TO_help@zoas\.org
* ^Subject: Case.*[GVPM][0-9][0-9][0-9]+
soporte/archivo1

:0:
* ^TO_help@zoas\.org
soporte/entradas
#-----------------------------------------------------------------------

Descripción del ejemplo anteior

  • La primera regla envia el correo de varios usuarios de notaol.org a la carpeta de correo indicada.
  • Las tres reglas restantes copian todas las direcciones de los mensajes de ayuda al archivo especificado en el directorio indicado y luego ordena los mensaes en otras dos carpetas de correo.
  • La tercera regla redirige los mensajes cuyo asunto comienza por Case y contiene una de las letras indicadas seguida por tres o más dígitos consecutivos al archivo existente. el resto de los mensajes van al archivo entradas (ambos en mi subdirectorio ~soporte).


Más ejemplos:

Especificando núltiples condiciones.

#-----------------------------------------------------------------------
#Definimos a From header set
FROM="^From^[ ]|(Resent-)?(From|Reply-To|Sender):)"
#Descartamos los mensajes de este dominio
:0
* $ $ (FROM).*@pepe\.org
/dev/null

#Descartamos correo basura
:0
* ^Subject:.*last chace|\
^Subject:.*viagra|\
^Subject:.*??
/dev/null
#-----------------------------------------------------------------------


Reenviando y Generando Correo (auto-response)
#-----------------------------------------------------------------------
#Bloqueamos el correo y le nontificamos que ha sido bloqueado dicho correo a esta persona
:0
* ^From:.*persistent@pepe\.org
* !X-Loop: Esta dirección electrónica esta protegida contra spam bots. Necesita activar JavaScript para visualizarla | (formail -r -a "X-Loop: Esta dirección electrónica esta protegida contra spam bots. Necesita activar JavaScript para visualizarla "; \
echo "This us an auto-genered reply."; \
echo "Mail rejected; it will never be read." ) \
| sendmail -t -oi
#-----------------------------------------------------------------------

Como veran, con procmail no solo se pueden filtrar los correo y ordenarlos en una carpeta, si no que tambien se pueden bloquear lo correos con archivos enlazados o adjuntos con extensiones exe,com, bat, bak, pif, cdr, etc. Tambien es posible bloquear las cadenas o los forwarders (fwd), y permitir que solo el dominio local pueda hacer fwd.

Si quiere saber más acerda dee como bloquear los archivos adjuntos y hacer un auto-reponse sin bloquear le remitente, no dude en enviarme un Esta dirección electrónica esta protegida contra spam bots. Necesita activar JavaScript para visualizarla .

 

 

 


Encuestas
¿Cuál es tu navegador favorito?
 
Anunciate aquí

Centro de Soluciones Linux

KoalaSoft-Sitio de Amigos

ODM SYSTEM MEXICO




No. de Visitas
mod_vvisit_countermod_vvisit_countermod_vvisit_countermod_vvisit_countermod_vvisit_countermod_vvisit_counter
mod_vvisit_counterHoy51
mod_vvisit_counterAyer281
mod_vvisit_counterEsta Semana581
mod_vvisit_counterEste Mes4939
mod_vvisit_counterTotal42111
Linuxsc en RSS
Archivo Historico

Ultimo Reporte
Alexa-Rank
Alexa-Rank