Configuración del servidor de correos para permitir el uso de clientes externos
- Francisco Javier Huete
- Servicios
- February 18, 2025
Índice
En este post se abordan algunos de los pasos que hay que seguir para configurar un servidor de correo para que se pueda usar con clientes externos.
Configuración del buzón de tipo maildir
Para poder usar un cliente de correo externo, es necesario configura en el servidor un buzón de tipo maildir en lugar del de tipo mailbox, por defecto. Esto se hace modificando las siguientes líneas del fichero de configuración /etc/postfix/main.cf:
home_mailbox = Maildir/
mailbox_command =
Configuración de IMAP para recibir correo en el cliente externo
Para configurar el protocolo IMAP en el servidor de correo se usa el programa dovecot
.
sudo apt install dovecot-imapd
Esta herramienta usa varios ficheros de configuración diferentes.
En /etc/dovecot/conf.d/10-ssl.conf se configura el tipo de conexiones que se soportan y/o permiten. En este caso, el parámetro ssl
se pone a required
para permitir sólo conexiones por SSL. Además, en este fichero se apunta a la ruta del certificado y la clave privada del servidor.
ssl = required
ssl_cert = /etc/letsencrypt/live/javihuete.site/fullchain.pem
ssl_key = /etc/letsencrypt/live/javihuete.site/privkey.pem
La autentificación se configura en el fichero /etc/dovecot/conf.d/10-auth.conf. Por defecto, la línea !include auth-system.conf.ext
indica que para la autentificación se usan los usuarios del sistema.
En el fichero /etc/dovecot/conf.d/10-mail.conf se configuran los buzones. Aquí hay que indicar la ubicación del directorio de buzones:
mail_location = maildir:~/Maildir
Además, en el fichero /etc/dovecot/conf.d/15-mailboxes.conf se puede añadir la línea auto = subscribe
en cada buzón para indicar a los clientes que se deben suscribir a ellos.
mailbox Trash {
auto = subscribe
special_use = \Trash
}
# For \Sent mailboxes there are two widely used names. We'll mark both of
# them as \Sent. User typically deletes one of them if duplicates are created.
mailbox Sent {
auto = subscribe
special_use = \Sent
}
mailbox "Sent Messages" {
auto = subscribe
special_use = \Sent
}
Por último, en el DNS se incluye un registro de tipo CNAME para que redirija a los clientes que usen el nombre del servicio imap
a la dirección IP de la máquina en la que este servicio se aloja.
Configuración de ESMTP para enviar correo desde el cliente externo
Para indicar a postfix
que use dovecot
para autentificar a los clientes a través de SASL se establece la configuración necesaria en el fichero /etc/postfix/main.cf del servidor de correos.
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
smtpd_sasl_local_domain =
smtpd_sasl_security_options = noanonymous
broken_sasl_auth_clients = yes
smtpd_sasl_auth_enable = yes
smtpd_recipient_restrictions = permit_sasl_authenticated,permit_mynetworks,reject_unauth_destination
Por otra parte, en el apartado service auth
del fichero de configuración de dovecot
/etc/dovecot/conf.d/10-master.conf se descomentan las líneas que habilitan la comunicación entre este programa y postfix
a través de un socket unix.
# Postfix smtp-auth
unix_listener /var/spool/postfix/private/auth {
mode = 0666
user = postfix
group = postfix
}
Para hacer que postfix
escuche por el puerto por defecto para el protocolo ESMTP, el 587, se debe habilitar la línea que lo indica en el fichero /etc/postfix/master.cf. En él se descomenta la siguiente línea:
submission inet n - y - - smtpd
También en el DNS se incluye un registro de tipo CNAME para que redirija a los clientes que usen el nombre del servicio smtp
a la dirección IP de la máquina en la que se está ejecutando este servicio.
Por último, para permitir conexiones remotas al servidor de correos, hay que modificar el valor del parámetro mynetworks
.
mynetworks = 0.0.0.0