Servicio de correo electrónico (SMTP/POP3-IMAP4)¶
Zentyal usa como MTA para el envío/recepción de correos Postfix [7]. Así mismo, para el servicio de recepción de correos (POP3 e IMAP) Zentyal usa Dovecot [8]. Ambos con soporte para comunicación segura con SSL. Por otro lado, para obtener el correo de cuentas externas, Zentyal usa el programa Fetchmail [9] .
[7] | Postfix: http://www.postfix.org |
[8] | Dovecot: http://www.dovecot.org |
[9] | Fetchmail: https://sourceforge.net/projects/fetchmail/ |
Configuración de un servidor SMTP/POP3-IMAP4 con Zentyal¶
Recibiendo y retransmitiendo correo¶
Para comprender la configuración de un sistema de correo, se debe distinguir entre recibir y retransmitir correo.
La recepción se realiza cuando el servidor acepta un mensaje de correo en el que uno de los destinatarios es una cuenta perteneciente a alguno de los dominios gestionados por el servidor. El correo puede ser recibido de cualquier cliente que pueda conectarse al servidor.
Sin embargo, la retransmisión ocurre cuando el servidor de correo recibe un mensaje de correo en el que ninguno de los destinatarios pertenecen a ninguno de sus dominios virtuales de correo gestionados, requiriendo por tanto su reenvío a otro servidor. La retransmisión de correo está restringida, de otra manera los spammers podrían usar el servidor para enviar spam en Internet.
Zentyal permite la retransmisión de correo en dos casos:
1. Usuarios autenticados.
2. Una dirección de origen que pertenezca a un objeto que tenga una política de retransmisión permitida.
Configuración general¶
En la sección
, se pueden configurar los parámetros generales del servicio de correo:- Smarthost al que enviar el correo:
Si se establece esta opción, Zentyal no enviará directamente sus mensajes sino que cada mensaje de correo recibido sera reenviado al smarthost sin almacenar ninguna copia. En este caso, Zentyal actuará como un intermediario entre el usuario que envía el correo y el servidor que enviará finalmente el mensaje.
En el campo se especifica la dirección IP o nombre de dominio del smarthost. También se puede establecer un puerto añadiendo el texto :[número de puerto] después de la dirección. El puerto por defecto es el puerto estándar SMTP, 25.
- Autenticación del smarthost:
- Determina si el smarthost requiere autenticación y si es así, provee un usuario y contraseña.
- Nombre del servidor de correo:
- Determina el nombre de correo del sistema. Será usado por el servicio de correo como la dirección local del sistema.
- Dirección del postmaster:
La dirección del postmaster por defecto es un alias del superusuario (root), pero puede establecerse a cualquier dirección, perteneciente a los dominios virtuales de correo gestionados o no.
Esta cuenta está pensada para tener una manera estándar de contactar con el administrador de correo. Correos de notificación automáticos suelen usar postmaster como dirección de respuesta.
- Tamaño máximo permitido del buzón de correo:
- En esta opción se puede indicar un tamaño máximo en MiB para los buzones del usuario. Todo el correo que exceda el limite, será rechazado y el remitente recibirá una notificación. Esta opción puede sustituirse para cada usuario en la página .
- Tamaño máximo de mensaje aceptado:
- Señala, si es necesario, el tamaño máximo de mensaje aceptado por el smarthost en MiB. Esta opción tendrá efecto sin importar la existencia o no de cualquier límite al tamaño del buzón de los usuarios.
- Periodo de expiración para correos borrados:
- Si esta opción está activada, el correo en la carpeta de papelera de los usuarios será borrado cuando su fecha sobrepase el límite de días establecido.
- Periodo para correos de spam:
- Esta opción se aplica de la misma manera que la opción anterior, pero con respecto a la carpeta de spam de los usuarios.
Para configurar la obtención de los mensajes, tenemos que ir a la sección Servicios de obtención de correo. Zentyal puede configurarse como servidor de POP3 y/o IMAP, además de sus versiones seguras POP3S y IMAPS. En esta sección también podemos activar los servicios para obtener correo de direcciones externas y ManageSieve, estos servicios se explicarán a partir de la sección de Fetchmail.
También se puede configurar Zentyal para que permita reenviar correo sin necesidad de autenticarse desde determinadas direcciones de red. Para ello, se permite una política de reenvío con objetos de red de Zentyal a través de
basándonos en la dirección IP del cliente de correo origen. Si se permite el reenvío de correos desde dicho objeto, cualquier miembro de dicho objeto podrá enviar correos a través de Zentyal.Advertencia
Hay que tener cuidado con usar una política de Open Relay, es decir, permitir reenviar correo desde cualquier lugar, ya que con alta probabilidad nuestro servidor de correo se convertirá en una fuente de spam.
Finalmente, se puede configurar el servidor de correo para que use algún filtro de contenidos para los mensajes [11]. Para ello, el servidor de filtrado debe recibir el correo en un puerto determinado y enviar el resultado a otro puerto donde el servidor de correo estará escuchando la respuesta. A través de , se puede seleccionar un filtro de correo personalizado o usar Zentyal como servidor de filtrado. En caso de que el módulo de filtrado de Zentyal esté instalado y activado, no necesitaremos configurar esta sección, ya que se utilizará automáticamente por el módulo de mail.
[11] | En la sección Filtrado de correo electrónico se amplia este tema. |
Creación de cuentas de correo a través de dominios virtuales¶
Para crear una cuenta de correo, se debe tener un usuario creado y un dominio virtual de correo. Desde
, se pueden crear tantos dominios virtuales como queramos, asignando un nombre de dominio a las cuentas de correo de los usuarios de Zentyal. Adicionalmente, es posible crear alias de un dominio virtual de tal manera que enviar un correo al dominio virtual o a su alias sea indiferente.Para crear cuentas de correo, lo haremos de manera análoga a la compartición de ficheros. Acudimos a
, seleccionaremos un usuario y añadiremos una cuenta de correo. Se pueden crear alias para asignar más de una dirección de correo a un mismo usuario. Independientemente de los alias que se usen, los mensajes se almacenarán todos en un único buzón.Hay que tener en cuenta que se puede decidir si se desea que a un usuario se le cree automáticamente una cuenta de correo cuando se le da de alta. Este comportamiento puede ser configurado en Usuarios y Equipos -> Plantilla de Usuario, Cuenta de correo.
De la misma manera, se pueden crear alias para grupos. Los mensajes recibidos por estos alias son enviados a todos los usuarios del grupo con cuenta de correo. Los alias de grupo son creados a través de Crear un alias de cuenta de correo al grupo. Los alias de grupo están sólo disponibles cuando, al menos, un usuario del grupo tiene cuenta de correo.
, seleccionar el grupo yFinalmente, es posible definir alias hacia cuentas externas, esto es, cuentas de correo en dominios no gestionados por el servidor. El correo enviado a un alias será retransmitido a la correspondiente cuenta externa. Esta clase de alias se establecen por dominio virtual de correo, no requieren la existencia de ninguna cuenta de correo y pueden establecerse en
.Recibir correos desde cuentas externas con Fetchmail¶
En el caso de que nuestros usuarios tengan cuentas de correo externas que quieran mantener, por ejemplo de algun trabajo anterior, en Zentyal existe una opción para usar Fetchmail [12] como cliente de correo adicional para los usuarios de dominio.
La opción para activar Fetchmail en Zentyal está disponible a través de
. En el apartado de Servicios de obtención de correo, en la parte inferior se puede seleccionar la opción Recuperación de correo de cuentas externas.Una vez activada la opción, se guardan los cambios, y después se configura la cuenta externa desde
. Se selecciona el usuario y al final de la configuración, en Características de la cuenta de correo, se incluyen los datos de la cuenta externa:[12] | Fetchmail: https://sourceforge.net/projects/fetchmail/ |
Cliente de Webmail¶
Además de los accesos con el cliente nativo, puede resultar de gran utilidad contar con una plataforma basada en web desde donde poder acceder a todos nuestros correos electrónicos, calendarios y libretas de direcciones. Para este propósito, Zentyal integra SOGo, una solución de Groupware de código abierto [16].
Para utilizar este módulo tan solo necesitaremos instalarlo y habilitarlo. Una vez hayamos habilitado el módulo, podemos acceder a nuestra plataforma web usando la URL ‘https://<FQDN_del_servidor>/SOGo/‘ .
Accediendo a esta URL, podremos ver la pantalla principal de login, desde la que podemos escoger también el idioma de la interfaz para este usuario.
En primer lugar se nos mostrará la sección de correo electrónico.
Usando los iconos que tenemos en la parte superior derecha de la interfaz, podemos acceder a la interfaz de calendarios.
Así como las libretas de contactos, desde donde podemos consultar la lista global (GAL, Global Address List). Esta contiene todos los usuarios registrados en nuestro dominio, nuestras listas personales de contactos y la opción de crear listas de distribución para el correo electrónico
[16] | http://sogo.nu |
Soporte ActiveSync®¶
El protocolo ActiveSync® es ampliamente utilizado para sincronizar dispositivos móviles y también en las útimas versiones de Microsoft® Outlook.
Para activar el soporte ActiveSync® en Zentyal, es necesario tener instalado el módulo de SOGo Webmail ya que este mismo software (SOGo) es el encargado de proporcionar la implementación del protocolo por medio de su paquete sogo-activesync.
Tras haber instalado y habilitado el módulo, podremos activar la opción de ActiveSync® desde
, en la interfaz de Zentyal.Los dispositivos accederán a ActiveSync® a través del servidor web de Zentyal, usando los puertos 80 y 443 (con SSL) por defecto.
Securización del servidor de correo¶
Debido a la importancia del servicio de correo hoy en día y a los constantes ataques a los que se ve expuesto este servicio, es ‘obligatorio’ la implementación del protocolo SPF [17] así como del mecanismo de autenticacón DKIM [18] para aumentar la seguridad del servicio de correo. En la siguiente sección vamos a detallar cómo configurar el registro SPF a nuestro módulo de DNS y también cómo implementar DKIM en el Servidor Zentyal.
[17] | SPF: https://es.wikipedia.org/wiki/Sender_Policy_Framework |
[18] | DKIM: https://es.wikipedia.org/wiki/DomainKeys_Identified_Mail |
SPF¶
Para configurar el protocolo SPF en el servidor Zentyal, primero deberemos generar el registro TXT que indique quién tiene permitido enviar correos electrónicos con nuestro nombre. Para ello, recomendamos usar una de las múltiples páginas webs que mediante formularios nos ayudan a generar el registro TXT.
Truco
Una página web recomendada para la generación del registro DNS es SPFwizard, aquí [19] tenemos el enlace.
Un ejemplo de un registro DNS de tipo TXT generado:
zentyal-domain.lan. IN TXT
"v=spf1 mx a ip4:192.168.6.1 a:zentyal.zentyal-domain.lan -all"
Una vez tenemos el registro DNS para la implementación del protocolo SPF, tenemos que añadirlo en nuestro módulo de DNS.
Por último, para validar que el registro se haya añadido correctamente al dominio, una de las formas más recomendables es hacerlo a través de la página web MXtoolbox [20]
[19] | SPFwizard: https://www.spfwizard.net/ |
[20] | MXtoolbox SPF: https://mxtoolbox.com/spf.aspx |
DKIM¶
Para la implementación del mecanismo de autenticación, vamos a usar el software de terceros OpenDKIM. A continuación se indican los pasos a realizar para desplegar dicho mecanismo.
1. Instalamos los paquetes necesarios:
sudo apt-get install -y opendkim opendkim-tools
2. Creamos el directorio donde se almacenarán las claves:
sudo mkdir -vp /etc/opendkim/keys
3. Generamos las claves:
sudo opendkim-genkey -s mail -d zentyal-domain.lan -D /etc/opendkim/keys
4. Ajustamos los permisos:
sudo chown -R opendkim:opendkim /etc/opendkim/
sudo chmod 0640 /etc/opendkim/keys/*.private
5. Creamos el archivo de configuración /etc/opendkim/TrustedHosts
, donde indicamos los hosts confiables:
127.0.0.1
localhost
192.168.6.0/24
*.zentyal-domain.lan
6. A continuación, creamos el archivo de configuración /etc/opendkim/SigningTable
que contendrá el dominio y subdominios que serán firmados por OpenDKIM:
*@zentyal-domain.lan mail
7. Después tenemos que indicar el nombre del selector
así como la localización de la clave privada para firmar en el archivo de configuración /etc/opendkim/KeyTable
:
mail zentyal-domain.lan:mail:/etc/opendkim/keys/mail.private
8. Una vez que hayamos terminado de definir los archivos de configuración mencionados, tenemos que crear el archivo de configuración principal de OpenDKIM ubicado en /etc/opendkim.conf
:
Mode sv
PidFile /var/run/opendkim/opendkim.pid
UserID opendkim:opendkim
Socket inet:8891@127.0.0.1
SignatureAlgorithm rsa-sha256
AutoRestart Yes
AutoRestartRate 10/1h
Syslog yes
SyslogSuccess yes
LogWhy Yes
UMask 002
OversignHeaders From
Canonicalization relaxed/simple
ExternalIgnoreList refile:/etc/opendkim/TrustedHosts
InternalHosts refile:/etc/opendkim/TrustedHosts
KeyTable refile:/etc/opendkim/KeyTable
Signingtable refile:/etc/opendkim/SigningTable
9. Lo siguiente será establecer el puerto y la dirección de escucha de OpenDKIM en el archivo de configuración /etc/default/opendkim
:
SOCKET="inet:8891@127.0.0.1"
10. Por último en lo que configuración de OpenDKIM se refiere, tenemos que iniciar y habilitar su servicio:
sudo systemctl restart opendkim
sudo systemctl enable opendkim
11. A continuación, tenemos que añadir en la plantilla de configuración /usr/share/zentyal/stubs/mail/main.cf.mas
del módulo de Correo los siguientes parámetros de configuración para poder usar OpenDKIM:
## DKIM Configuration
milter_protocol = 6
milter_default_action = accept
smtpd_milters = inet:127.0.0.1:8891
non_smtpd_milters = inet:127.0.0.1:8891
Advertencia
Hay que leer detenidamente la documentación de Zentyal sobre los stubs [21] para hacer el cambio persistente ante actualizaciones del módulo.
12. Reiniciamos el módulo de Correo para aplicar los cambios:
sudo zs mail restart
13. Después tenemos que añadir el registro TXT en el módulo DNS con el contenido definido en e archivo de configuración ubicado en /etc/opendkim/keys/mail.txt
:
mail._domainkey IN TXT ( "v=DKIM1; h=sha256; k=rsa; "
"p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAyn66wkANz7H
Gd2KvNadQnPRH7g4uU2Ur54VBxG8VFJJcHNCj/D3c8gAqh6kb/B8ZVQ5o
G7+1w7KLZJUKwYhPUaYZ3t8CUQOI1+klhSAJGOQRqpUkAGQcEBhSuQFBA
R057j/UZrUcwBZTONp5LrhqLWw0duC2G8UaWDdxzIyugYplzZUmtzMqzx
4jo9sjH3cRc/1kNRg7lzzvay" "Q/PxyxpEFGxsx8A6AJe0lZBbntSgXt
d3ycnVmgIlX1nn9FHJkA8/xrFcN4tyu5GHGv/zPzC9a6ah73AKNL1P+u4
yqGGBrLNkJ7ERLmmLuIOAdNisBKj9u93cT9ba7V1LD39xHiwwIDAQAB" )
; ----- DKIM key mail for zentyal-domain.lan
14. A continuación el comando [22] para añadir este registro concreto:
samba-tool dns add zentyal.zentyal-domain.lan zentyal-domain.lan \
mail._domainkey.zentyal-domain.lan TXT '"v=DKIM1; h=sha256; k=rsa; "
"p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAyn66wkANz7HGd2KvNad
QnPRH7g4uU2Ur54VBxG8VFJJcHNCj/D3c8gAqh6kb/B8ZVQ5oG7+1w7KLZJUKwYhP
UaYZ3t8CUQOI1+klhSAJGOQRqpUkAGQcEBhSuQFBAR057j/UZrUcwBZTONp5LrhqL
Ww0duC2G8UaWDdxzIyugYplzZUmtzMqzx4jo9sjH3cRc/1kNRg7lzzvay" "Q/Pxy
xpEFGxsx8A6AJe0lZBbntSgXtd3ycnVmgIlX1nn9FHJkA8/xrFcN4tyu5GHGv/zPz
C9a6ah73AKNL1P+u4yqGGBrLNkJ7ERLmmLuIOAdNisBKj9u93cT9ba7V1LD39xHiw
wIDAQAB"'
Advertencia
Hay que prestar especial atención al contenido del archivo antes de añadir el registro TXT.
15. Por último, para validar que el registro se haya añadido correctamente al dominio, una de las formas más recomendables es hacerlo a través de la página web MXtoolbox [23]. Al enviar un correo, deberíamos de poder ver en la cabecera del mensaje un extracto similar al siguiente:
[21] | Stubs: https://doc.zentyal.org/es/appendix-c.html#stubs |
[22] | Administración DNS: https://wiki.samba.org/index.php/DNS_Administration |
[23] | Mxtoolbox DKIM: https://mxtoolbox.com/dkim.aspx |