Configurar el servidor Postfix Smtp en Ubuntu/Debian
Tiene su propio nombre de dominio y su propio vps/servidor dedicado y desea utilizar el nombre de dominio para los correos electrónicos. Por lo tanto, debe configurar un servidor de correo utilizando un servidor smtp y un servidor imap/pop.
Este tutorial le muestra cómo configurar Postfix (servidor smtp) y Dovecot (servidor imap/pop). La tarea del servidor smtp es aceptar correos entrantes y retransmitir correos salientes de usuarios autorizados en el sistema.
Mientras que Dovecot permite a los usuarios autorizados acceder a su bandeja de entrada y leer cualquier correo que haya.
La configuración simple:no estamos haciendo esto
En el tipo de configuración más simple para Postfix, simplemente especifique su nombre de dominio "xyz.com" en el parámetro de configuración "mydestination", luego podrá recibir correos para [email protected] si hay un usuario (linux) llamado silver en el sistema
Esta técnica es simple pero con grandes inconvenientes. En primer lugar, debe crear una nueva cuenta de usuario de Unix para cada nueva dirección de correo electrónico que necesitemos.
En segundo lugar, los usuarios deben iniciar sesión con sus contraseñas del sistema. Así que esta no es una estrategia muy flexible para configurar cuentas de correo.
Por separado, puede configurar Dovecot para leer los correos entrantes desde el directorio donde los almacena Postfix (/var/mail por defecto). Hay un artículo en DigitalOcean que muestra cómo configurar postfix con dovecot así.
Vamos a configurar las cosas de manera que pueda crear rápidamente direcciones de correo electrónico simplemente escribiéndolas en un archivo junto con la contraseña.
Agregaremos tantos dominios como queramos y crearemos tantos correos electrónicos y todo será encriptado y autenticado.
Since the email accounts we shall be creating are not related to any system users or system domains, they are called "virtual users" and "virtual domains". Virtual means, that not related to any system specific thing.
¿Cómo funcionará? - La jerga técnica
1. Todos los correos entrantes destinados a su servidor serán recibidos por Postfix (SMTP) y luego entregados a Dovecot (LMTP) para almacenarlos en la Bandeja de entrada.
Esto es mejor porque el servicio lmtp incorporado de dovecot ofrece más funciones como cuotas, permisos, estructuras de directorio flexibles para buzones de correo, etc.
Incoming mail (From somewhere) -> Postfix (SMTP) -> Dovecot (LMTP) -> MailBox/Inbox
And due to this Postfix is reduced to just a "tranmission agent" that just moves mails in and out, and nothing else.
2. Todos los correos salientes serán enviados por Postfix. Pero solo de cuentas autenticadas.
Outgoing mail (Thunderbird) -> Postfix (SMTP) -> Destination (SMTP) like gmail
3. Dovecot proporcionará servicios IMAP/POP para permitir que los clientes de correo lean la Bandeja de entrada.
Thunderbird <==> Dovecot (IMAP) <==> Inbox
4. Dovecot proporcionará exclusivamente un mecanismo de autenticación a Postfix a través de SASL.
Las cuentas de correo electrónico - nombre de usuario + contraseñas se almacenarán en un archivo.
Si desea configurar dominios y cuentas de correo electrónico en una base de datos (en lugar de un archivo), siga este tutorial en linode.com
Configurar registros MX para dominio
Antes de continuar, asegúrese de que los registros MX para sus dominios que va a utilizar con su servidor de correo estén configurados correctamente. La mayoría de los proveedores de servidores como Linode proporcionan una interfaz sencilla para configurar entradas de zona para registros mx.
Si su dominio es example.com, su mx podría ser mail.example.com, por ejemplo. Use el comando de excavación para verificar -
# Find the MX (mail exchange) server $ dig MX amazon.com +short 5 amazon-smtp.amazon.com. # Find the ip address of the mx server $ dig amazon-smtp.amazon.com +short 207.171.184.25
Asegúrese de que la dirección IP de su MX (servidor de correo) sea la de ese servidor en el que va a configurar postfix y dovecot.
Configuración del servidor de correo Postfix en ubuntu paso a paso
Lo primero que debe configurar es Postfix. No olvide que en nuestra configuración, Postfix transmitirá todos los correos salientes, pero para todos los correos entrantes, los entregará a Dovecot para su almacenamiento y posterior acceso por parte de los clientes de correo electrónico.
Cosas que debe saber primero
1. Postfix registra todas sus acciones en un archivo llamado /var/log/mail.log. Compruébelo para obtener información útil y ahorre tiempo en el diagnóstico de problemas.
2. El comando postconf es la herramienta para mirar dentro de las configuraciones de Postfix. Enumera todo en un formato de nombre =valor en línea. Así que usa el comando grep para encontrar lo que necesites.
3. Todos los parámetros de configuración de Postfix se encuentran en el archivo /etc/postfix/main.cf
Los parámetros se explican en las páginas man que se encuentran en - "man 5 postconf"
Instalar y configurar Postfix
Bien, si aún no lo ha hecho, instale Postfix. Está justo ahí en los repositorios, así que no deberías buscar en otro lado a menos que quieras algo más nuevo.
$ sudo aptitude install postfix
No te preocupes, el resto no va a ser tan fácil. Después de instalar Postfix, es posible que desee comprobar la versión. Aquí está el comando para hacer eso.
$ postconf mail_version mail_version = 2.10.2 $ postconf | grep mail_version mail_version = 2.10.2
Configurar principal.cf
En esta sección configuraremos varias cosas en el archivo de configuración principal de Postfix ubicado en /etc/postfix/main.cf .
Estos incluyen nombres de host, parámetros para la autenticación SASL, sockets unix para el servicio de autenticación dovecot lmtp y dovecot sasl y una lista de nuestros virtual_mailbox_domains de los cuales Postfix será responsable de recibir los correos entrantes.
Los parámetros complicados !!!
Los siguientes parámetros son los 3 parámetros súper confusos que debe comprender y configurar correctamente para evitar problemas inesperados.
myhostname mydomain myorigin
Podría hospedar múltiples dominios en su servidor, digamos abc.com + efg.com + xyz.com. Debe usar uno de ellos como dominio principal y usarlo para "myorigin". El campo myorigin es el que se configura automáticamente mientras postfix instala y te pide el dominio del servidor.
De forma predeterminada, myorigin está configurado para apuntar a /etc/mailname, por lo que puede completar su dominio predeterminado en /etc/mailname o especificarlo directamente en el archivo de configuración.
The domain specified with myorigin is used for mails generated by Postfix. For example when it fails to deliver a mail, it would reply with a from address of "Mail Delivery System<[email protected]>".
Se supone que el parámetro myhostname contiene el "nombre del servidor de correo" como lo indica su registro mx. Este es el nombre que utiliza Postfix en la comunicación smtp para identificarse. Por ejemplo, "HELO minombre de host".
If you set myhostname to a certain domain, then you should be able to setup the SPF records for that domain later. This is dictated by the SPF specifications.
También podría dejar myhostname solo en "localhost" y las cosas seguirían funcionando bien. Sin embargo, en ese caso, su servidor usaría un mensaje como "HELO localhost" al conectarse a otros servidores de correo como Gmail, y Gmail rechazaría con enojo el correo llamándolo no solicitado.
Por lo tanto, se recomienda configurar myhostname con un nombre de dominio adecuado con registros A y TXT (SPF) válidos. También asegúrese de establecer myorigin.
Ejemplo de configuración -
myhostname = mail.yoursite.com myorigin = yoursite.com
Técnicamente, en un solo servidor, puede usar el mismo valor de myorigin para myhostname. Sin embargo, en diversas configuraciones que involucran múltiples servidores separados, los valores de estos campos deben configurarse con más cuidado.
Para obtener más información, lea la guía de configuración básica de Postfix.
El parámetro virtual_transport le dice a postfix que reenvíe/transporte los correos a Dovecot para aquellos dominios que se enumeran en "virtual_mailbox_domains".
La ruta "private/dovecot-lmtp" es relativa a "/var/spool/postfix/". El socket Unix real se configurará más adelante en la sección de configuración de Dovecot.
Aquí establecemos los parámetros para configurar la autenticación basada en SASL para Postfix. Postfix internamente es capaz de comunicarse con el "servicio SASL de Dovecot" a través de un socket Unix.
Para verificar qué diferentes complementos smtpd_sasl_type admite su instalación de Postfix, ejecute el siguiente comando.
Aquí especificamos los dominios para los que Postfix "aceptará" correos entrantes. Así que especifique todos sus dominios internos aquí. Pondremos los dominios en un archivo llamado virtual_mailbox_domains.
Introduzca los dominios, uno en una línea
Luego ejecute postmap en el archivo. Creará un archivo llamado virtual_mailbox_domains.db que será utilizado por Postfix
La tabla virtual_mailbox_maps se puede utilizar para especificar direcciones de correo electrónico válidas para los dominios enumerados en virtual_mailbox_domains.
Además del servicio smtp en el puerto 25, necesitamos habilitar más servicios. SMTPS operará en el puerto 465 y MSA (agente de envío de correo) operará en el puerto 587. SMTP usa el tipo de autenticación SSL/TLS y MSA usa STARTTLS.
Busque la sección sobre "envío" y "smtps" en el archivo llamado /etc/postfix/master.cf y descomente las primeras líneas. SI SOLO LA PRIMERA LINEA
La línea "submission" habilita el servicio MSA en el puerto 587 y "smtps" inicia el servicio SMTP habilitado para SSL en el puerto 465.
Es posible que desee habilitar solo el servicio de envío, ya que SMTPS ahora está obsoleto y se mantiene solo por compatibilidad con las aplicaciones de Microsoft que no admiten STARTTLS.
Puerto 25:es para MTA (agente de transmisión de correo). El servicio MTA es para permitir que otros MTA y MSA se conecten y entreguen correos.
Puerto 465/587:es para MSA (agente de envío de correo). El servicio MSA es para que los MUA (agentes de usuario de correo como Thunderbird) se conecten y depositen correos electrónicos para su entrega.
Hemos terminado de configurar Postfix. Ahora simplemente reinicie.
Hemos terminado con la instalación y configuración de Postfix. Lo que queda es Dovecot, el servidor IMAP/POP. Pero Dovecot hace mucho más que eso, como veremos ahora.
1. Dovecot tendrá una ubicación para almacenar los correos entrantes entregados por Postfix.
2. Se debe crear una cuenta de usuario del sistema separada y otorgarla a dovecot para que dovecot pueda leer/escribir el directorio de almacenamiento de correo. En nuestro ejemplo, el usuario se llama "vmail".
3. Dovecot alojará servicios IMAP y POP seguros para permitir que los clientes de correo electrónico lean la bandeja de entrada.
4. Dovecot proporcionará el servicio de autenticación SASL a Postfix a través de un socket Unix. El mismo nombre de usuario/contraseña funcionará tanto con Postfix (servidor SMTP) como con Dovecot (servidor IMAP/POP)
5. Usaremos la dirección de correo electrónico completa ([email protected]) como nombre de usuario y también estableceremos una contraseña cifrada.
Primero instale dovecot y algunos paquetes necesarios. Instale el paquete principal de dovecot y los paquetes para compatibilidad con imap, pop y lmtp.
Comprobar versión
Ahora es el momento de configurar Dovecot para configurar cuentas de usuario y también sockets SASL para permitir que Postfix realice autenticaciones. Todos los archivos de configuración se encuentran dentro de /etc/dovecot/conf.d/ directorio.
Compruebe el /etc/dovecot/dovecot.conf y asegúrese de que el archivo de protocolos esté incluido. Incluye los archivos de configuración para varios protocolos que los habilitan.
Los protocolos instalados se pueden enumerar así
Le decimos a Dovecot que almacene correos dentro del directorio /var/mail/vhosts y luego los coloque en subdirectorios para cada dominio y el usuario bajo ese dominio.
Edite el archivo 10-mail.conf
Cree el directorio /var/mail/vhosts
Ahora cree dentro de ese directorio, cree un directorio para cada dominio en el que desea recibir correo en este servidor.
Ahora cree un usuario con nombre y grupo de vmail y uid y gid de 5000. Aunque el uid puede ser cualquier número, estamos eligiendo 5000 para indicar que no es un usuario común. La opción "-r" especifica además que este usuario es un usuario de nivel de sistema y no tiene ningún inicio de sesión.
Otorgue privilegios completos a vmail para leer/escribir en /var/mail/vhosts
Ahora dígale a Dovecot que inicie los servicios de imaps y pops. Edite el archivo 10-master.conf y habilite los puertos para los servicios y especifique ssl en sí.
Deje los puertos para imap y pop comentados ya que no queremos alojar servicios no seguros.
Para IMAPS:IMAP seguro
Para POP3S:POP3 seguro
La página wiki de dovecot en LMTP muestra un ejemplo simple de cómo configurar el socket lmtp en /etc/dovecot/conf.d/10-master.conf archivo.
Busque la sección denominada "service lmtp" y complete la ruta al archivo donde se crearía el socket de Unix. Postfix utiliza esta misma ruta para la configuración de "transporte_virtual".
El socket debe tener privilegios de usuario:grupo postfix para que el proceso Postfix pueda usarlo.
Busque la sección "autorización del servicio" y dentro de ella agregue lo siguiente. Si ya está allí, simplemente modifíquelo.
Abra el archivo conf.d/10-auth.conf y elimine el comentario de la línea disabled_plaintext_auth asegurándose de que esté configurado en sí. Esto garantiza que el cifrado TLS/SSL se utilice siempre con fines de autenticación.
Busque la configuración denominada auth_mechanism y elimínela. Esta configuración especifica el formato en el que se proporcionaría la contraseña a dovecot.
Especificar archivos de autenticación
Lo último que hay que configurar en el archivo 10-auth.conf es la base de datos de contraseñas. Por defecto, Dovecot está configurado para autenticarse usando "usuarios del sistema" (usuarios de Linux de /etc/passwd).
Vamos a decirle que se autentique usando un archivo separado que contiene los nombres de usuario y las contraseñas
Busque y comente la línea auth-system.conf.ext y quite el comentario de la línea auth-passwdfile. Debería verse algo como esto
A continuación, edite el archivo auth-passwdfile.conf.ext
Haz que se vea así.
La sección passdb le dice a dovecot dónde buscar el nombre de usuario y las contraseñas para autenticarse. El archivo es /etc/dovecot/dovecot-users.
El formato de nombre de usuario "%u" indica que se usará la dirección de correo electrónico completa como nombre de usuario. Esto significa que al iniciar sesión desde un cliente de correo electrónico, usaría la dirección de correo electrónico como nombre de usuario tanto para smtp como para imap/pop.
El nombre de usuario y las contraseñas se almacenan en un archivo llamado /etc/dovecot/dovecot-users que crearemos en el siguiente paso
La sección userdb le dice a dovecot dónde leer/escribir los correos de un usuario determinado. Estamos utilizando una estructura de directorio fija /var/mail/vhosts/%d/%n
Entonces, los correos para el usuario [email protected] se leerán desde el siguiente directorio -
Cree un archivo de texto simple dentro de /etc/dovecot/ y llénelo con el nombre de usuario y las contraseñas en el formato usuario:contraseña. Aquí hay un ejemplo
Genere contraseñas usando el comando doveadm como este. El hash de contraseña devuelto por el comando anterior debe copiarse tal como está en el archivo dovecot-users.
El archivo de contraseña también puede contener información sobre el directorio y los permisos del buzón de correo de un usuario individual. Consulte el artículo wiki sobre el formato de archivo passwd.
Abra el archivo /etc/dovecot/conf.d/10-ssl.conf y descomente la línea ssl y configúrela como requerida
También asegúrese de que ssl_cert y ssl_key apunten a los archivos adecuados (esto es por defecto)
Configurar logrotate
Si cambiamos los archivos de registro de Dovecot, entonces es necesario configurar logrotate para garantizar que los archivos de registro se creen en partes en lugar de un archivo grande.
Y complete lo siguiente
Para obtener más información, consulte la página wiki de dovecot sobre el registro.
Buen trabajo. Todas las configuraciones hechas. Ahora reinicia dovecot
Ahora que ha terminado de configurar todo, es hora de probar. Utilice un cliente de correo como Thunderbird y configure las conexiones SMTP e IMAP.
Luego intente enviar un correo a otra cuenta como Gmail. Si recibe el correo en gmail, intente responder. Si el correo aparece en su cliente de correo, ya está. ¡Felicitaciones!
Comprobando puertos abiertos con netstat
Use el comando netstat para verificar que los servicios estén funcionando
En el resultado anterior podemos ver que dovecot tiene los puertos 993, 995, 110 y 143
1. mail.log vacío
En servidores Ubuntu, el archivo /var/log/mail.log puede estar totalmente en blanco. Esto sucede debido a problemas de permisos y se puede solucionar con los siguientes comandos
El propietario correcto del archivo debe ser syslog. Establezca el permiso de propiedad correcto con los siguientes comandos -
Ahora el archivo mail.log debería llenarse con los mensajes correctos para rastrear lo que está pasando con el servidor Postfix.
2. Acceso de retransmisión denegado
Al enviar correos, si el registro de postfix (/var/log/mail.log) muestra un mensaje de error de este tipo -
Asegúrese de que el campo smtpd_relay_restrictions (/etc/postfix/main.cf) tenga "permit_sasl_authenticated" en la lista para que los usuarios autenticados a través de SASL puedan enviar correos usando postfix como un servidor smtp.
3. Error al recibir correo
Si los registros de palomar muestran un mensaje de error de este tipo al recibir correos -
Simplemente edite /etc/dovecot/conf.d/15-lda.conf y agregue un valor para postmaster_address
Intente enviar un correo electrónico a alguna dirección de Gmail a través de un cliente de correo como Thunderbird y a través del servidor smtp de Postfix, y el correo llegará a la carpeta de correo no deseado de Gmail o podría ser rechazado por completo.
Para resolver esto, se deben configurar los registros SPF para el dominio del remitente. Si el servidor postfix envía correos electrónicos con "desde la dirección" de [email protected], entonces los registros TXT DNS de ejemplo.com deben contener la información de validación SPF para indicar que esto el servidor está autorizado para enviar correos electrónicos en nombre de ejemplo.com
Todo lo que necesita hacer es editar las entradas de zona de su servidor de nombres y agregar un registro TXT que contenga lo siguiente
La mayoría de los proveedores de vps como Linode proporcionan una interfaz ordenada para editar configuraciones de DNS como esas. Visite el sitio web del proyecto OpenSPF para obtener más información.
Verifique los registros SPF de su dominio con este simple comando -
El ejemplo anterior utiliza un archivo para almacenar cuentas de correo electrónico y contraseñas. Esto lo hace conveniente cuando necesita pocas cuentas de correo electrónico en su servidor personal y no las modificará con demasiada frecuencia.
Sin embargo, a gran escala, cuando se proporcionan correos electrónicos a una gran cantidad de usuarios y se crean/eliminan cuentas con frecuencia, la forma recomendada es almacenar virtual_mailbox_domains y virtual_mailbox_maps en una base de datos y luego usar algún cliente de base de datos para modificar registros de forma rápida y sencilla.
Tanto Postfix como Dovecot son compatibles con Mysql/MariaDB.
Consulte los recursos en la parte inferior para ver enlaces a artículos útiles sobre cómo configurar Postfix y Dovecot de otras maneras usando una base de datos.
1. Puede instalar un cliente de correo basado en web como Roundcube para poder iniciar sesión en su servidor desde el navegador y leer/enviar correos.
2. Algunos usuarios (como yo, por supuesto) prefieren usar Gmail de Google como cliente de correo agregando información de cuenta smtp y pop. Google le permitiría enviar correos rápidamente utilizando esta nueva configuración de servidor smtp anterior.
Pero Gmail no leerá los correos electrónicos del servidor IMAP/POP creado anteriormente, hasta que usemos un certificado real de una autoridad certificadora (CA) en Dovecot.
Los certificados SSL de las CA cuestan dinero, pero puede obtener un certificado gratuito de StartCom StartSSL PKI y usarlo con Dovecot y luego Gmail le permitirá leer los correos electrónicos de este servidor.
3. Además, también debe configurar DKIM (Domainkeys Identified Mail) para su dominio, para hacer cumplir la autenticidad de los correos y ser tratado como legítimo por los principales servicios de correo como gmail.
Aquí hay algunos recursos más útiles sobre cómo instalar y configurar Postfix y Dovecot de varias maneras para obtener el tipo exacto de servidor de correo que desea.
Tutorial de Linode sobre cómo configurar Postfix y Dovecot con Mysql
Documentación de los parámetros de configuración de Postfix para usar en main.cf
Explicación de los diferentes tipos de dominios que admite y usa Postfix
Detalles de cómo Postfix maneja diferentes tipos de dominios virtuales
Documentación completa de Postfix# Handing off local delivery to Dovecot's LMTP
virtual_transport = lmtp:unix:private/dovecot-lmtp
Configurar SASL en main.cf
#Enabling SMTP for authenticated users, and handing off authentication to Dovecot
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
smtpd_sasl_auth_enable = yes
smtpd_tls_auth_only = yes
# postconf -a
cyrus
dovecot
Añadir dominios de buzón en main.cf
#Virtual domains, users, and aliases
virtual_mailbox_domains = /etc/postfix/virtual_mailbox_domains
# virtual_mailbox_maps = /etc/postfix/virtual_mailbox_maps
# nano /etc/postfix/virtual_mailbox_domains
example.com OK
mysite.com OK
# postmap /etc/postfix/virtual_mailbox_domains
However this is not necessary, since the SASL authentication via Dovecot would be doing the verification.
Habilitar SMTPS y MSA - master.cf
...
submission inet n - - - - smtpd
# -o syslog_name=postfix/submission
# -o smtpd_tls_security_level=encrypt
# -o smtpd_sasl_auth_enable=yes
# -o smtpd_reject_unlisted_recipient=no
# -o smtpd_client_restrictions=$mua_client_restrictions
# -o smtpd_helo_restrictions=$mua_helo_restrictions
# -o smtpd_sender_restrictions=$mua_sender_restrictions
# -o smtpd_recipient_restrictions=permit_sasl_authenticated,reject
# -o milter_macro_daemon_name=ORIGINATING
smtps inet n - - - - smtpd
# -o syslog_name=postfix/smtps
# -o smtpd_tls_wrappermode=yes
# -o smtpd_sasl_auth_enable=yes
# -o smtpd_reject_unlisted_recipient=no
# -o smtpd_client_restrictions=$mua_client_restrictions
# -o smtpd_helo_restrictions=$mua_helo_restrictions
# -o smtpd_sender_restrictions=$mua_sender_restrictions
# -o smtpd_recipient_restrictions=permit_sasl_authenticated,reject
# -o milter_macro_daemon_name=ORIGINATING
...
Due to historic specifications, technically port 25, 465, 587 do almost the same thing. However as things are evolving they are being redefined.
Thunderbird (MUA) -> your server smtp(MSA/MTA) -> gmail (MTA) -> Inbox
Reiniciar postfijo
$ sudo service postfix restart
Instalar y configurar Dovecot
Cosas que debe saber
Instalar Dovecot
# sudo apt-get install dovecot-core dovecot-imapd dovecot-pop3d dovecot-lmtpd
# dovecot --version
2.1.7
Configurar palomar
# Enable installed protocols
!include_try /usr/share/dovecot/protocols.d/*.protocol
# ls -l /usr/share/dovecot/protocols.d
total 12
-rw-r--r-- 1 root root 28 Nov 30 15:44 imapd.protocol
-rw-r--r-- 1 root root 28 Nov 30 15:44 lmtpd.protocol
-rw-r--r-- 1 root root 28 Nov 30 15:44 pop3d.protocol
#
Configurar la ubicación de la bandeja de entrada - 10-mail.conf
Mails for [email protected] would be stored in /var/mail/vhosts/example.com/someone/
#mail_location = mbox:~/mail:INBOX=/var/mail/%u
mail_location = maildir:/var/mail/vhosts/%d/%n
# mkdir /var/mail/vhosts/
# mkdir /var/mail/vhosts/example.com
Crear un usuario para leer los correos
$ groupadd -g 5000 vmail
$ useradd -r -g vmail -u 5000 vmail -d /var/mail/vhosts -c "virtual mail user"
$ chown -R vmail:vmail /var/mail/vhosts/
Habilitar servicios IMAPS y POP3S - 10-master.conf
service imap-login {
inet_listener imap {
#port = 143
}
inet_listener imaps {
port = 993
ssl = yes
}
service pop3-login {
inet_listener pop3 {
#port = 110
}
inet_listener pop3s {
port = 995
ssl = yes
}
}
Configurar socket lmtp - 10-master.conf
service lmtp {
unix_listener /var/spool/postfix/private/dovecot-lmtp {
mode = 0600
user = postfix
group = postfix
}
.....
Configurar socket de autenticación SASL
service auth {
.....
# Postfix smtp-auth
unix_listener /var/spool/postfix/private/auth {
mode = 0666
user=postfix
group=postfix
}
.....
Configurar autenticación
disable_plaintext_auth = yes
auth_mechanisms = plain login
#!include auth-system.conf.ext
#!include auth-sql.conf.ext
#!include auth-ldap.conf.ext
!include auth-passwdfile.conf.ext
#!include auth-checkpassword.conf.ext
#!include auth-vpopmail.conf.ext
#!include auth-static.conf.ext
/etc/dovecot/conf.d# nano auth-passwdfile.conf.ext
passdb {
driver = passwd-file
args = scheme=PLAIN username_format=%u /etc/dovecot/dovecot-users
}
userdb {
driver = static
# args = username_format=%u /etc/dovecot/dovecot-users
args = uid=vmail gid=vmail home=/var/mail/vhosts/%d/%n
# Default fields that can be overridden by passwd-file
#default_fields = quota_rule=*:storage=1G
# Override fields from passwd-file
#override_fields = home=/home/virtual/%u
}
/var/mail/vhosts/example.com/someone/
Crear buzones o cuentas de usuario
# cat dovecot-users
[email protected]:{plain}abc123
[email protected]:{MD5-CRYPT}$1$JdyRMcO6$qUwKZT40EVp/oIpVfAEXF1
# doveadm pw -s MD5-CRYPT
Enter new password:
Retype new password:
{MD5-CRYPT}$1$JdyRMcO6$qUwKZT40EVp/oIpVfAEXF1
#
Habilitar SSL en dovecot - 10-ssl.conf
# SSL/TLS support: yes, no, required. <doc/wiki/SSL.txt>
ssl = required
ssl_cert = </etc/dovecot/dovecot.pem
ssl_key = </etc/dovecot/private/dovecot.pem
[/pre]
If you have your own certificates from a certificate authority then use them here.
<h3>Setup dovecot log files</h3>
Dovecot by default logs to /var/log/syslog which is already a giant warehouse of logs and would make it difficult to search in there. A neater way is to make dovecot log to a separate file that is easier to track. The configuration lies in the file /etc/dovecot/conf.d/10-logging.conf
Open the file and edit the log_path variable and set it to /var/log/dovecot.log
Also note that info_log_path and debug_log_path would use the same to log information and debugging messages respectively. If you want to separate them further then set a log file for each.
[pre]
# Log file to use for error messages. "syslog" logs to syslog,
# /dev/stderr logs to stderr.
log_path = /var/log/dovecot.log
# Log file to use for informational messages. Defaults to log_path.
#info_log_path =
# Log file to use for debug messages. Defaults to info_log_path.
#debug_log_path =
$ nano /etc/logrotate.d/dovecot
/var/log/dovecot*.log {
missingok
notifempty
delaycompress
sharedscripts
postrotate
doveadm log reopen
endscript
}
Reiniciar Dovecot
$ sudo service dovecot restart
Prueba
# netstat -ltnp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:993 0.0.0.0:* LISTEN 28791/dovecot
tcp 0 0 0.0.0.0:995 0.0.0.0:* LISTEN 28791/dovecot
tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN 3315/mysqld
tcp 0 0 0.0.0.0:587 0.0.0.0:* LISTEN 16218/master
tcp 0 0 0.0.0.0:110 0.0.0.0:* LISTEN 28791/dovecot
tcp 0 0 0.0.0.0:143 0.0.0.0:* LISTEN 28791/dovecot
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 3337/nginx
tcp 0 0 0.0.0.0:465 0.0.0.0:* LISTEN 16218/master
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 3252/sshd
tcp 0 0 0.0.0.0:25 0.0.0.0:* LISTEN 16218/master
Mientras que Postfix (maestro) tiene los puertos 587, 465 y 25Resolución de problemas
# ls -l /var/log/mail.log
-rw-r----- 1 messagebus adm 0 Apr 26 2013 /var/log/mail.log
$ sudo chown syslog.adm /var/log/mail.log
$ sudo chmod 640 /var/log/mail.log
Dec 1 09:57:12 li240-5 postfix/smtpd[25795]: NOQUEUE: reject: RCPT from unknown[122.163.8.12]: 454 4.7.1 <...>: Relay access denied; from=<...> to=<...> proto=ESMTP helo=<[192.168.1.2]>
smtpd_relay_restrictions = permit_mynetworks permit_sasl_authenticated defer_unauth_destination
Dec 02 18:32:12 lmtp(4412): Fatal: Error reading configuration: Invalid settings: postmaster_address setting not given
# Address to use when sending rejection mails.
# Default is [email protected]<your domain>. %d expands to recipient domain.
postmaster_address = [email protected]
Cree registros DNS SPF para permitir la validación y evitar el spam
"v=spf1 mx a -all"
$ dig -t TXT example.com
Notas
Qué sigue
Recursos
https://www.linode.com/docs/email/postfix/email-with-postfix-dovecot-and-mysql
http://www.postfix.org/postconf.5.html
https://workaround.org/ispmail/squeeze/postfix-domain-types
http://www.postfix.org/VIRTUAL_README.html
http://www.postfix.org/documentation.html