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

Servidor de correo Sendmail

En esta página se ofrece una introducción básica al correo electrónico, seguida de una descripción del servidor de correo Sendmail y el módulo de Webmin para configurarlo.

El módulo de configuración de Sendmail

Sendmail es el MTA más popular en uso en Internet hoy en día, y lo ha sido desde que se desarrolló por primera vez. Se incluye de serie con casi todas las variantes del sistema operativo Unix, y funciona igual en todas ellas. Tiene muchas funciones útiles para el enrutamiento y procesamiento de correo electrónico, como alias, enrutamiento de dominio y archivos de reenvío creados por el usuario.

Sendmail tiene un mapeo uno a uno entre los usuarios de Unix y los buzones de correo. Cada usuario tiene su propio archivo de correo, normalmente en el directorio /var/mail o /var/spool/mail. Cada vez que se entrega un mensaje a un usuario, se agrega al archivo con el mismo nombre que el usuario en ese directorio, como /var/mail/jcameron. Sendmail no tiene el concepto de 'usuarios de correo':si desea crear un nuevo buzón, deberá agregar un nuevo usuario de Unix como se explica en Usuarios y grupos.

Sendmail puede aceptar correo electrónico de dos maneras diferentes:ya sea desde una conexión SMTP o mediante otro programa que invoque el comando sendmail con los parámetros correctos y le envíe el correo electrónico como entrada. De cualquier manera, el mensaje se envía al buzón de un usuario local o se envía a otro sistema. Como era de esperar, si el proceso del servidor de Sendmail no se está ejecutando, es imposible que el correo electrónico se envíe a su sistema a través de SMTP. Además, no se entregará ningún correo electrónico en cola.

El archivo de configuración principal de Sendmail se llama apropiadamente sendmail.cf y se encuentra en el directorio /etc o /etc/mail. Además, hay archivos de texto y formato DBM separados para dominios locales, alias de reenvío de correo, asignaciones de direcciones y otras funciones que se analizan más adelante en este capítulo. Casi todos estos archivos adicionales están en formato de base de datos DBM de Unix, pero se crean a partir de un archivo de texto correspondiente que el administrador del sistema (y Webmin) pueden editar. Sin embargo, Sendmail solo lee los archivos DBM y los vuelve a verificar para cada mensaje recibido, de modo que cualquier cambio en uno de los archivos de la base de datos se active de inmediato.

Para configurar Sendmail usando Webmin, deberá visitar el módulo de Configuración de Sendmail, que se puede encontrar en la categoría Servidores. Suponiendo que tenga el servidor instalado, la página principal del módulo se verá como el ejemplo que se muestra a continuación.

La pantalla principal del servidor de correo de Sendmail

Si el módulo no puede encontrar el programa del servidor Sendmail o el archivo de configuración principal en su sistema, se mostrará un mensaje de error a tal efecto. Verifique su sitio web o CD de distribución de Linux para ver el paquete sendmail e instálelo usando el módulo Paquetes de software. Si hay disponibles otros paquetes cuyos nombres comienzan con sendmail- (como sendmail-cf o sendmail-docs), instálelos también.

Este error también puede ocurrir en el improbable caso de que haya instalado Sendmail o su archivo de configuración en una ubicación diferente a la que espera el módulo. De manera predeterminada, asume que usará los paquetes que vienen con su sistema operativo, pero estos a menudo están desactualizados. Por este motivo, es posible que haya compilado e instalado la última versión en un directorio diferente. Si es así, consulte el Configuración del módulo de configuración de Sendmail sección a continuación para obtener instrucciones sobre cómo cambiar las rutas del programa y del archivo de configuración.

Sendmail ha pasado por muchos lanzamientos diferentes a lo largo de los años, y en ese tiempo su archivo de configuración principal (generalmente se encuentra en /etc/sendmail.cf) ha cambiado. Si está ejecutando una versión muy antigua o utilizando un archivo de configuración antiguo, la página principal del módulo mostrará un mensaje de error que indica que el formato de archivo no es compatible. Las configuraciones anteriores a la versión 7 provocan este error, pero afortunadamente rara vez se encuentran en los sistemas Unix modernos.

Si no aparece ningún mensaje de error en la página principal, se mostrará la tabla de iconos que se muestra en la imagen de arriba. Se puede hacer clic en cada uno para acceder a una de las funciones de Sendmail, como el alias de correo, el enrutamiento de dominio o la cola de correo. El resto de este capítulo explica cómo utilizar las páginas y los formularios debajo de cada uno de los iconos. Junto al nombre de cada icono (como Asignación de direcciones ) es el nombre interno de la función de configuración de Sendmail entre paréntesis que controla, como virtuser. Estos nombres son principalmente útiles para los administradores experimentados que desean saber cómo se relacionan los iconos del módulo con las directivas y los archivos de configuración reales.

Al hacer clic en algunos de los íconos, es posible que muestren un mensaje como *Su configuración de Sendmail no tiene habilitada la función de mapeo de direcciones (virtuser)*. En muchos sistemas operativos, el archivo de configuración principal de Sendmail no tiene todas las funciones disponibles activadas de forma predeterminada. Para que las páginas del icono elegido estén disponibles, siga las instrucciones de la sección *Agregar funciones de Sendmail con M4* más adelante en este capítulo.

Si el proceso del servidor de Sendmail se está ejecutando, un botón llamado Detener Sendmail aparecerá en la parte inferior de la página principal. Como sugiere su nombre, hacer clic en este botón cerrará el servidor para que su sistema ya no acepte conexiones SMTP y ya no analice la cola de correo. Por el contrario, cuando Sendmail no está ejecutando Iniciar Sendmail En su lugar, aparecerá el botón, que se puede utilizar para iniciar el proceso del servidor.

Si desea que Sendmail se ejecute todo el tiempo, use el módulo de inicio y apagado para que su proceso de servidor se inicie en el momento del inicio. La mayoría de los paquetes incluirán un script de acción que se puede habilitar e incluso se puede habilitar de forma predeterminada. De lo contrario, deberá crear una acción que ejecute el comando /usr/sbin/sendmail -bd -q30m en el momento del arranque.

Edición de dominios locales y enmascaramiento de dominios

Cuando Sendmail recibe un mensaje de correo electrónico a través de una conexión SMTP, debe determinar si debe entregarse localmente o reenviarse a otro servidor. Esto se hace mirando la dirección Para del mensaje, específicamente la parte del dominio después de la @. El dominio se compara con una lista de dominios locales y, si se encuentra una coincidencia, el correo electrónico se envía al buzón del usuario cuyo nombre está a la izquierda de @ en la dirección Para. O si no existe tal usuario, se genera un mensaje de rebote y se envía de vuelta al remitente original.

Si el dominio no es local, Sendmail buscará el servidor de correo del dominio e intentará conectarse a él para transferir el mensaje. Esto es lo que suele ocurrir cuando un cliente de la misma red se conecta para enviar un correo electrónico. Sin embargo, se producirá un problema si Sendmail intenta volver a conectarse a sí mismo, lo que puede ocurrir si el DNS dice que es el servidor de correo de un dominio que no está en su lista de dominios locales. Si esto sucede, se enviará un mensaje de devolución al remitente, que contiene texto como si el correo me enviara a mí.

