GNU/Linux >> Tutoriales Linux >  >> Panels >> Webmin

Filtro de correo Procmail

Esta página explica cómo usar el Procmail programa y Webmin para filtrar y entregar el correo electrónico que ingresa a su sistema.

Introducción a Procmail

Procmail es un poderoso programa para filtrar y redirigir el correo electrónico que normalmente se enviaría a los buzones de correo de los usuarios. Se puede usar a nivel del sistema para filtrar mensajes para todos los usuarios en su sistema, por usuario o ambos. A diferencia de los alias normales de Sendmail, Procmail se puede usar para entregar mensajes de manera diferente según sus encabezados y contenido. Esto lo convierte en una excelente herramienta para bloquear correos electrónicos no deseados, como el spam.

Cuando se instala en un sistema, Procmail reemplaza efectivamente el comando normal de entrega de correo electrónico mail.local que ejecutan el servidor de correo Sendmail y otros MTA para agregar un mensaje al archivo de correo de un usuario. Aunque se usa más comúnmente con Sendmail, otros MTA como QMail Mail Server y Postfix Mail Server también se pueden configurar para usar Procmail para la entrega. En lo que respecta al programa, el servidor de correo real en uso no importa siempre que el correo electrónico se transmita correctamente.

El archivo de configuración principal de Procmail es /etc/procmailrc, que generalmente es administrado por el administrador del sistema. Los usuarios individuales también pueden crear sus propios archivos .procmailrc con el mismo formato en sus directorios de inicio. El archivo de todo el sistema siempre se lee y procesa primero, por lo que los usuarios individuales no pueden anular las reglas que contiene para redirigir mensajes en función de su contenido.

Un archivo de configuración de Procmail se divide en acciones, cada una de las cuales tiene una serie de condiciones y un modo de entrega. Las condiciones determinan con qué mensajes coincide la acción, mientras que el modo de entrega controla lo que ocurre con los que coinciden. Procmail procesará las acciones en orden hasta que encuentre una que coincida, entregará el mensaje como se especifica y luego dejará de procesar.

El archivo de configuración también puede incluir asignaciones de variables que pueden ser utilizadas por acciones posteriores o incluso por otras variables. También puede contener secciones condicionales especiales, que son listas de acciones que se ejecutarán solo si algunas condiciones coinciden. En cierto modo, son como declaraciones si-entonces en un lenguaje de programación.

Procmail se comporta prácticamente igual en todos los sistemas operativos similares a Unix. La única diferencia es la ubicación de entrega predeterminada:todas las distribuciones de Linux usan /var/spool/mail como directorio de archivos de correo del usuario, mientras que otras variantes de Unix, como Solaris, usan /var/mail. Sin embargo, esta diferencia no tiene ningún efecto sobre el formato del archivo de configuración del programa o la interfaz de usuario del módulo Filtro de correo de Procmail.

Procmail es más útil cuando los usuarios individuales lo configuran para realizar tareas como clasificar el correo electrónico de diferentes personas en diferentes buzones, escribir en dos archivos de correo diferentes o eliminar correos electrónicos de direcciones específicas. Sin embargo, el módulo Procmail Webmin y este capítulo solo se ocupan de la configuración de todo el sistema:si desea una herramienta que permita a los usuarios individuales configurar el programa a través de una interfaz web, Usermin es el programa que debe utilizar. Dispone de un módulo con idéntica interfaz que gestiona archivos .procmailrc en lugar de /etc/procmailrc, y otro con una interfaz aún más sencilla.

La configuración global de Procmail se puede usar para que el correo se entregue a un directorio diferente o en un formato diferente al que normalmente usa su servidor de correo. Por ejemplo, en lugar de que el correo de los usuarios se agregue a los archivos en /var/spool/mail, podría escribirse en el archivo mbox en sus directorios de inicio. Mejor aún, Procmail se puede configurar para escribir en un directorio de correo estilo Qmail, generalmente llamado Maildir y ubicado en los directorios de inicio de los usuarios.

Debido a que solo se ocupa del correo electrónico entregado localmente en su sistema, Procmail no se puede usar para filtrar el correo si usa un programa cliente como Mozilla o Evolution para descargar el correo electrónico del servidor de su ISP o de la empresa. Si no ejecuta su propio servidor de correo pero aún desea utilizar las funciones de Procmail, deberá configurar Fetchmail Mail Retrieval para descargar mensajes y pasarlos al MTA en su sistema.

