GNU/Linux >> Tutoriales Linux >  >> Ubuntu

Cómo configurar el servidor de correo Postfix en Ubuntu 16.04 (Dovecot - MySQL)

Generalmente, todos los servidores de correo constan de tres componentes principales:MTA, MDA y MUA. Cada componente juega un papel específico en el proceso de mover y administrar los mensajes de correo electrónico y es importante para garantizar la entrega adecuada del correo electrónico. Por lo tanto, configurar un servidor de correo es un proceso difícil que involucra la configuración adecuada de estos componentes. La mejor manera es instalar y configurar cada componente individual uno por uno, asegurándose de que cada uno funcione y construyendo gradualmente su servidor de correo.

En este artículo, brindo las pautas sobre cómo podemos configurar un servidor de correo en un servidor Ubuntu 16.04 con Postix (MTA) y Dovecot (MDA) usando una base de datos externa (MySQL) para administrar usuarios virtuales. En primer lugar, comencemos con los requisitos previos para construir nuestro servidor de correo.

Requisitos previos

  • Servidor MySQL instalado
  • Un nombre de host completamente calificado
  • Resolución del dominio a su servidor

Después de completar nuestros requisitos previos, podemos comenzar a construir nuestro servidor de correo uno por uno.

Instalación de paquetes

En primer lugar, necesitamos actualizar nuestros paquetes de repositorio APT y comenzar con la instalación de los paquetes postfix y dovecot requeridos.

root@ubuntu:~# apt-get install postfix postfix-mysql dovecot-core dovecot-imapd dovecot-lmtpd dovecot-mysql

Durante la instalación de Postfix, aparecerán ventanas de configuración para la configuración inicial. Necesitamos elegir el "sitio de Internet" y establecer un FQDN como nuestro nombre de correo del sistema durante la fase de instalación. Esto continúa con la instalación de los paquetes necesarios como se muestra a continuación.

Postfix is now set up with a default configuration. If you need to make
changes, edit
/etc/postfix/main.cf (and others) as needed. To view Postfix configuration
values, see postconf(1).

After modifying main.cf, be sure to run '/etc/init.d/postfix reload'.

Running newaliases
Setting up postfix-mysql (3.1.0-3) ...
Processing triggers for libc-bin (2.23-0ubuntu3) ...
Processing triggers for ureadahead (0.100.0-19) ...
Processing triggers for systemd (229-4ubuntu4) ...
Processing triggers for ufw (0.35-0ubuntu2) ...
Processing triggers for dovecot-core (1:2.2.22-1ubuntu2) ..

Crear una base de datos para administrar los usuarios de correo

El siguiente paso es crear una base de datos para administrar los usuarios y dominios de correo electrónico en nuestro servidor de correo. Como dije antes, estamos administrando los usuarios de correo electrónico con esta base de datos MySQL. Podemos instalar MySQL si no está instalado ejecutando este comando apt-get install mysql-server-5.7 .

Vamos a crear una base de datos llamada "lnmailserver" con tres tablas como se muestra a continuación:

  • Dominios virtuales:para administrar dominios
  • Usuarios virtuales:para administrar usuarios de correo electrónico
  • Alias ​​virtual:para configurar alias

Vamos a crear nuestras bases de datos con todas estas tablas.

  • Crear una base de datos llamada lnmailserver.
mysql> CREATE DATABASE lnmailserver;
Query OK, 1 row affected (0.00 sec)
  • Creación de un usuario de base de datos lnmailuser y conceder acceso a esta base de datos con una contraseña.
mysql> GRANT SELECT ON lnmailserver.* TO 'lnmailuser'@'127.0.0.1' IDENTIFIED BY 'lnmail123';
Query OK, 0 rows affected, 1 warning (0.00 sec)

mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.01 sec)
  • Cambiando a la base de datos lnmailserver y creando nuestras tres tablas, a saber, virtual_domains, virtual_users y virtual_aliases con una especificación y formato de tabla.