De forma predeterminada, esta lista de dominios locales contiene solo el nombre de host completo de su sistema, como server.example.com . Si está configurando un servidor para recibir correo electrónico de Internet para algún dominio (como example.com ), será necesario agregarlo a la lista. Los pasos para hacerlo son:

  1. En la página principal del módulo, haga clic en Dominios locales icono. Se mostrará una página que contiene un cuadro de texto en el que se enumeran todos los dominios locales actuales.
  2. Agregue tantos dominios o nombres de host adicionales a la lista como desee, uno por línea. Es muy posible que un servidor acepte correo para varios dominios, especialmente si se va a utilizar para alojamiento virtual. Como se explica en la introducción, el correo solo se enviará a su sistema en primer lugar si existe un registro MX DNS apropiado para cada dominio.
  3. Haga clic en Guardar en la parte inferior de la página para activarlos.

Sendmail siempre aceptará mensajes de correo electrónico de entrega local en los que la dirección Para no contenga un dominio, solo un nombre de usuario. Estos a menudo son enviados por programas que se ejecutan en el propio sistema, como el demonio Cron o el comando de correo.

La otra cara de la moneda de la lista de dominios locales es el enmascaramiento de dominios. Esta característica de Sendmail le permite configurar el dominio que se agrega al envío de correo electrónico desde su sistema cuando no se especifica ninguno, como por ejemplo mediante el comando de correo. También es posible hacer que Sendmail modifique los dominios de dirección De de los mensajes recibidos a través de SMTP, como los que envían los clientes de correo.

Para configurar el enmascaramiento de dominio, los pasos a seguir son:

  1. En la página principal del módulo, haga clic en Enmascaramiento de dominio icono.
  2. Complete el Enmascarar como dominio campo con el nombre del dominio que debe agregarse a las direcciones de origen salientes que carecen de uno, como example.com . Si el campo se deja en blanco, Sendmail no realizará ninguna modificación de dominio.
  3. Para que Sendmail vuelva a escribir las direcciones De de los mensajes de otros dominios, complete los Dominios que se enmascararán campo. Esto puede ser útil si algunos de los clientes de correo que envían mensajes a través de su servidor insisten en usar el dominio incorrecto.
  4. Haga clic en Guardar botón para activar el enmascaramiento.

En la mayoría de los servidores de correo, no es necesario que se moleste en configurar el enmascaramiento, ya que todo el correo lo envían los programas cliente mediante SMTP. Todos los clientes de correo permiten al usuario especificar una dirección de remitente completa, que debe incluir el dominio correcto.

Gestionar alias de correo electrónico

Un alias de correo especifica que el correo electrónico recibido por su servidor para un buzón en particular debe reenviarse a un destino diferente. Ese destino puede ser otra dirección de correo electrónico, un archivo de direcciones, un archivo local o incluso la entrada a un programa. Pueden ser útiles para configurar pseudo buzones de correo que realmente envían correos electrónicos a una persona real, como [email protected] o [email protected] . Un alias puede tener el mismo nombre que un usuario de Unix, en cuyo caso interceptará todo el correo de ese usuario y lo reenviará a un destino diferente.

En la mayoría de los sistemas operativos, Sendmail tiene varios alias definidos de forma predeterminada para los usuarios del sistema, como bin,body y uucp, todos los cuales reenvían el correo a la raíz. También habrá un alias de postmaster, que todo servidor de correo debe tener, y que debe reenviar los mensajes a un responsable del servidor de correo. Por lo general, este será también el usuario root.

Para crear un alias de correo propio usando Webmin, los pasos a seguir son:

  1. En la página principal del módulo, haga clic en Alias ​​de correo icono. Accederá a una página que enumera todos los alias existentes y sus destinos, con un formulario en la parte superior para agregar uno nuevo. La siguiente captura de pantalla muestra un ejemplo.
  2. En la Dirección campo de Crear Alias formulario, ingrese el nombre de usuario o buzón para este alias (la parte de la dirección a la izquierda de la @). Si su servidor aloja varios dominios, el alias reenviará el correo electrónico enviado al nombre ingresado en cualquiera de esos dominios. Por ejemplo, si su servidor acepta correo para foo.com y bar.com , luego un alias llamado ventas reenviará el correo electrónico a ambos [email protected] y [email protected] . Si desea poder reenviar el mismo nombre de buzón en varios dominios de manera diferente, consulte la sección a continuación titulada *Administración de asignaciones de direcciones virtuales*.
  3. Suponiendo que desea que Sendmail utilice este alias, deje ¿Habilitado? campo establecido en . Cambiándolo a No hará que el alias sea ignorado. Este campo se puede usar al editar un alias para deshabilitarlo temporalmente en lugar de eliminarlo por completo.
  4. El Alias ​​para determina dónde se enviará el correo electrónico a este alias. Las siguientes opciones están disponibles en el menú :
    No se hará nada en absoluto con el correo electrónico recibido. No tiene sentido seleccionar esta opción al crear un nuevo alias.
    Dirección de correo electrónico
    El correo electrónico se reenviará al usuario o la dirección ingresada en el campo adyacente. ¡Tenga cuidado de no configurar un bucle de reenvío al enviar el correo electrónico a la dirección del alias nuevamente! Si está creando un alias que tiene el mismo nombre que un usuario de Unix y realmente desea que el correo electrónico se envíe a su buzón de correo, así como a otros destinos, ingrese el nombre de usuario precedido por una barra invertida (como \jcameron ) en este campo. La barra invertida le dice a Sendmail que omita la verificación de alias.
    Direcciones en archivo
    El correo electrónico al alias se enviará a todas las direcciones en el archivo de texto cuya ruta de archivo se ingrese en el campo de texto adyacente. Cada dirección debe estar en una línea separada. Esta opción puede ser útil para crear una lista de correo simple, y el administrador de listas Majordomo usa alias de este tipo (cubierto en MajordomoListManager).
    Escribir en archivo
    El texto completo, incluidos todos los encabezados de los correos electrónicos recibidos por el alias, se adjuntará al archivo cuya ruta se ingrese en el cuadro de texto.
    Alimentar a programa
    Se ejecutará el programa cuya ruta y parámetros se ingresan en el cuadro de texto, y el texto completo, incluidos todos los encabezados de correo electrónico recibidos por el alias, se le enviará como entrada. Este tipo de alias es más útil para los programadores que desean realizar su propio procesamiento personalizado o filtrado de mensajes de correo electrónico. El programa generalmente se ejecuta como el daemon de usuario de Unix, no como root o el usuario con el mismo nombre que el alias.
    Respuesta automática desde archivo
    Cuando se envía un correo electrónico al alias, el contenido del archivo especificado en el cuadro de texto adyacente se devolverá al remitente original. Consulte la sección *Creación de alias de respuesta automática* a continuación para obtener más información sobre el uso de alias de este tipo.
    Aplicar archivo de filtro
    El correo electrónico enviado al alias se procesará de acuerdo con las reglas del archivo de filtro ingresado en el cuadro de texto, que puede reenviarse a diferentes destinos según el contenido del mensaje. Consulte la sección *Creación de alias de filtro* más adelante en el capítulo para obtener más detalles. Es posible que un alias tenga múltiples destinos. Para agregar más de uno, deberá volver a editar este alias después de guardarlo y completar la fila con seleccionado en la parte inferior de Alias ​​para mesa.
  5. Haga clic en Guardar para que el alias se agregue a la lista y se active de inmediato.