El módulo de filtro de correo de Procmail

El módulo de Webmin para administrar el archivo de configuración de todo el sistema se llama Procmail Mail Filter y se puede encontrar en la categoría Servidores. Al hacer clic en su ícono, lo llevará a la página principal como la que se muestra en la captura de pantalla a continuación. Se enumeran todas las acciones existentes y, debajo de ellas, hay enlaces para agregar nuevas acciones de varios tipos.


La página principal del módulo Procmail

A diferencia de otros módulos, este no se quejará si Procmail no está instalado en su sistema. Debe usar el módulo Paquetes de software para verificar e instalar el paquete que viene con su distribución o sistema operativo de Linux. Si no existe ningún paquete, deberá descargar el código fuente de www.procmail.org, compilarlo e instalarlo.

Sin embargo, solo instalar Procmail no es suficiente para que realmente se use en su sistema. De forma predeterminada, los servidores de correo como Sendmail, Qmail y Postfix utilizan sus propios programas estándar de entrega de correo y no Procmail. Los usuarios individuales pueden cambiar esto creando un archivo .forward o .qmail que contenga la línea /usr/bin/procmail que pasa todo el correo electrónico entrante al programa Procmail. Sin embargo, es mejor volver a configurar su MTA globalmente para usar Procmail para que los usuarios individuales no tengan que configurarlo. La sección *Configuración de Sendmail* a continuación explica cómo configurar Sendmail; otros servidores de correo deberán configurarse de manera diferente.

Configuración de Sendmail

Siempre que tenga los archivos M4 a partir de los cuales se creó su archivo de configuración principal de Sendmail, configurar Sendmail para usar Procmail es fácil. Desafortunadamente, configurar el servidor de correo editando sendmail.cf directamente no es tan fácil, por lo que no se trata en este capítulo. Sin embargo, todas las distribuciones modernas de Linux incluyen los archivos M4 que necesitará, ya sea en el paquete sendmail o en uno separado como sendmail-cf.

Para configurar el MTA de Sendmail para usar Procmail, siga estos pasos:

  1. Vaya al módulo Configuración de Sendmail, que se puede encontrar en Webmin en la categoría Servidores.
  2. Haga clic en el icono *Configuración de Sendmail M4 *en su página principal. Debería aparecer una lista de directivas M4 existentes; si no, los archivos M4 necesarios para reconfigurar Sendmail probablemente no estén instalados en su sistema.
  3. Verifique si la línea FEATURE(local_procmail) ya existe. Si es así, la entrega mediante Procmail ya está habilitada y no es necesario seguir el resto de estos pasos.
  4. Desde el menú junto a Añadir nueva entrada de tipo botón seleccionar Característica y luego presione el botón para mostrar el formulario de creación de funciones.
  5. Desde la función menú seleccione local_procmail . Deje los Parámetros campo vacío.
  6. Presiona Crear para agregar la nueva función al archivo M4. Su navegador regresará a la lista de directivas existentes, al final de la cual estará la nueva línea FEATURE(local_procmail).
  7. Haga clic en la flecha hacia arriba junto a la nueva línea tantas veces como sea necesario para moverla por encima de la línea MAILER (local). Esto es necesario porque el archivo se procesa en orden y la nueva directiva cambia el comportamiento de la línea MAILER.
  8. Cuando la nueva línea FEATURE esté en su lugar, presione el botón *Reconstruir configuración de Sendmail* en la parte inferior de la página. Se mostrará una página de confirmación que muestra los cambios que se realizarán en el archivo de configuración principal de Sendmail y, siempre que no haya modificado sendmail.cf directamente, estarán relacionados únicamente con el nuevo soporte de Procmail.
  9. Haga clic en Sí, reemplácelo ahora para tener la nueva configuración guardada y activada. A partir de ahora, todo el correo enviado por Sendmail a los usuarios locales será procesado por Procmail. Para verificar si todo funcionó, intente enviar algunos mensajes de prueba y asegúrese de que se entreguen normalmente.

Para obtener más información sobre cómo funcionan las funciones M4 del módulo Sendmail y dónde encontrar los archivos de configuración, lea la sección *Agregar funciones de Sendmail con M4* de Configuración de Sendmail.

Crear y editar acciones

Como se explica en la introducción de este capítulo, el archivo de configuración de Procmail consta de una serie de acciones. Cuando llega el correo electrónico, cada uno se verifica en orden hasta que uno coincida y se lleve a cabo su modo de entrega. Si ninguna acción coincide (o no existe ninguna), el correo electrónico se envía al destino predeterminado, que suele ser el archivo de correo del usuario en /var/spool/mail.