mysql> USE lnmailserver;
Database changed
mysql> CREATE TABLE `virtual_domains` (
-> `id` INT NOT NULL AUTO_INCREMENT,
-> `name` VARCHAR(50) NOT NULL,
-> PRIMARY KEY (`id`)
-> ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
Query OK, 0 rows affected (0.01 sec)
mysql> CREATE TABLE `virtual_users` (
-> `id` INT NOT NULL AUTO_INCREMENT,
-> `domain_id` INT NOT NULL,
-> `password` VARCHAR(106) NOT NULL,
-> `email` VARCHAR(120) NOT NULL,
-> PRIMARY KEY (`id`),
-> UNIQUE KEY `email` (`email`),
-> FOREIGN KEY (domain_id) REFERENCES virtual_domains(id) ON DELETE CASCADE
-> ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
Query OK, 0 rows affected (0.03 sec)
mysql> CREATE TABLE `virtual_aliases` (
-> `id` INT NOT NULL AUTO_INCREMENT,
-> `domain_id` INT NOT NULL,
-> `source` varchar(100) NOT NULL,
-> `destination` varchar(100) NOT NULL,
-> PRIMARY KEY (`id`),
-> FOREIGN KEY (domain_id) REFERENCES virtual_domains(id) ON DELETE CASCADE
-> ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
Query OK, 0 rows affected (0.02 sec)
  • Agregar los dominios, usuarios y alias a cada una de estas tablas según nuestros requisitos.
mysql> INSERT INTO `lnmailserver`.`virtual_domains`
-> (`id` ,`name`)
-> VALUES
-> ('1', 'linoxidemail.com'),
-> ('2', 'ubuntu.linoxidemail.com');
Query OK, 2 rows affected (0.00 sec)
Records: 2 Duplicates: 0 Warnings: 0
mysql> INSERT INTO `lnmailserver`.`virtual_users`
-> (`id`, `domain_id`, `password` , `email`)
-> VALUES
-> ('1', '1', ENCRYPT('blogger123', CONCAT('$6
mysql> INSERT INTO `lnmailserver`.`virtual_aliases`
-> (`id`, `domain_id`, `source`, `destination`)
-> VALUES
-> ('1', '1', '[email protected]', '[email protected]');
Query OK, 1 row affected (0.00 sec)
  • Verificando el contenido de cada tabla
mysql> select * from virtual_domains;
+----+-------------------------+
| id | name |
+----+-------------------------+
| 1 | linoxidemail.com |
| 2 | ubuntu.linoxidemail.com |
+----+-------------------------+
2 rows in set (0.00 sec)
mysql> select * from virtual_users;
+----+-----------+------------------------------------------------------------------------------------------------------------+---------------------------+
| id | domain_id | password | email |
+----+-----------+------------------------------------------------------------------------------------------------------------+---------------------------+
| 1 | 1 | $6$da4aa6fc680940d4$jt1plE8Lvo4hcjdP3N0pNxSC/o1ZsN4mpJ4WCcwk2mSqyY7/2l4ayyI7GcipeTf0uwzk5HnWbjddvv/jGomh41 | [email protected] |
| 2 | 1 | $6$36d2dc2e68ab56f6$L2b/D44yuT7qXsw22kTFPfxTbEbUuRDhr0RDoBnRc/q/LGcRF3NsLQCyapXdYKyA2zkSE9MJIXL7nHAbbCmlO. | [email protected] |
+----+-----------+------------------------------------------------------------------------------------------------------------+---------------------------+
2 rows in set (0.00 sec)
mysql> select * from virtual_aliases;
+----+-----------+-----------------------+---------------------------+
| id | domain_id | source | destination |
+----+-----------+-----------------------+---------------------------+
| 1 | 1 | [email protected] | [email protected] |
+----+-----------+-----------------------+---------------------------+
1 row in set (0.00 sec)

mysql > exit

Configuración de postfijo

Nuestro siguiente paso es modificar la configuración de Postfix de acuerdo con nuestro plan de configuración de cómo necesitamos aceptar conexiones SMTP. Antes de realizar cualquier cambio en la configuración, siempre se recomienda realizar una copia de seguridad del archivo.

root@ubuntu:~# cp -rp /etc/postfix/main.cf /etc/postfix/main.cf-bkp

Ahora podemos abrir el archivo y hacer los siguientes cambios.

  • Modifique las siguientes entradas para habilitar la compatibilidad con TLS para que los usuarios se conecten, especifique el certificado SSL que se utiliza para proteger la conexión.
This section is modified from:

#smtpd_tls_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
#smtpd_tls_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
#smtpd_use_tls=yes
#smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
#smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache

To :

smtpd_tls_cert_file=/etc/ssl/certs/dovecot.pem
smtpd_tls_key_file=/etc/ssl/private/dovecot.key
smtpd_use_tls = yes
smtpd_tls_auth_only = yes

Estoy usando certificados Dovecot SSL gratuitos que se especifican aquí. Podemos generar certificados SSL autofirmados de dovecot con el siguiente comando. Si tiene un certificado SSL válido para su nombre de host, puede especificarlo en su lugar.

openssl req -new -x509 -days 1000 -nodes -out "/etc/ssl/certs/dovecot.pem" -keyout "/etc/ssl/private/dovecot.key"
  • Necesitamos agregar estos parámetros TLS a la configuración de Postfix, lo que hace que Postfix use Dovecot para la autenticación y para inicializar las conexiones.
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
smtpd_sasl_auth_enable = yes
smtpd_recipient_restrictions = permit_sasl_authenticated permit_mynetworks reject_unauth_destination
  • Necesitamos comentar las entradas predeterminadas de "midestino" y actualizarlas para usar solo "localhost".
mydestination = localhost
  • Confirme la parte myhostname, si está configurada correctamente como nuestro nombre de host FQDN.
root@ubuntu:~# grep myhostname /etc/postfix/main.cf
smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu)
myhostname = ubuntu.linoxidemail.com
  • Al modificar este parámetro, Postfix puede usar el LMTP de Dovecot en lugar de su propio LDA para guardar correos electrónicos en los buzones de correo locales, lo que permite la entrega de correo local para todos los dominios enumerados en la base de datos MySQL.
    virtual_transport = lmtp:unix:private/dovecot-lmtp
  • Por último, pero no menos importante, debemos decirle a Postfix que estamos usando una base de datos externa para administrar los dominios, los usuarios y los alias. Necesitamos agregar la ruta de configuración para obtener estos detalles de las tablas de la base de datos.
virtual_mailbox_domains = mysql:/etc/postfix/mysql-virtual-mailbox-domains.cf
virtual_mailbox_maps = mysql:/etc/postfix/mysql-virtual-mailbox-maps.cf
virtual_alias_maps = mysql:/etc/postfix/mysql-virtual-alias-maps.cf

Ahora necesitamos crear estos archivos mencionados anteriormente uno por uno. Consulte los detalles de mi archivo a continuación:

/etc/postfix/mysql-virtual-mailbox-domains.cf

root@ubuntu:~# cat /etc/postfix/mysql-virtual-mailbox-domains.cf
user = lnmailuser
password = lnmail123
hosts = 127.0.0.1
dbname = lnmailserver
query = SELECT 1 FROM virtual_domains WHERE name='%s'
root@ubuntu:~#

/etc/postfix/mysql-virtual-mailbox-maps.cf

root@ubuntu:~# cat /etc/postfix/mysql-virtual-mailbox-maps.cf
user = lnmailuser
password = lnmail123
hosts = 127.0.0.1
dbname = lnmailserver
query = SELECT 1 FROM virtual_users WHERE email='%s'
root@ubuntu:~#

/etc/postfix/mysql-virtual-alias-maps.cf

root@ubuntu:~# cat /etc/postfix/mysql-virtual-alias-maps.cf
user = lnmailuser
password = lnmail123
hosts = 127.0.0.1
dbname = lnmailserver
query = SELECT destination FROM virtual_aliases WHERE source='%s'

Estos archivos describen cómo Postfix se conecta con la base de datos externa. Necesitamos reiniciar Postfix después de hacer estos cambios.

root@ubuntu:~# service postfix restart

Necesitamos ejecutar los siguientes comandos para confirmar la conectividad y verificar si Postfix puede obtener la información requerida de la base de datos.

  • Para comprobar si Postfix encuentra su dominio en la base de datos, podemos ejecutar esto. Esto debería devolver '1' si el intento tiene éxito.
root@ubuntu:/etc/ssl/certs# postmap -q linoxidemail.com mysql:/etc/postfix/mysql-virtual-mailbox-domains.cf
1
  • Para verificar si Postfix encuentra su dirección de correo electrónico requerida de la base de datos, podemos ejecutar esto. Esto también debería devolver '1' si tiene éxito.
root@ubuntu:/etc/ssl/certs# postmap -q [email protected] mysql:/etc/postfix/mysql-virtual-mailbox-maps.cf
1
  • Para verificar si Posfix encuentra su reenviador de correo electrónico de la base de datos, podemos ejecutar esto. Esto debería devolver su conjunto de reenviador de correo electrónico si el intento tiene éxito.
root@ubuntu:/etc/ssl/certs# postmap -q [email protected] mysql:/etc/postfix/mysql-virtual-alias-maps.cf
[email protected]

Tenga en cuenta:puede conectarse de forma segura con sus clientes de correo electrónico usando Postfix en el puerto 587, puede abrir el puerto descomentando la siguiente parte en la configuración maestra de Postfix:/etc/postfix/master.cf.

Debe reiniciar Postfix después de realizar cualquier cambio en la configuración. Al usar el comando telnet, puede confirmar si el puerto está abierto.

Configuración de Dovecot

Nuestro próximo paso es configurar nuestro MDA para permitir que los protocolos POP3 o IMAP y otras opciones de configuración se conecten a una base de datos externa y Postfix. Principalmente estamos modificando los siguientes archivos.

/etc/dovecot/dovecot.conf
/etc/dovecot/conf.d/10-mail.conf
/etc/dovecot/conf.d/10-auth.conf
/etc/dovecot/conf.d/auth-sql.conf.ext
/etc/dovecot/dovecot-sql.conf.ext
/etc/dovecot/conf.d/10-master.conf
/etc/dovecot/conf.d/10-ssl.conf

Siempre se recomienda realizar una copia de seguridad de estos archivos antes de realizar cambios en la configuración. Podemos modificar cada archivo uno por uno.

Modificación del archivo de configuración principal de dovecot:/etc/dovecot/dovecot.conf

  • La siguiente configuración no está comentada de forma predeterminada. Pero debemos asegurarnos de que no esté comentado.
!include conf.d/*.conf
  • Podemos habilitar todos los protocolos requeridos en esta directiva. Si necesita habilitar POP3, podemos agregar pop3 a esta línea y también asegurarnos de instalar los paquetes de dovecot necesarios "dovecot-pop3d" para habilitarlo.
!include_try /usr/share/dovecot/protocols.d/*.protocol
protocols = imap lmtp

Modificación del archivo de configuración de Dovecot Mail:/etc/dovecot/conf.d/10-mail.conf

  • Necesitamos encontrar el siguiente parámetro "mail_ubicación" en la configuración y actualizar con nuestra ruta de almacenamiento de correo. Tengo mis carpetas de correo ubicadas dentro de la carpeta "/var/mail/vhosts/". Por lo tanto, modifiqué la ruta del archivo de la siguiente manera:
mail_location = maildir:/var/mail/vhosts/%d/%n
  • Necesitamos establecer el "mail_privileged_group " parámetro a "correo ".
mail_privileged_group = mail

Una vez hecho esto, debemos asegurarnos de que hemos establecido la propiedad y los permisos adecuados para nuestras carpetas de correo. Cree las carpetas de correo para cada dominio que hayamos registrado en la tabla de MySQL dentro de esta carpeta "/var/mail/vhosts" y establezca las propiedades/permisos adecuados.

root@ubuntu:~# ls -ld /var/mail
drwxrwsr-x 2 root mail 4096 Apr 21 16:56 /var/mail
root@ubuntu:~# mkdir -p /var/mail/vhosts/linoxidemail.com

Created a separate user/group named "vmail" with an id 5000 and changed the mail folders ownerships to that.
root@ubuntu:~# groupadd -g 5000 vmail
root@ubuntu:~# useradd -g vmail -u 5000 vmail -d /var/mail
root@ubuntu:~# chown -R vmail:vmail /var/mail

Modificación del archivo de autenticación de Dovecot:/etc/dovecot/conf.d/10-auth.conf

  • Desactive la autenticación de texto sin formato para garantizar la seguridad modificando el siguiente parámetro a "sí".
disable_plaintext_auth = yes
  • Modifique el parámetro "auth_mechanisms" como se muestra a continuación:
auth_mechanisms = plain login
  • Necesitamos comentar la línea mencionada y habilitar la autenticación MySQL descomentando la línea auth-sql.conf.ext como se muestra a continuación:
#!include auth-system.conf.ext
!include auth-sql.conf.ext

Modificación del archivo SQL de autenticación:/etc/dovecot/conf.d/auth-sql.conf.ext

Asegúrese de que su archivo de autenticación de MySQL se vea así.

Modificación del archivo de configuración Dovecot + MySQL:/etc/dovecot/dovecot-sql.conf.ext

  • Necesitamos descomentar el parámetro "controlador" y establecer MySQL como se muestra a continuación:
driver = mysql
  • Modifique y establezca los parámetros de conexión según el nombre y el usuario de nuestra base de datos.
connect = host=127.0.0.1 dbname=lnmailserver user=lnmailuser password=lnmail123
  • Modifique default_pass_scheme a SHA-512 y la línea password_query como se muestra a continuación:
default_pass_scheme = SHA512-CRYPT
password_query = SELECT email as user, password FROM virtual_users WHERE email='%u';

Tenga en cuenta:establezca permisos en el directorio /etc/dovecot para que el usuario de vmail pueda usarlo.

chown -R vmail:dovecot /etc/dovecot
chmod -R o-rwx /etc/dovecot

Modificación del archivo de configuración de Dovecot Master:/etc/dovecot/conf.d/10-master.conf

Estamos modificando cuatro secciones en este archivo de configuración. Sección IMAP, sección de transferencia de correo local, sección de autenticación y última sección de proceso de trabajo de autenticación. Consulte las capturas de pantalla de cada sección a continuación para ver las modificaciones:

Modificación de la configuración SSL:/etc/dovecot/conf.d/10-ssl.conf

Estamos modificando esta sección para habilitar SSL para las conexiones entrantes/salientes. Estos ajustes de configuración son opcionales. Pero recomendaría estos para mayor seguridad.

  • Cambie el parámetro SSL a requerido
ssl = required
  • Especifique el certificado SSL y la ubicación del archivo de clave para nuestra configuración. Puede ver la captura de pantalla para obtener más detalles.

Debe reiniciar Dovecot después de todas estas modificaciones.

Eso es todo :) Hemos completado la configuración de nuestro servidor de correo. ¡Viva! Puede acceder a su cuenta de correo electrónico utilizando su nombre de usuario y contraseña en cualquiera de sus clientes de correo electrónico preferidos. Pude acceder con éxito a mi cuenta de correo electrónico utilizando esta configuración a continuación:

Espero que hayas disfrutado leyendo este artículo. Recomendaría sus valiosas sugerencias y comentarios al respecto.
¡Que tengas un buen día!

, SUBSTRING(SHA(RAND()), -16))), '[email protected]'), -> ('2', '1', ENCRYPT('blogger321', CONCAT('$6
 
  • Verificando el contenido de cada tabla
 
 
 

Configuración de postfijo

Nuestro siguiente paso es modificar la configuración de Postfix de acuerdo con nuestro plan de configuración de cómo necesitamos aceptar conexiones SMTP. Antes de realizar cualquier cambio en la configuración, siempre se recomienda realizar una copia de seguridad del archivo.

 

Ahora podemos abrir el archivo y hacer los siguientes cambios.

  • Modifique las siguientes entradas para habilitar la compatibilidad con TLS para que los usuarios se conecten, especifique el certificado SSL que se utiliza para proteger la conexión.
 

Estoy usando certificados Dovecot SSL gratuitos que se especifican aquí. Podemos generar certificados SSL autofirmados de dovecot con el siguiente comando. Si tiene un certificado SSL válido para su nombre de host, puede especificarlo en su lugar.

 
  • Necesitamos agregar estos parámetros TLS a la configuración de Postfix, lo que hace que Postfix use Dovecot para la autenticación y para inicializar las conexiones.
 
  • Necesitamos comentar las entradas predeterminadas de "midestino" y actualizarlas para usar solo "localhost".
 
  • Confirme la parte myhostname, si está configurada correctamente como nuestro nombre de host FQDN.
 
  • La modificación de este parámetro permite a Postfix usar el LMTP de Dovecot en lugar de su propio LDA para guardar correos electrónicos en los buzones de correo locales, lo que permite la entrega de correo local para todos los dominios enumerados en la base de datos MySQL.
     
  • Por último, pero no menos importante, debemos decirle a Postfix que estamos usando una base de datos externa para administrar los dominios, los usuarios y los alias. Necesitamos agregar la ruta de configuración para obtener estos detalles de las tablas de la base de datos.
 

Ahora necesitamos crear estos archivos mencionados anteriormente uno por uno. Consulte los detalles de mi archivo a continuación:

/etc/postfix/mysql-virtual-mailbox-domains.cf

 

/etc/postfix/mysql-virtual-mailbox-maps.cf

 

/etc/postfix/mysql-virtual-alias-maps.cf

 

Estos archivos describen cómo Postfix se conecta con la base de datos externa. Necesitamos reiniciar Postfix después de hacer estos cambios.

 

Necesitamos ejecutar los siguientes comandos para confirmar la conectividad y verificar si Postfix puede obtener la información requerida de la base de datos.

  • Para comprobar si Postfix encuentra su dominio en la base de datos, podemos ejecutar esto. Esto debería devolver '1' si el intento tiene éxito.
 
  • Para verificar si Postfix encuentra su dirección de correo electrónico requerida de la base de datos, podemos ejecutar esto. Esto también debería devolver '1' si tiene éxito.
 
  • Para verificar si Posfix encuentra su reenviador de correo electrónico de la base de datos, podemos ejecutar esto. Esto debería devolver su conjunto de reenviador de correo electrónico si el intento tiene éxito.
 

Tenga en cuenta:puede conectarse de forma segura con sus clientes de correo electrónico usando Postfix en el puerto 587, puede abrir el puerto descomentando la siguiente parte en la configuración maestra de Postfix:/etc/postfix/master.cf.

Debe reiniciar Postfix después de realizar cualquier cambio en la configuración. Al usar el comando telnet, puede confirmar si el puerto está abierto.

Configuración de Dovecot

Nuestro próximo paso es configurar nuestro MDA para permitir que los protocolos POP3 o IMAP y otras opciones de configuración se conecten a una base de datos externa y Postfix. Principalmente estamos modificando los siguientes archivos.

 

Siempre se recomienda realizar una copia de seguridad de estos archivos antes de realizar cambios en la configuración. Podemos modificar cada archivo uno por uno.

Modificación del archivo de configuración principal de dovecot:/etc/dovecot/dovecot.conf

  • La siguiente configuración no está comentada de forma predeterminada. Pero debemos asegurarnos de que no esté comentado.
 
  • Podemos habilitar todos los protocolos requeridos en esta directiva. Si necesita habilitar POP3, podemos agregar pop3 a esta línea y también asegurarnos de instalar los paquetes de dovecot necesarios "dovecot-pop3d" para habilitarlo.
 

Modificación del archivo de configuración de Dovecot Mail:/etc/dovecot/conf.d/10-mail.conf

  • Necesitamos encontrar el siguiente parámetro "mail_ubicación" en la configuración y actualizar con nuestra ruta de almacenamiento de correo. Tengo mis carpetas de correo ubicadas dentro de la carpeta "/var/mail/vhosts/". Por lo tanto, modifiqué la ruta del archivo de la siguiente manera:
 
  • Necesitamos establecer el "mail_privileged_group " parámetro a "correo ".
 

Una vez hecho esto, debemos asegurarnos de que hemos establecido la propiedad y los permisos adecuados para nuestras carpetas de correo. Cree las carpetas de correo para cada dominio que hayamos registrado en la tabla de MySQL dentro de esta carpeta "/var/mail/vhosts" y establezca las propiedades/permisos adecuados.

 

Modificación del archivo de autenticación de Dovecot:/etc/dovecot/conf.d/10-auth.conf

  • Desactive la autenticación de texto sin formato para garantizar la seguridad modificando el siguiente parámetro a "sí".
 
  • Modifique el parámetro "auth_mechanisms" como se muestra a continuación:
 
  • Necesitamos comentar la línea mencionada y habilitar la autenticación MySQL descomentando la línea auth-sql.conf.ext como se muestra a continuación:
 

Modificación del archivo SQL de autenticación:/etc/dovecot/conf.d/auth-sql.conf.ext

Asegúrese de que su archivo de autenticación de MySQL se vea así.

Modificación del archivo de configuración Dovecot + MySQL:/etc/dovecot/dovecot-sql.conf.ext

  • Necesitamos descomentar el parámetro "controlador" y establecer MySQL como se muestra a continuación:
 
  • Modifique y establezca los parámetros de conexión según el nombre y el usuario de nuestra base de datos.
 
  • Modifique default_pass_scheme a SHA-512 y la línea password_query como se muestra a continuación:
 

Tenga en cuenta:establezca permisos en el directorio /etc/dovecot para que el usuario de vmail pueda usarlo.

 

Modificación del archivo de configuración de Dovecot Master:/etc/dovecot/conf.d/10-master.conf

Estamos modificando cuatro secciones en este archivo de configuración. Sección IMAP, sección de transferencia de correo local, sección de autenticación y última sección de proceso de trabajo de autenticación. Consulte las capturas de pantalla de cada sección a continuación para ver las modificaciones:

Modificación de la configuración SSL:/etc/dovecot/conf.d/10-ssl.conf

Estamos modificando esta sección para habilitar SSL para las conexiones entrantes/salientes. Estos ajustes de configuración son opcionales. Pero recomendaría estos para mayor seguridad.

  • Cambie el parámetro SSL a requerido
 
  • Especifique el certificado SSL y la ubicación del archivo de clave para nuestra configuración. Puede ver la captura de pantalla para obtener más detalles.

Debe reiniciar Dovecot después de todas estas modificaciones.

Eso es todo :) Hemos completado la configuración de nuestro servidor de correo. ¡Viva! Puede acceder a su cuenta de correo electrónico utilizando su nombre de usuario y contraseña en cualquiera de sus clientes de correo electrónico preferidos. Pude acceder con éxito a mi cuenta de correo electrónico utilizando esta configuración a continuación:

Espero que hayas disfrutado leyendo este artículo. Recomendaría sus valiosas sugerencias y comentarios al respecto.
¡Que tengas un buen día!

, SUBSTRING(SHA(RAND()), -16))), '[email protected]'); Query OK, 2 rows affected, 2 warnings (0.01 sec) Records: 2 Duplicates: 0 Warnings: 2
 
  • Verificando el contenido de cada tabla
 
 
 

Configuración de postfijo

Nuestro siguiente paso es modificar la configuración de Postfix de acuerdo con nuestro plan de configuración de cómo necesitamos aceptar conexiones SMTP. Antes de realizar cualquier cambio en la configuración, siempre se recomienda realizar una copia de seguridad del archivo.

 

Ahora podemos abrir el archivo y hacer los siguientes cambios.

  • Modifique las siguientes entradas para habilitar la compatibilidad con TLS para que los usuarios se conecten, especifique el certificado SSL que se utiliza para proteger la conexión.
 

Estoy usando certificados Dovecot SSL gratuitos que se especifican aquí. Podemos generar certificados SSL autofirmados de dovecot con el siguiente comando. Si tiene un certificado SSL válido para su nombre de host, puede especificarlo en su lugar.

 
  • Necesitamos agregar estos parámetros TLS a la configuración de Postfix, lo que hace que Postfix use Dovecot para la autenticación y para inicializar las conexiones.
 
  • Necesitamos comentar las entradas predeterminadas de "midestino" y actualizarlas para usar solo "localhost".
 
  • Confirme la parte myhostname, si está configurada correctamente como nuestro nombre de host FQDN.
 
  • La modificación de este parámetro permite a Postfix usar el LMTP de Dovecot en lugar de su propio LDA para guardar correos electrónicos en los buzones de correo locales, lo que permite la entrega de correo local para todos los dominios enumerados en la base de datos MySQL.
     
  • Por último, pero no menos importante, debemos decirle a Postfix que estamos usando una base de datos externa para administrar los dominios, los usuarios y los alias. Necesitamos agregar la ruta de configuración para obtener estos detalles de las tablas de la base de datos.
 

Ahora necesitamos crear estos archivos mencionados anteriormente uno por uno. Consulte los detalles de mi archivo a continuación:

/etc/postfix/mysql-virtual-mailbox-domains.cf

 

/etc/postfix/mysql-virtual-mailbox-maps.cf

 

/etc/postfix/mysql-virtual-alias-maps.cf

 

Estos archivos describen cómo Postfix se conecta con la base de datos externa. Necesitamos reiniciar Postfix después de hacer estos cambios.

 

Necesitamos ejecutar los siguientes comandos para confirmar la conectividad y verificar si Postfix puede obtener la información requerida de la base de datos.

  • Para comprobar si Postfix encuentra su dominio en la base de datos, podemos ejecutar esto. Esto debería devolver '1' si el intento tiene éxito.
 
  • Para verificar si Postfix encuentra su dirección de correo electrónico requerida de la base de datos, podemos ejecutar esto. Esto también debería devolver '1' si tiene éxito.
 
  • Para verificar si Posfix encuentra su reenviador de correo electrónico de la base de datos, podemos ejecutar esto. Esto debería devolver su conjunto de reenviador de correo electrónico si el intento tiene éxito.
 

Tenga en cuenta:puede conectarse de forma segura con sus clientes de correo electrónico usando Postfix en el puerto 587, puede abrir el puerto descomentando la siguiente parte en la configuración maestra de Postfix:/etc/postfix/master.cf.

Debe reiniciar Postfix después de realizar cualquier cambio en la configuración. Al usar el comando telnet, puede confirmar si el puerto está abierto.

Configuración de Dovecot

Nuestro próximo paso es configurar nuestro MDA para permitir que los protocolos POP3 o IMAP y otras opciones de configuración se conecten a una base de datos externa y Postfix. Principalmente estamos modificando los siguientes archivos.

 

Siempre se recomienda realizar una copia de seguridad de estos archivos antes de realizar cambios en la configuración. Podemos modificar cada archivo uno por uno.

Modificación del archivo de configuración principal de dovecot:/etc/dovecot/dovecot.conf

  • La siguiente configuración no está comentada de forma predeterminada. Pero debemos asegurarnos de que no esté comentado.
 
  • Podemos habilitar todos los protocolos requeridos en esta directiva. Si necesita habilitar POP3, podemos agregar pop3 a esta línea y también asegurarnos de instalar los paquetes de dovecot necesarios "dovecot-pop3d" para habilitarlo.
 

Modificación del archivo de configuración de Dovecot Mail:/etc/dovecot/conf.d/10-mail.conf

  • Necesitamos encontrar el siguiente parámetro "mail_ubicación" en la configuración y actualizar con nuestra ruta de almacenamiento de correo. Tengo mis carpetas de correo ubicadas dentro de la carpeta "/var/mail/vhosts/". Por lo tanto, modifiqué la ruta del archivo de la siguiente manera:
 
  • Necesitamos establecer el "mail_privileged_group " parámetro a "correo ".
 

Una vez hecho esto, debemos asegurarnos de que hemos establecido la propiedad y los permisos adecuados para nuestras carpetas de correo. Create the mail folders for each domains which we've registered in the MySQL table inside this folder "/var/mail/vhosts" and set proper ownerships/permissions.

 

Modifying the Dovecot authentication file :/etc/dovecot/conf.d/10-auth.conf

  • Disable plain text authentication to ensure security by modifying the below parameter to "yes".
 
  • Modify the "auth_mechanisms" parameter as below:
 
  • We need to comment the mentioned line and enable the MySQL authentication by uncommenting the auth-sql.conf.ext line as below:
 

Modifying the authentication SQL file :/etc/dovecot/conf.d/auth-sql.conf.ext

Make sure your MySQL authentication file looks like this.

Modifying the Dovecot + MySQL configuration file :/etc/dovecot/dovecot-sql.conf.ext

  • We need to uncomment the "driver" parameter and set to MySQL as below:
 
  • Modify and set the connection parameters as per our database name and user.
 
  • Modify the default_pass_scheme to SHA-512 and password_query line as below:
 

Please note :Set permissions on the /etc/dovecot directory so the vmail user can use it.

 

Modifying Dovecot Master configuration file :/etc/dovecot/conf.d/10-master.conf

We are modifying four sections in this configuration file. IMAP section, local mail transfer section, authentication section and last authenticating worker process section. Please see the screenshots of each section below to view the modifications:

Modifying the SSL configuration :/etc/dovecot/conf.d/10-ssl.conf

We're modifying this section to enable SSL for the incoming/outgoing connections. This configuration settings are optional. But I'd recommend these for more security.

  • Change the SSL parameter to required
 
  • Specify the SSL cert and key file location for our configuration. You can view the screenshot for more details.

You need to restart Dovecot after all these modification.

That's all :) We've completed with our Mail server setup. ¡Viva! You can access your email account using your username and password on any of your preferred email client. I could successfully access my email account using these settings below:

Espero que hayas disfrutado leyendo este artículo. Recomendaría sus valiosas sugerencias y comentarios al respecto.
Have a Nice day!


Ubuntu
  1. Cómo instalar DKIM en el servidor Ubuntu

  2. Cómo configurar el servidor de correo Zimbra en Ubuntu 16

  3. Configurar el servidor Rsyslog en Ubuntu 20.04 - ¿Cómo hacerlo?

  4. Cómo instalar el servidor MySQL en Ubuntu 16.04

  5. Cómo instalar el servidor MySQL en Ubuntu 17.04

Cómo instalar el servidor MySQL en Ubuntu

Cómo instalar el servidor de correo Postfix en Ubuntu 20.04

Cómo configurar un servidor de correo completo (Postfix) usando 'SquirrelMail' (Webmail) en Ubuntu/Debian

Configuración del servidor de correo Postfix en Ubuntu 14.04

Configuración del servidor de correo Postfix en Ubuntu 20.04

Cómo instalar el servidor MySQL en Ubuntu 20.04