La lista de alias de correo

Como es habitual en Webmin, puede editar un alias existente haciendo clic en su nombre en la lista de la página Alias ​​de correo. Aparecerá un formulario de edición que contiene todos los mismos campos que el formulario de creación, pero tiene Guardar y Eliminar botones en la parte inferior en su lugar. El primero de ellos actualizará el alias con los cambios que haya realizado, mientras que el segundo lo eliminará de forma permanente.

Si un usuario de Unix tiene un archivo llamado .forward en su directorio de inicio, el correo electrónico que normalmente se enviaría a su archivo de correo se enviará a las direcciones que figuran en el archivo .forward. En muchos sentidos, estos archivos son equivalentes a los alias que pueden crear los usuarios individuales en lugar del administrador del sistema. Incluso es posible que un archivo .forward contenga entradas que le indiquen a Sendmail que envíe un correo electrónico a una lista de direcciones en otro archivo, lo envíe a un programa como entrada o lo agregue a un archivo.

Sin embargo, este módulo no admite la edición de archivos .forward. Sin embargo, Usermain permite a los usuarios normales editar sus propios archivos de reenvío utilizando una interfaz basada en web casi idéntica a la descrita en esta sección.

Configuración de retransmisión

En los primeros días de Internet, los servidores de correo podían entregar correo de forma segura a dominios locales y reenviar todos los demás correos electrónicos a otro MTA, independientemente de su origen. Hoy en día, permitir que su servidor reenvíe cualquier correo electrónico que reciba es una invitación a los spammers para que usen su sistema como un repetidor. Un servidor bien configurado solo debe aceptar correo electrónico para dominios no locales de hosts de clientes de confianza, como los de la red de la empresa o la LAN doméstica. El correo electrónico enviado a dominios locales es seguro y se puede aceptar desde cualquier lugar.

Si Sendmail en su sistema es una retransmisión abierta (que acepta correo electrónico no local desde cualquier lugar), las personas que envían millones de mensajes de correo electrónico no deseado pueden usarlo para cubrir sus huellas. Incluso si está ejecutando un pequeño servidor de correo para una pequeña empresa que cree que ningún spammer sabrá nunca, sigue siendo una muy mala idea dejar su sistema abierto a la retransmisión.

Por esta razón, los paquetes de Sendmail que vienen con las distribuciones modernas de Linux están configurados de manera predeterminada para evitar que el servidor acepte correo electrónico no local desde cualquier lugar que no sea el mismo sistema. Si está configurando un servidor de correo para una empresa o para su LAN doméstica, también deberá permitir que otros hosts retransmitan el correo:

  1. En la página principal del módulo, haga clic en Dominios de retransmisión icono para abrir un formulario para ingresar dominios y redes de retransmisión.
  2. En los Dominios a los que retransmitir está permitido, agregue la dirección de la red desde la que desea permitir que los clientes retransmitan. Debe ingresarse sin ningún cero final, por ejemplo 192.168.1 . Se puede ingresar más de una red, al igual que direcciones IP específicas. También puede ingresar nombres de dominio como foo.com que Sendmail permitirá la retransmisión. Cualquier mensaje de correo electrónico recibido (sin importar su origen) que esté destinado a un dominio específico se entregará al servidor apropiado. Esto puede ser útil si su sistema es una puerta de enlace de correo para otros dominios a los que el resto de Internet no puede acceder directamente, como se explica en la sección *Configuración del enrutamiento de dominio*.
  3. Haga clic en Guardar botón para activar la nueva lista de dominios de retransmisión.

Un efecto secundario de las restricciones de retransmisión de Sendmail es que no hay forma de usar su sistema como un servidor para el correo electrónico saliente cuando se conecta desde una red que no es de confianza; de hecho, ese es el punto. A veces, puede ser molesto, por ejemplo, si llama a muchos ISP diferentes y no desea volver a configurar su cliente de correo para usar un servidor de correo saliente diferente para cada uno. En un mundo ideal, sería posible usar su propio servidor de correo para el correo saliente sin importar desde dónde se conecte, pero esto normalmente es imposible sin desactivar por completo las restricciones de retransmisión.

La mejor solución a este problema es la autenticación SMTP, en la que los clientes inician sesión en Sendmail antes de retransmitir el correo electrónico. Desafortunadamente, Webmin aún no tiene una forma fácil de configurar esto. Otra solución consiste en confiar en los clientes que realizan una conexión POP3 antes que SMTP, lo que hacen la mayoría de los programas de cliente de correo. Sin embargo, esto requiere la cooperación entre el servidor POP3 y Sendmail, que normalmente son programas no relacionados. Al momento de escribir, Webmin tampoco admite su configuración.

Administrar asignaciones de direcciones virtuales

Las asignaciones de direcciones son similares a los alias, excepto que se aplican solo al correo electrónico enviado a un usuario y dominio específicos, en lugar de a un usuario en cualquier dominio como lo hacen los alias. Otra diferencia es que las asignaciones de direcciones solo pueden reenviar correos electrónicos a una sola dirección, en lugar de a un programa, archivo o lista de direcciones. Sin embargo, esta limitación se puede superar combinando mapeos y alias.

Puede usar las asignaciones de direcciones para enviar un correo electrónico a [email protected] y [email protected] enviados a diferentes destinos finales, aunque ambos dominios estén alojados en su servidor. Esto es particularmente útil si administra una gran cantidad de dominios de correo electrónico para diferentes clientes, muchos de los cuales desean tener direcciones similares (como ventas ) en sus dominios.