Para crear una nueva acción, siga estos pasos :

  1. Haga clic en Agregar una nueva acción de filtro enlace debajo de la lista de acciones existentes en la página principal del módulo. Se desplegará el formulario que se muestra en la siguiente imagen para ingresar su destino y condiciones.
  2. Seleccione el tipo de destino para los mensajes que coincidan con esta acción desde el Modo de entrega menú. Las opciones disponibles son :*Agregar al archivo *El correo electrónico se agregará en formato de buzón estándar al archivo ingresado en el campo de texto adyacente, como /var/spool/mail/fred . Para descartar un mensaje, ingrese /dev/null como archivo. *Escribir en maildir *El correo electrónico coincidente se agregará al directorio de correo estilo Qmail cuya ruta se ingresa en el campo de texto. Si este directorio aún no existe, Procmail lo creará (y los subdirectorios necesarios) para el usuario. *Escribir en la carpeta MH *El correo electrónico se agregará al directorio de correo de estilo MH especificado. Este formato de correo también utiliza un archivo por mensaje, pero los coloca en un solo directorio y proporciona archivos de mensajes que incrementan los nombres de archivo numéricos, como 1, 2, 3, etc. *Reenviar a la dirección *El correo electrónico se enviará a la dirección o al usuario ingresado en el campo de texto adyacente, como [email protected] . *Alimentar al programa *Los mensajes de correo electrónico que coincidan se alimentarán como entrada al programa cuya ruta y argumentos se ingresan en el cuadro de texto junto al menú. Si un nombre de archivo o directorio de correo no absoluto (como Mailbox o Maildir ), Procmail asumirá que es relativo al directorio de inicio del usuario a quien se envía el correo electrónico.
  3. Para que Procmail verifique los cuerpos de los mensajes recibidos en lugar de solo los encabezados, marque Aplicar condiciones al cuerpo caja. Esto es necesario si alguna de las condiciones que ingresa más tarde debe coincidir con el texto del correo electrónico.
  4. Normalmente, Procmail ignorará las mayúsculas y minúsculas de los encabezados al comprobar las condiciones. Para cambiar esto, marque la Coincidencia con distinción entre mayúsculas y minúsculas caja.
  5. Si desea que Procmail continúe con el archivo de configuración incluso si esta acción coincide, marque la casilla *Continuar procesando incluso si las condiciones coinciden*. Esto se puede usar para enviar el correo electrónico a varios archivos o carpetas diferentes, activando esta opción para todas las reglas de entrega excepto la última.
  6. Procmail normalmente ignorará el estado de salida del programa al que se alimenta el correo electrónico. Para que falle (y, por lo tanto, rebote el mensaje) si el programa falla, active la opción *Esperar a que finalice el programa de acción y verificar el resultado*.
  7. Si el programa de entrega que ingresó lee y luego genera correo electrónico con algunas modificaciones, marque la casilla *El programa de acción es un filtro*. La opción *Continuar procesando incluso si las condiciones coinciden* también debe estar habilitada para que el procesamiento continúe con la versión modificada del mensaje. Esta característica puede ser útil si ha escrito un programa que verifica y marca mensajes agregando o cambiando un encabezado, que luego puede verificarse mediante acciones posteriores.
  8. Las condiciones de acción La sección del formulario es para ingresar las condiciones que determinan qué mensajes serán entregados por esta acción. Si no se especifica ninguno, siempre se entregarán los mensajes que lleguen a la acción, y si se ingresa más de uno, todos deben coincidir para que se produzca la entrega. Esta sección es en realidad una tabla que comienza con dos filas en blanco. El menú en cada fila determina el tipo de condición y cómo se interpreta el texto en el cuadro al lado. Las opciones disponibles son:
    • Coincide con la expresión regular
      Para que esta condición coincida, los encabezados del mensaje (y posiblemente también el cuerpo) deben coincidir con la expresión regular de estilo Perl ingresada en el cuadro de texto. Recuerde que esta expresión se aplica a todos los encabezados como si fueran un solo bloque de texto, por lo que debe preceder cualquier nombre de encabezado con un ^ para indicar el comienzo de una línea. Por ejemplo, para capturar mensajes cuyo asunto contenga la palabra foo podría ingresar ^Asunto:.*foo.* .
    • No coincide con la expresión regular
      Este tipo de condición funciona igual que el anterior, excepto que coincide con los mensajes que no coinciden con la expresión regular.
    • Evaluar la salida del comando
      Se ejecutará el comando de shell ingresado en el cuadro de texto, Procmail leerá su salida y luego se interpretará nuevamente como una línea de acción del archivo de configuración. Este tipo de condición es extremadamente poderoso ya que le permite crear condiciones generadas dinámicamente; sin embargo, para el filtrado de correo diario probablemente no necesite usarla.
    • Comprobar el estado de salida del comando
      Este tipo de condición coincide si el comando de shell ingresado tiene un estado de salida de cero, lo que indica éxito. Se puede usar para enviar correo a diferentes destinos según el nombre de host del sistema, la hora del día o la existencia de algún archivo.
    • El correo es más pequeño que
      La condición coincidirá si el tamaño total del mensaje es menor que la cantidad de bytes ingresados ​​en el cuadro de texto adyacente.
    • El correo es más grande que
      Como su nombre indica, este tipo de padecimiento es el opuesto al anterior.
  9. Cuando termine de ingresar las condiciones, presione Guardar botón. La nueva acción se agregará a la lista en la página principal y comenzará a usarse en el correo electrónico entrante. Para agregar más de dos condiciones, deberá volver a editar la acción para que aparezcan dos filas vacías más en las Condiciones de la acción. sección.