Las asignaciones de direcciones también se pueden usar para redirigir todo el correo electrónico a un dominio en particular a los mismos usuarios en un dominio diferente, de modo que, por ejemplo, envíe un correo a [email protected] y [email protected] se enviará a [email protected] y [email protected] respectivamente. Mejor aún, puede hacer que todo el correo electrónico a cualquier dirección en un dominio se envíe a una sola dirección, lo cual es útil para el cliente de correo POP3 Fetchmail Mail Retrieval. Para crear una nueva asignación de dirección, los pasos a seguir son:

  1. En la página principal del módulo, haga clic en Asignaciones de direcciones icono. Se mostrará una página con una lista de todas las asignaciones existentes, con un formulario en la parte superior con la etiqueta Crear asignación por agregar uno nuevo.
  2. Si desea crear una asignación de correo electrónico a una sola dirección, seleccione Dirección en el Correo para e ingrese la dirección en el cuadro de texto adyacente. A diferencia de un alias, debe ingresarse completo como [email protected] . Si está creando una asignación para todo el correo electrónico a un dominio, seleccione el Dominio e ingrese el dominio completo o nombre de host en el campo de texto junto a él, como example.com . De cualquier manera, el dominio en la dirección o el dominio ingresado debe aparecer en la lista de dominios locales de Sendmail, explicada en la sección Editar dominios locales sección anterior en este capítulo.
  3. Si el destino de la asignación es una sola dirección, en Enviar a campo seleccione Dirección y complete el cuadro de texto al lado con una dirección completa (como [email protected] ) o un nombre de buzón (como solo jcameron ). Si Dominio fue seleccionado para el Correo para campo, se le permite seleccionar el Dominio opción para este campo también. Si es así, debe ingresar un nombre de dominio (como foo.com ) en el cuadro de texto adyacente al que se reenviarán todos los correos electrónicos enviados al dominio original. El error de retorno final opción en Enviar a El campo se puede seleccionar si desea que se devuelva un mensaje de error específico a los remitentes. Si se elige, se debe seleccionar un tipo de error del menú junto a él y se debe ingresar un mensaje de error más detallado en el cuadro de texto. Esta opción puede ser útil para devolver mensajes de rebote que explican por qué ya no se puede acceder a una dirección en particular o a todo el dominio.
  4. Haga clic en Crear para agregar la asignación de direcciones a la lista de las que se muestran debajo del formulario. Se activará inmediatamente.

Al igual que con los alias, puede editar o eliminar asignaciones existentes haciendo clic en sus direcciones en la lista. Aparecerá un formulario idéntico al utilizado para crear un mapeo, pero con Guardar y Eliminar botones en la parte inferior.

Si existe una asignación para un dominio y una dirección en ese dominio, Sendmail usará la segunda para el correo electrónico a esa dirección específica y la primera para el correo electrónico a cualquier otro buzón en el dominio. En efecto, las asignaciones de direcciones más específicas tienen prioridad sobre las que son más generales. Su orden en la lista de la página Asignaciones de direcciones no importa en absoluto.

Si desea crear una asignación que reenvíe el correo electrónico a un programa, archivo o lista de direcciones, también deberá crear un alias. La asignación de direcciones enviará un correo electrónico al alias y luego el alias lo reenviará al destino real. Por lo general, el alias debe nombrar un nombre relacionado con la asignación de direcciones, como jcameron-example-com para el mapeo de la dirección virtual [email protected] .

En un sistema con muchos dominios y usuarios, es bastante probable que dos personas deseen tener el mismo nombre de buzón en diferentes dominios, como [email protected] y [email protected] . Debido a que Sendmail finalmente solo entrega correo electrónico a los archivos de correo de los usuarios de Unix, y dos usuarios de Unix no pueden tener el mismo nombre, esto puede ser un problema. La solución habitual es crear usuarios con nombres como bob-foo y bob-bar y configure las asignaciones de direcciones adecuadas para reenviarles correos electrónicos. El único inconveniente es que los usuarios deberán iniciar sesión en el servidor POP3 como bob-foo o bob-bar en lugar de solo bob .

Configuración del enrutamiento de dominio

La función de enrutamiento de dominio de Sendmail se puede utilizar para reenviar todo el correo electrónico a un dominio en particular a un servidor diferente. Es más útil si el DNS está configurado para enviar correo electrónico para algún dominio a su sistema, que luego debe reenviarse a otro MTA que no está accesible para el resto de Internet. El enrutamiento también se puede usar para anular el método normal mediante el cual Sendmail determina a qué host enviar el correo electrónico, lo que puede ser útil en redes en las que la conectividad es incompleta o alguna información de DNS no está disponible para todos los hosts.

Para agregar una nueva regla de enrutamiento de dominio, siga los pasos a continuación:

  1. En la página principal del módulo, haga clic en Enrutamiento de dominio icono. Se mostrará una página que enumera las rutas existentes (si las hay), encima de la cual hay un formulario para agregar una nueva.
  2. Para que el correo electrónico se enrute solo a un dominio o host específico a otro lugar, seleccione el Host opción en el Correo para e ingrese el dominio o nombre de host en el campo adyacente. Alternativamente, si desea enrutar el correo electrónico para todos los hosts dentro de un dominio, seleccione Dominio en su lugar, ingrese el nombre de dominio en su campo. Un enrutamiento de este tipo para el dominio example.com no afectará el envío de correo electrónico a una dirección en el dominio (como [email protected] ), pero solo enviar correos electrónicos a direcciones en hosts bajo el dominio (como [email protected] ). Normalmente, esto no es lo que quieres. Cualquier dominio o nombre de host que ingrese debe estar en la lista para la que Sendmail permite la retransmisión, como se explica en Configuración de la retransmisión sección anterior en este capítulo.
  3. De la Entrega menú, seleccione SMTP . Este campo le dice a Sendmail qué protocolo usar al enrutar el correo electrónico para el dominio. La mayoría de las otras opciones son inútiles, ya que se relacionan con UUCP, que ya casi no se usa.
  4. En Enviar a campo, introduzca el nombre de host del sistema al que se debe reenviar el correo. El Ignorar MX para entrega SMTP La casilla también debe estar marcada, para que Sendmail siempre entregue directamente a este host en lugar de intentar otra búsqueda de DNS para determinar el destino correcto.
  5. Presiona Crear botón para agregar y activar el nuevo enrutamiento de dominio. Debe probarlo para asegurarse de que realmente funciona, ya que pequeños errores (como seleccionar Dominio en lugar de Host ) puede evitar que una ruta funcione.

Al igual que en otras páginas similares del módulo, una regla de enrutamiento existente puede editarse o eliminarse haciendo clic en su nombre de dominio en la lista de la página Enrutamiento de dominio. Sin embargo, no hay forma de deshabilitar temporalmente una regla, como ocurre con los alias.

Sendmail también se puede configurar para reenviar todo el correo electrónico no local a un servidor específico, en lugar de solo el correo electrónico a dominios particulares. Esto es útil si su empresa o ISP tiene un servidor de correo central al que desea transferir el correo electrónico, en lugar de que su sistema se conecte al servidor de destino real. La siguiente sección explica cómo configurar esto.

Edición de opciones globales de Sendmail