El formulario de creación de acciones de Procmail

Una acción existente se puede editar haciendo clic en su entrada en la Acción a realizar columna en la página principal del módulo, que muestra un formulario de edición igual que el de arriba. Desde aquí puede hacer cambios y luego presionar Guardar para activarlos, o simplemente presione Eliminar para eliminar la acción por completo.

Debido a que el orden de las acciones es importante, el módulo le permite cambiar sus posiciones en la configuración de Procmail con las flechas hacia arriba y hacia abajo al lado de cada una en la página principal. Las asignaciones de variables, los bloques condicionales y los archivos de inclusión también se pueden mover de la misma manera.

Siguiendo las instrucciones anteriores, puede crear fácilmente una acción que entregue todos los correos electrónicos al estilo Maildir de Qmail. directorio en los directorios de inicio del usuario. Aunque este formato de correo es preferible debido a su confiabilidad superior en comparación con los archivos tradicionales en /var/spool/mail, no es muy útil a menos que los clientes de correo o el servidor POP3 en su sistema sepan cómo leerlo. El servidor POP3 que viene con la mayoría de los sistemas operativos espera enviar correctamente el correo electrónico en /var/spool/mail, por lo que tendrá que ser reemplazado o reconfigurado para admitir cualquier nuevo formato o ubicación de correo. Otros clientes de correo que leen los archivos de correo de los usuarios directamente (como Pine, Elm y Usermin) se pueden configurar para usar cualquier nueva ubicación que elija.

Crear y editar asignaciones de variables

Las acciones de Procmail pueden hacer uso de variables de estilo shell en sus condiciones y destinos de entrega. Por ejemplo, podría crear una acción que envíe al archivo /mail/$LOGNAME , en el que $LOGNAME es el nombre de usuario del usuario al que se envía el correo electrónico. Procmail configura automáticamente varias variables (como .LOGNAME y DEFAULT), mientras que otras se pueden configurar en el archivo de configuración para su uso posterior. Incluso puede anular las variables automáticas para cambiar el comportamiento del programa, como el destino de entrega predeterminado o el shell que se usará para ejecutar comandos.

Para crear una nueva asignación de variable, siga estos pasos :

  1. En la página principal del módulo, haga clic en el enlace *Agregar una nueva configuración de variable* debajo de la lista de acciones existentes. Se mostrará el formulario de creación de variables.
  2. En el Nombre de la variable campo ingrese el nombre de la variable a configurar, como DEFAULT . Todas las variables automáticas tienen nombres en mayúsculas, y las que crea usted mismo también deberían hacerlo. No se permiten espacios ni caracteres no alfanuméricos.
  3. En el Valor ingrese el valor para asignar a esta variable, como Maildir/ . El valor puede incluir referencias a otras variables.
  4. Presiona Crear para agregar la variable a la lista en la página principal.
  5. Utilice la flecha hacia arriba junto a la nueva variable en la lista para moverla a la ubicación correcta, que normalmente estará en la parte superior del archivo. Las asignaciones de variables solo tienen efecto, por lo que una agregada en la parte inferior puede no tener ningún efecto.