Las opciones globales controlan cosas como el tamaño máximo del mensaje, la cantidad de días para reintentar el correo electrónico, los límites promedio de carga y el servidor de correo saliente. Los pasos a continuación explican cómo editar algunos de los más útiles:

  1. En la página principal del módulo, haga clic en Opciones de envío de correo icono. Se mostrará un formulario para editar las opciones globales (que se muestra a continuación).
  2. Cuando Enviar correo saliente a través del host está establecido en *Entregar directamente*, Sendmail buscará el servidor de correo correcto para los mensajes no locales y se conectará a él para entregar el correo electrónico. Sin embargo, si selecciona la segunda opción e ingresa un nombre de host en el cuadro de texto, todos los mensajes, excepto los de los usuarios locales, se enviarán a ese host. Por lo general, será un servidor de correo central en su ISP o en la red de su empresa. Si existe una regla de enrutamiento de dominio para una dirección, tendrá prioridad sobre cualquier servidor establecido en este campo.
  3. El modo de entrega El campo controla cómo procesa Sendmail los mensajes entrantes. Las opciones disponibles son :Fondo o *Predeterminado *En este modo, el correo electrónico se acepta inmediatamente de los clientes y luego se envía al destino mediante un proceso en segundo plano independiente. Esto suele ser lo que quieres. *Solo en cola* o *Diferido *Cuando se elige uno de estos modos, Sendmail simplemente agregará los mensajes entrantes a su cola de correo. Solo cuando la cola se vacíe explícitamente, se enviarán a sus destinos. Esto puede ser útil si su sistema no está siempre conectado a Internet o si desea un control explícito sobre cuándo el servidor envía mensajes. Cuando se recibe un mensaje en cualquiera de estos modos, Sendmail no realiza ninguna validación de la dirección de origen o de destino, lo que de otro modo causaría problemas si su sistema está desconectado de la red. *Interactivo *Este modo es similar al segundo plano, excepto que el correo electrónico se entrega mediante el mismo proceso que lo acepta del cliente. Esto significa que los clientes deben esperar hasta que Sendmail haya transferido sus mensajes al servidor siguiente o de destino, lo que puede llevar algún tiempo. Sin embargo, reduce la cantidad de procesos que necesita iniciar Sendmail.
  4. Las opciones de puerto SMTP El campo se puede utilizar para configurar los puertos TCP en los que Sendmail escucha las conexiones SMTP. El valor real que se puede ingresar puede ser bastante complejo, pero si desea que su sistema acepte conexiones desde cualquier lugar en el puerto SMTP estándar, debe ingresar simplemente Name=MTA. En algunos sistemas operativos, este no es el valor predeterminado y Sendmail solo acepta conexiones de host local.
  5. El promedio de carga máxima para enviar El campo se puede usar para establecer un promedio de carga por encima del cual Sendmail no enviará mensajes. El promedio de carga es una estimación aproximada de la cantidad de procesos que se ejecutan en su sistema en un momento dado, como se explica en el capítulo 11. Esta opción y la siguiente son útiles para limitar la cantidad de tiempo de CPU que Sendmail puede usar en su sistema. , aunque este último es más útil. Si Predeterminado está seleccionado, el servidor continuará procesando la cola de correo y enviando mensajes sin importar cuál sea el promedio de carga.
  6. Para establecer un promedio de carga por encima del cual Sendmail ya no aceptará nuevos mensajes, ingrese un valor para el Promedio máximo de carga para recibir campo. Cuando se alcance este nivel, el servidor cerrará el puerto SMTP hasta que la carga vuelva a caer por debajo de él. Por lo general, lo que ingrese debe ser inferior al límite establecido para el promedio de carga máxima para enviar campo, para que la cola de correo aún se procese incluso cuando la carga es alta. Cuando Predeterminado está seleccionado, Sendmail aceptará nuevas conexiones independientemente del promedio de carga.
  7. El Tiempo antes de rendirse El campo especifica la cantidad de tiempo que Sendmail intentará enviar un correo electrónico a un servidor remoto no contactable antes de devolver un mensaje devuelto al remitente. El valor que ingrese debe ser un número seguido de d para días o h para horas. Solo debe cambiarse si es probable que su sistema se desconecte de Internet por más de los 5 días predeterminados y no desea que los mensajes en la cola reboten.
  8. El tiempo similar antes de enviar la advertencia El campo especifica el tiempo que Sendmail mantendrá un mensaje en la cola antes de enviar una advertencia al remitente original. Si su sistema es un servidor de correo secundario para algún dominio o está frecuentemente desconectado de la red, se debe aumentar al mismo tiempo que el campo anterior.
  9. Para cambiar la dirección a la que Sendmail envía mensajes fatales o de doble rebote, ingrese una nueva dirección en el campo *Enviar mensajes de error a*. Cuando administrador de correo está seleccionado, se enviarán al buzón del Postmaster, que suele ser un alias para root.
  10. Para limitar la cantidad de espacio en disco que usará Sendmail para los mensajes en cola, complete el Espacio libre mínimo en disco campo. Si el número de bloques libres cae por debajo de este nivel, ya no se aceptarán nuevos mensajes entrantes. El tamaño exacto de un bloque depende del tipo de sistema de archivos en uso, pero normalmente son
  11. kB o 512 bytes de tamaño.
  12. Para evitar que se envíen mensajes grandes a través de su servidor de correo, complete el Tamaño máximo del mensaje campo. Cualquier correo electrónico mayor que el número de bytes ingresado será rechazado cuando se reciba. Si tiene una conexión de red lenta y usuarios de clientes que no son de confianza, esta opción puede ser útil para ahorrar ancho de banda.
  13. Finalmente, haga clic en Guardar y aplicar para guardar las nuevas opciones globales. Webmin reiniciará automáticamente Sendmail para que los actives.


La página de opciones de Sendmail

Ver la cola de correo

Cuando Sendmail recibe un mensaje, se coloca en la cola de correo. Si se puede enviar a su destino de inmediato, se eliminará de la cola casi de inmediato; sin embargo, si ocurre algún error temporal al finalizar, permanecerá en la cola para su procesamiento posterior. El proceso del servidor de Sendmail realiza verificaciones periódicas de los mensajes en la cola, volviendo a intentar cada uno a intervalos cada vez más largos. Finalmente, después de que un mensaje haya estado en la cola durante demasiado tiempo (generalmente 5 días), se eliminará y se enviará un correo electrónico de devolución al remitente original.

La mayoría de los mensajes que están en la cola durante mucho tiempo están allí porque el servidor de correo de destino está inactivo o no se puede acceder a él. Otra causa común es un error temporal informado por el MTA remoto, como la falta de espacio en disco. Webmin le permite ver los mensajes en cola e incluso eliminarlos siguiendo estos pasos :

  1. En la página principal del módulo, haga clic en Cola de correo icono para ir a una página que enumera los detalles de los mensajes en cola. El número de correos electrónicos en la cola se muestra debajo del icono, para que pueda ver cuánto tiempo es de un vistazo.
  2. En la página de cola de correo, la identificación, el remitente, el destino, el asunto y el tamaño de todos los mensajes en cola se muestran en una tabla. En la columna final está el estado actual, que indica lo que Sendmail está tratando de hacer con el mensaje en este momento. Enviando aparecerá cuando Sendmail intente conectarse al servidor remoto y Diferido se mostrará junto con un motivo cuando se haya intentado y fallado una conexión. Si la cola contiene más de 20 mensajes, solo se mostrarán los primeros 20. Para desplazarse por el resto, utilice los botones de flecha izquierda y derecha que aparecen encima de la lista.
  3. Para ver el contenido real de un correo electrónico, haga clic en su ID en la lista de la cola. Se mostrarán todos los encabezados, el cuerpo del texto y los archivos adjuntos. Para ver un archivo adjunto, simplemente haga clic en su icono. Para eliminar solo este mensaje de la cola, presione Eliminar botón en la parte inferior de la página. Si el correo electrónico está bloqueado porque se está enviando actualmente, Webmin mostrará un mensaje de error junto con un botón con la etiqueta Forzar eliminación de todos modos que puede hacer clic para anular el bloqueo. Sin embargo, esto puede hacer que el mensaje se envíe solo parcialmente, por lo que no se recomienda.
  4. Para eliminar varios mensajes de la cola, primero selecciónelos usando las casillas de verificación junto a sus ID y Seleccionar todo y Invertir selección enlaces en la página de la lista de colas. Luego haga clic en Eliminar mensajes seleccionados botón para deshacerte de los que hayas elegido. Para anular cualquier bloqueo en los correos electrónicos seleccionados, marque la casilla Incluso si está bloqueado caja primero. Después de presionar Eliminar Se mostrará una página con la identificación y el resultado de la eliminación de cada mensaje elegido. La eliminación puede fallar si el mensaje ya no está en la cola o si actualmente está bloqueado.

Aunque Sendmail volverá a intentar los mensajes en la cola automáticamente, puede obligarlo a intentar la entrega de todos los mensajes en cola de inmediato utilizando Webmin. Esto puede ser útil si tiene una conexión a Internet de acceso telefónico y ha puesto en cola varios correos electrónicos mientras estaba desconectado. Los pasos para vaciar la cola son:

  1. En la página principal del módulo, haga clic en Cola de correo icono para traer una lista de mensajes en cola.
  2. Siempre que la cola no esté vacía, se verá un botón con la etiqueta *Descargar cola de correo* en la parte inferior de la página. Click it begin immediate processing of all waiting messages.
  3. A page showing the output from Sendmail as it attempts to deliver queued email will be displayed. If you have a large queue containing messages for down remote servers, it may take a long time to completely appear.

Leer el correo electrónico de los usuarios

As the introduction explains, Sendmail stores messages received by users in files in the /var/mail or /var/spool/mail directory. These are read and emptied by the POP3 server, command-line mail clients like pine or elm, or web-based mail clients like Usermin. However, this Webmin module can also act as a simple mail client, allowing you the system administrator to read any user's email.

This feature is useful for deleting large messages is user mailboxes that would otherwise take a long time to download over a dialup POP3 connection. It also allows you to read email for system users such as root without needing to telnet in or run a separate mail client. More controversially, on a multi-user system you can even invade people's privacy by reading their personal email - assuming they have not downloaded and deleted it via POP3 yet.

The steps to check the contents of a user's mailbox are:

  1. En la página principal del módulo, haga clic en Buzones de correo de usuario icono. Se mostrará una página con una lista de todos los usuarios de su sistema y los tamaños de sus buzones, a menos que tenga más de 200 usuarios. En ese caso, aparecerá un pequeño formulario para ingresar un nombre de usuario.
  2. Click on the name of a user to bring up a list of messages in his mailbox, an example of which is shown in Figure 37-4. De forma predeterminada, los mensajes más recientes se muestran primero, aunque en realidad se encuentran al final del archivo de correo real. Si el buzón contiene más de 20 correos electrónicos, solo se mostrarán los primeros 20. To page though the rest, use the left and right arrow buttons above the list.
  3. To view an actual message, click on the sender's name in the From columna. A page showing the important headers, body text and attachments will appear. Click on an attachment icon to view it, assuming that the data type is supported by your browser or some external program. To remove just this email from the user's mailbox, click the Delete botón en la parte inferior de la página. This can take quite some time if the mailbox is extremely large (over 10 MB) or contains lots of messages, as Webmin needs to re-write the entire mail file.
  4. To delete multiple messages, first select them using the checkboxes and Select all y Invertir selección links on the mail list page. Then click the Delete button above or below the list - once again, this can take a while for large mailboxes.
  5. To search the user's mailbox for messages matching some criteria, use the Find messages where form below the list. The following types of search can be selected from the menu :From:matches , Subject:matches , To:matches or Cc:matches Finds messages in which the From, Subject, To or Cc field contains the text entered into the adjacent text box. The comparison is case-insensitive, but regular expression characters cannot be used. Date:matches Finds messages in which the sending date header contains the entered text. This header will not be converted to local format, so whatever you enter must match the date format used by the sender. Body matches Finds messages whose body contains the entered text. The body includes all attachments in their un-encoded form, not just the text that is shown when you read an email. *Size is greater than* Finds messages whose total size is greater than the number of bytes entered into the adjacent field. For each of the above search types, an inverse type is also available, such as From:doesn't match or *Size is less than*. After choosing your search type and entering text to match, hit the Search botón. A page listing all matching messages will be displayed, from which you can view the contents of emails or select some or all to delete, just like in the normal mail list.


The contents of a user's mailbox

The mail reading section of the module actually allows you to compose new messages and reply to or forward existing ones. In fact, it can be used as a full-featured email client, although it is not the best program for the job. The default From address for sent messages is determined from the mailbox user's name and the system hostname, but this can be changed on the module access control page on a per-Webmin user basis. It is even possible to create Webmin users who can use this module to read only their own mailbox and send email from only their address. However, you should really use a program like Usermin if you want to give the same mail-reading web interface to a large number of users on your system.

By default, the module assumes that that mail for each user will be stored in a file with the user's name in the /var/mail or /var/spool/mail directory. It is possible to configure Sendmail to use a different file path instead though, such as the mbox file in each user's home directory. If this is the case on your system, you will need to re-configure the module, as explained in the section Sendmail Configuration module. Otherwise all the mailbox will show up empty, because Webmin is looking in the wrong place for them.

Adding Sendmail features with M4

The primary Sendmail configuration file sendmail.cf is extremely complex, and almost impossible to edit manually. Fortunately, it is usually built from a series of M4 macro files that are much simpler and can be modified using this module or by manual editing. M4, for those who have not heard of it before, is a program that parses text files and expands macros in them. These macros can include other text files, define variables and functions or exclude text based on certain conditions. M4 is very similar to the pre-processor used by the C programming language which handles #include and #define statements. Fortunately, this module hides most of the complex details from you.

Often, the default Sendmail configuration that comes with your operating system will not have some features enabled, such as address mapping or domain routing. Webmin can detect this, and will display an error message if you try to use a module page for a Sendmail feature that is not enabled in the primary configuration file. To turn on a missing feature, an entry must be added to the primary M4 configuration file, from which sendmail.cf is re-built. Then Sendmail will be able to use it, and this module will be able to configure it.