Al igual que con las acciones, una variable se puede editar o eliminar haciendo clic en su nombre en la lista. Las variables también se pueden mover con las flechas hacia arriba y hacia abajo junto a ellas. Debido a que solo afectan acciones y otras asignaciones debajo de ellas en el archivo, seguramente querrá mover cualquier variable nueva cerca de la parte superior de la lista. Uno agregado y dejado en la parte inferior no tendrá ningún efecto (excepto en el destino de entrega predeterminado).

Procmail define y le permite cambiar varias variables especiales. Los nombres y significados de los más interesantes se enumeran en la siguiente tabla:

Bloques condicionales y archivos de inclusión

Un bloque condicional es un grupo de acciones y asignaciones de variables en el archivo de configuración de Procmail que solo se procesa si algunas condiciones coinciden. Se pueden usar para crear conjuntos de acciones bastante complejos, casi como un lenguaje de programación. Este módulo le permite crear y editar bloques condicionales, pero muestra su contenido como texto de archivo de configuración en lugar de analizar las acciones que contienen. Esto significa que debe estar familiarizado con el formato de archivo Procmail para usarlos.

Para crear un bloqueo condicional, siga estos pasos:

  1. Haga clic en Agregar un nuevo bloque condicional debajo de la lista de acciones en la página principal del módulo.
  2. En el código de Procmail a ejecutar cuadro de texto ingrese las líneas del archivo de configuración para las acciones o asignaciones de variables que se procesarán si las condiciones coinciden. Tan pronto como coincida alguna acción en el bloque, se detendrá el procesamiento de todo el archivo de configuración. Sin embargo, si ninguno coincide, el procesamiento continuará como de costumbre con la siguiente acción después del bloque. Consulte la página del manual de procmailrc en el módulo Documentación del sistema para obtener detalles sobre el formato.
  3. Complete las Condiciones de acción como lo haría para una acción normal, como se explica en Creación y edición de acciones anteriormente en el capítulo.
  4. Presiona Crear botón para crear el nuevo bloque.

Al igual que con las acciones, puede editar o eliminar un bloque condicional haciendo clic en él en la lista de la página principal del módulo. El bloque completo también se puede mover con las flechas hacia arriba y hacia abajo al lado.

Un archivo de inclusión es una directiva especial que le dice a Procmail que lea y procese un archivo de configuración separado en el mismo formato que /etc/procmailrc. Algunos programas de filtrado de spam en realidad son solo archivos de Procmail que se pueden incluir en su configuración principal. Para crear una directiva de inclusión, siga estos pasos :

  1. Haga clic en Agregar un nuevo archivo de inclusión enlace en la página principal del módulo.
  2. En el archivo incluido en el formulario que aparece, ingrese la ruta completa al otro archivo de configuración. También puede ingresar una ruta relativa, en cuyo caso Procmail buscará ese archivo en el directorio de inicio del usuario de Unix al que se envía el correo. Al manejar un include, Procmail detendrá el procesamiento tan pronto como encuentre una acción coincidente en el archivo. Si no encuentra ninguno, continuará procesando las acciones que vienen después de la inclusión en el archivo de configuración principal.
  3. Presiona Crear botón para finalizar el proceso.

Normalmente, las inclusiones se enumeran en la página principal del módulo, al igual que las acciones y las asignaciones de variables, y se pueden editar, eliminar o mover. Sin embargo, si ¿Mostrar el contenido de los archivos incluidos? la configuración está habilitada en la Configuración del módulo página, el módulo mostrará las acciones reales dentro del archivo de inclusión para que las edite o elimine. Incluso se pueden mover hacia arriba y hacia abajo, aunque solo dentro del archivo. Habilitar esta opción no es una buena idea si tiene un archivo de inclusión masivo (como uno para el filtrado de spam), ya que hará que la página principal del módulo sea demasiado grande.

Contenido

Véase también

  • Filtrado de spam con SpamAssassin

Webmin
  1. Prueba simple de correo PHP

  2. Correo de evolución de copia de seguridad?

  3. No se puede recibir correo (correo habilitado)

  4. Configurar una retransmisión de correo

  5. Servicio de sistema operativo Linux 'sendmail'

Servidor de correo Postfix

Leer correo de usuario

Servidor de correo Sendmail

Filtro de correo SpamAssassin

¿Cómo crear filtros de correo personalizados?

Configurar el correo de Mac