Before you can manage your Sendmail M4 configuration, this module must know where to find the M4 files. To check if it has the correct paths and to set them if not, follow these steps:

  1. On the module's main page, click on the Sendmail M4 Configuration icono.
  2. If an error message like *The Sendmail M4 configuration file /etc/sendmail.mc was not found* or The locations of the Sendmail M4 base directory and M4 config* files have not been set* is displayed, then module cannot find the M4 files. However, if a table of entries from the file is displayed instead then everything is configured OK and you can skip the rest of these steps.
  3. If you are running Linux, check your distribution CD or website to make sure that all the packages whose names start with sendmail are installed. Sometimes the M4 files are in a separate package named something like sendmail-cf. If you do find and install such as package, go back to step 1 and check again to see if the module has found the configuration files.
  4. If you are using the Sendmail package that came with your version of Unix and cannot find any M4 files on your system, then this feature of the module cannot be used. This is unfortunately the case on some operating systems.

Once the Sendmail M4 Configuration page displays the contents of your primary M4 file, you can use it to add new features such as address mapping or domain routing. The page can in fact be used to modify any of the M4 macros in the file, but unless you are any experienced Sendmail administrator it is best to stick to these instructions for adding features:

  1. From the menu next to the Add new entry of type button at the bottom of the page, select Feature and then hit the button to go to the feature creation form.
  2. Select the one that you want to add from the Feature menú. The most commonly used features have names next to them in brackets that correspond to their icons on the module's main page.
  3. In the Parameters field, enter hash -o followed by the path that should be used for the feature's text and DBM files. For example, if adding a virtusertable feature you should enter hash -o /etc/mail/virtusertable (assuming your system has an /etc/mail directory).
  4. Login to your system as root via SSH, telnet or at the console and create the empty text file with a command like touch /etc/mail/virtusertable. Naturally, this is not necessary if it already exists.
  5. Haga clic en Crear button to update the M4 file and be returned to the previous page.
  6. At the very bottom of the M4 file contents list, click the *Rebuild Sendmail Configuration* button. A confirmation page showing the exact changes that will be made to your sendmail.cf file will be displayed - typically they will be limited to directives for the new feature. If the confirmation form indicates that a huge number of lines are going to be changed, it is likely that the M4 file being edited was not originally used to built your current sendmail.cf file, and so should not be used in future.
  7. To go ahead and use the newly rebuilt Sendmail configuration, click the Yes, replace it now botón. Your sendmail.cf file will be updated and the server process re-started to immediately activate it.
  8. Go back to the module's main page, and click on the icon for the feature that you have just enabled. You will not be able to add and edit address mappings or whatever it was that you added support for.

As you can see from looking at the existing M4 file entries, editing or adding to it can still be quite complex. For this reason, the book does not cover all of the possible features or other macro types that you can add. However, for most people the defaults will work just fine - at most, all you should need to do is add a feature or two as explained above. If you want to learn more about editing the M4 configuration, you should buy a book dedicated to Sendmail administration.

One problem with using the M4 page to re-build your Sendmail configuration is that any changes that have been made directly to sendmail.cf will be overwritten. The module's Sendmail Options page unfortunately does precisely this, so if you follow the instructions above to add a new feature any changes made on that page will be lost! The only real solution is to edit the entries in the M4 file that correspond to those on the Sendmail Options page - for example, the Send outgoing mail via host field is set by the SMART_HOST define.

Creating autoreply aliases

The Sendmail Configuration module lets you easily create an alias that triggers an automatic reply to anyone who sends email to it. When you do this, Webmin creates a simple script that is run from the alias and receives the contents of email sent to it as input, just like a command specified using the Feed to program alias type.

To set up an autoreply alias, follow these steps:

  1. En la página principal del módulo, haga clic en Alias ​​de correo icono.
  2. In the Create Alias form, enter a name for the alias and select Autoreply from file from the type menu. The name can be that of an existing Unix user if you want to set up an automatic reply to any message send to him, for example if he is on holidays.
  3. In the field next to the type menu, enter the path to a file that will contain the autoreply message, such as /home/someuser/autoreply.txt . The file does not have to exist yet.
  4. Haga clic en Crear button to add the alias, and then click on its name in the list to edit again.
  5. Follow the Edit link next to the autoreply filename field. This will bring up a page containing a large text box for entering the contents of the reply message.
  6. After entering the text that you want sent back to any sender, click Save at the bottom of the page. The autoreply alias is now fully active.

The reply text can contain several special macros that start with $, such as $SUBJECT, $TO, $FROM, $DATE and $BODY. When the reply is sent, these will be replaced with the original message's subject, destination address, sender address, sending date or body respectively. Be careful using the $BODY macro though, as it will be replaced with the entire un-encoded contents of the email being replied to.

You can also add to or override the headers used in the reply message by starting the autoreply text with one or more lines in standard SMTP header format, followed by a blank line. For example, to set the subject of the automatic reply you could enter _Subject:This is an automatic reply_ at the top of the text box, with an empty line after it.

One problem with Webmin's autoreply script is its inability to reliably determine the From address to use when sending the reply. Normally this is just taken from the To address of the original message, but this is not possible when replying to a message that was sent to multiple people. Even though the code attempts to find the right address automatically, it can sometimes get the wrong one and send an automatic reply that appears to be from the wrong person. For this reason, you should include a header line like From:Jamie Cameron at the top of your reply text to set the correct address.

If you are setting up an automatic reply alias for a Unix user, it is usually a good idea to have a copy of all email sent to the user stored in his mailbox as well. To do this, re-edit the alias and select Email address from the second type menu. Then enter the user's name preceded by a backslash into the text field next to it (like \jcameron ) and hit Save .

Creating filter aliases

Sendmail aliases normally forward email messages to their destinations regardless of their content. However, it is possible to use this Webmin module to create an alias that forwards to different addresses or files depending on the headers or body of a message send to it. When you create an alias like this, the module internally creates a script that is passed the contents of email to the alias as input, just like a command specified using the Feed to program alias type.

A filter consists of a series of rules, each of which has a condition and action. The condition specifies a header to check and text to check if the header contains, while the action specifies an address to forward to or a file to append the message to. When a message is received by the filter, it is checked against the rules in order until one that matches is found and its action performed. At the end of the list is a default action, which determines where to forward email that does not match any of the conditions.

Compared to other mail filtering or classification programs like Procmail Mail Filter and SpamAssassin Mail Filter, Webmin's filters are limited in their functionality and flexibility. However, they are easy to create and require no additional software. To create one, the steps to follow are:

  1. En la página principal del módulo, haga clic en Alias ​​de correo icono.
  2. In the Create Alias form, enter a name for the alias and select Apply filter file from the type menu. The alias name can be that of an existing Unix user if you want to filter his email before delivery.
  3. In the field next to the type menu, enter the path to a file that will contain the filter rules, such as /home/someuser/filter.rules . Because the file format is fairly complex, you should not enter the name of any existing file unless it was created by following these same steps.
  4. Haga clic en Crear button to add the alias, and then click on its name in the list to edit again.
  5. Follow the Edit link next to the filter rules file field. This will take you to the form shown in Figure 37-5, which contains a table of empty rows for entering new rules and a text field for the default action address.
  6. In the first row, select the header that you want to filter on from the menu next to If the . Or to check the entire un-decoded email body, select body from the list instead. To have the action performed if some text is found in the header or body, select matches from the second menu. Alternately, to perform the action only when some text is not found, choose *doesn't match* instead. In the field next to this menu, enter the text that the filter should check the header or body for. The comparison will always be case-insensitive, and Perl regular expression characters like [, ., + and * can be used. In the *then forward to* field, enter the email address or mailbox name to which messages matching the condition that you specified will be sent. It is also possible to enter an absolute file path like /home/someuser/mail/somefolder to which email will be appended instead. This could be another user's mail file, or a mail folder - however, it must be writable by the Unix user daemon that Sendmail runs as.
  7. To enter another rule, fill in the second blank row by repeating the instructions in the previous step again. Only five empty rows are displayed, but you can create more than five rules by saving and re-editing the filter file.
  8. In the Otherwise forward to field at the bottom of the table, enter an address or filename to which messages that do no match any of the rules will be sent or appended. If this is left blank, unmatched email will be thrown away!
  9. Finally, click the Save button to activate the new filter rules. To make sure they are really working, you should send a few text messages to the alias and check that they are delivered correctly.


The filter creation form

To have email forwarded to multiple addresses by a single rule or the default action, just enter them separated by commas into one of the forward to los campos. Or enter the name of another alias as the destination, which can then send messages to multiple files, addresses and/or programs.

When creating a filter alias with the same name as a Unix user, it is often useful to specify that messages matching some rule be delivered to the user's normal mailbox. However, just entering the user's name as the destination would be a big mistake, as this would trigger an endless loop through the filter! Instead, you should prepend a backslash to the username, like \jcameron . As with aliases, this tells Sendmail to ignore any aliases for this mailbox.

Because it can often be difficult to work out what a filter alias is doing and why it is doing it, the filter script creates a log file in the same directory as the rules file. The log has the same name as the filter file, but with .log appended. Every message received by the alias and delivered to some destination by the filter causes a line to be added to the log, containing the date, time, sender, destination and rule matched. The log file will only be created if the directory or log itself is writable by the daemon user though.

Module access control

The Sendmail Configuration module probably has the most powerful access control features of any module in Webmin. You can use them to limit the aliases and virtual addresses a Webmin user can edit, or restrict him to reading only the mailboxes of certain Unix users. These features are most useful in a virtual hosting environment, where customers own email domains and the user accounts. On this kind of system, you can create one Webmin user per customer who can only manage the address mappings, aliases and mailboxes for his own domains, while not being able to use other features of the module or touch other customers' information.

Once you have created a Webmin user who has access to the module (as explained in WebminUsers), follow these steps to restrict what he can do:

  1. In the Webmin Users module, click on Sendmail Configuration next to the name of the user that you want to restrict.
  2. Cambie ¿Puede editar la configuración del módulo? campo a No , so that he cannot modify paths to Sendmail programs and files.
  3. Set all of the Yes/No fields in the second section to No , which will prevent the user from seeing most of the module's icons.
  4. Seleccione No from the Can manage mail queue? menu, or *View only* if you just want the module user to be able to see the contents of the queue. Selecting Yes would be a bad idea, as it would allow him to delete queued email belonging to other domains.
  5. For the Address mappings this user can edit field, select the Matching option and enter a Perl regular expression for allowable mapping sources into the text field next to it. For example, to let him create and edit mappings in the domains foo.com and example.com , you should enter (@foo.com|@bar.com)$.
  6. It is safe to select all of the checkboxes in the *Address mapping types this user can edit* field.
  7. To limit the number of mappings that the user can create, select the second radio button in the *Maximum number of address mappings* field and enter a number into the box next to it. This can be useful for preventing a single customer from more address mappings than he has paid for.
  8. In the Aliases this user can edit field, select Matching and enter a regular expression that only lets him modify or create aliases starting with the customer's domain names. For example, if the user owns the domains foo.com and example.com you should enter ^(foo|example)- to limit him to aliases like foo-jcameron or example-fred . This naming convention ensures that users cannot step on each others' aliases.
  9. In the Alias types this user can edit field, de-select the checkboxes for types of aliases that the Webmin user should not be allowed to create. Good candidates to deny access to are Write to file , Feed to program , Autoreply and *Filter file*, as they use the permissions of the Sendmail daemon user and thus may be a security risk.
  10. To limit the number of aliases that the customer can create, select the second radio button in the Maximum number of aliases field and enter the maximum into the box next to it.
  11. To stop the Webmin user creating aliases that run programs, append to files or use address files outside a certain directory, enter it into the Limit files and program to directory campo. Unfortunately, this can be subverted by the clever use of symbolic links and so is not a very strong security measure.
  12. In the Outgoing addresses this user can edit field, select Matching and enter the same regular expression as in the Address mappings this user can edit campo. This will limit the user to re-writing addresses for only his own domains. Or to prevent the editing of outgoing addresses at all, select None - in most cases, there is no need for a Sendmail administrator to edit them anyway.
  13. In the Users whose mail can be read field, select one of the last five options to limit the customer to only those Unix users who belong to him. If he has been given limited access to the Users and Groups module as well, then you should allow him to read the email of the same users that he can create an edit in that module.
  14. Leave the rest of the fields on the form set to their defaults - they are only really useful if you are setting up the module as a web- based mail reading interface. Although this is possible, there are much better alternatives such as Usermin.
  15. Haga clic en Guardar button to make the restrictions for the user active.

Even though it is possible to configure this module to limit a user to certain domains, the module's interface is not particularly friendly compared to products like Plesk or Cpanel. These are web-based virtual server management interfaces that have been designed from the ground up for that purpose, unlike Webmin which was design to allow the management of everything on a system.

Configuring the Sendmail Configuration module

The Module Config link on the main page takes you to a form seen in many other modules for editing settings that apply to the operation of the module itself. Those listed under Configurable options relate to its user interface, while those under System configuration define the paths to the Sendmail programs and files.

Settings in the latter group do not usually need to be changed, as by default they are set to match the Sendmail package supplied with your operating system. However, if you have compiled and installed the MTA yourself from the source code, then it is quite possible that they will be incorrect.

Contenido

See also

  • Introduction to Internet Mail

Webmin
  1. Cómo configurar un servidor web Apache

  2. Cómo instalar DKIM en el servidor Ubuntu

  3. Servidor de correo QMail

  4. ¿Configuración del servidor de correo para retransmitir correos electrónicos?

  5. Preparar un Servidor Cloud para ser un servidor de correo

Configuración de usuario

Servidor Dovecot IMAP/POP3

Servidor de correo Postfix

Cómo instalar el servidor de correo Exim en CentOS 6

Configuración del servidor de correo Postfix en Ubuntu 14.04

Configuración del servidor de correo Postfix en Ubuntu 20.04