GNU/Linux >> Tutoriels Linux >  >> Ubuntu

Comment configurer le serveur de messagerie Postfix sur Ubuntu 16.04 (Dovecot - MySQL)

Généralement, tous les serveurs de messagerie se composent de trois composants principaux :MTA, MDA et MUA. Chaque composant joue un rôle spécifique dans le processus de déplacement et de gestion des e-mails et est important pour assurer une bonne livraison des e-mails. Par conséquent, la configuration d'un serveur de messagerie est un processus difficile impliquant la configuration appropriée de ces composants. La meilleure façon est d'installer et de configurer chaque composant individuel un par un, en s'assurant que chacun fonctionne et en développant progressivement votre serveur de messagerie.

Dans cet article, je fournis les directives sur la façon dont nous pouvons configurer un serveur de messagerie sur un serveur Ubuntu 16.04 avec Postix (MTA) et Dovecot (MDA) en utilisant une base de données externe (MySQL) pour gérer les utilisateurs virtuels. Tout d'abord, commençons par les pré-requis pour construire notre serveur de messagerie.

Pré-requis

  • Serveur MySQL installé
  • Un nom d'hôte complet
  • Résolution de domaine sur votre serveur

Après avoir rempli nos prérequis, nous pouvons commencer à construire notre serveur de messagerie un par un.

Installer des packages

Tout d'abord, nous devons mettre à jour nos packages de référentiel APT et commencer par installer les packages postfix et dovecot requis.

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

Lors de l'installation de Postfix, des fenêtres de configuration apparaîtront pour la configuration initiale. Nous devons choisir le "site Internet" et définir un FQDN comme nom de messagerie système pendant la phase d'installation. Ceci procède à l'installation des packages requis comme ci-dessous.

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) ..

Créer une base de données pour gérer les utilisateurs de messagerie

La prochaine étape consiste à créer une base de données pour gérer les utilisateurs et les domaines de messagerie sur notre serveur de messagerie. Comme je l'ai déjà dit, nous gérons les utilisateurs de messagerie avec cette base de données MySQL. Nous pouvons installer MySQL s'il n'est pas installé en exécutant cette commande apt-get install mysql-server-5.7 .

Nous allons créer une base de données nommée "lnmailserver" avec trois tables comme ci-dessous :

  • Domaines virtuels :pour la gestion des domaines
  • Utilisateurs virtuels :pour gérer les utilisateurs de messagerie
  • Alias ​​virtuel :pour configurer des alias

Créons nos bases de données avec toutes ces tables.

  • Création d'une base de données nommée lnmailserver.
mysql> CREATE DATABASE lnmailserver;
Query OK, 1 row affected (0.00 sec)
  • Création d'un utilisateur de base de données lnmailuser et accorder l'accès à cette base de données avec un mot de passe.
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)
  • Basculer vers la base de données lnmailserver et créer nos trois tables à savoir virtual_domains, virtual_users et virtual_aliases avec une spécification et un format de tableau.
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)
  • Ajouter les domaines, les utilisateurs et les alias à chacune de ces tables selon nos besoins.
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)
  • Vérifier le contenu de chaque tableau
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

Configurer Postfix

Notre prochaine étape consiste à modifier la configuration de Postfix en fonction de notre plan de configuration sur la façon dont nous devons accepter les connexions SMTP. Avant d'apporter des modifications à la configuration, il est toujours conseillé de faire une sauvegarde du fichier.

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

Nous pouvons maintenant ouvrir le fichier et apporter les modifications suivantes.

  • Modifiez les entrées suivantes pour activer la prise en charge TLS pour que les utilisateurs se connectent, spécifiez le certificat SSL qui est utilisé pour sécuriser la connexion.
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

J'utilise des certificats SSL Dovecot gratuits qui sont spécifiés ici. Nous pouvons générer des certificats SSL auto-signés dovecot avec la commande ci-dessous. Si vous disposez d'un certificat SSL valide pour votre nom d'hôte, vous pouvez les spécifier à la place.

openssl req -new -x509 -days 1000 -nodes -out "/etc/ssl/certs/dovecot.pem" -keyout "/etc/ssl/private/dovecot.key"
  • Nous devons ajouter ces paramètres TLS à la configuration de Postfix, ce qui oblige Postfix à utiliser Dovecot pour l'authentification et pour initialiser les connexions.
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
  • Nous devons commenter les entrées par défaut "mydestination" et les mettre à jour pour utiliser "localhost" seul.
mydestination = localhost
  • Confirmez la partie myhostname, si elle est correctement définie comme notre nom d'hôte FQDN.
root@ubuntu:~# grep myhostname /etc/postfix/main.cf
smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu)
myhostname = ubuntu.linoxidemail.com
  • La modification de ce paramètre permet à Postfix d'utiliser le LMTP de Dovecot au lieu de son propre LDA pour enregistrer les e-mails dans les boîtes aux lettres locales, permettant ainsi la distribution locale des e-mails pour tous les domaines répertoriés dans la base de données MySQL.
    virtual_transport = lmtp:unix:private/dovecot-lmtp
  • Enfin, mais non des moindres, nous devons indiquer à Postfix que nous utilisons une base de données externe pour gérer les domaines, les utilisateurs et les alias. Nous devons ajouter le chemin de configuration pour récupérer ces détails dans les tables de la base de données.
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

Nous devons maintenant créer ces fichiers mentionnés ci-dessus un par un. Veuillez consulter les détails de mon fichier ci-dessous :

/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'

Ces fichiers décrivent comment Postfix se connecte à la base de données externe. Nous devons redémarrer Postfix après avoir effectué ces modifications.

root@ubuntu:~# service postfix restart

Nous devons exécuter ces commandes suivantes pour confirmer la connectivité et vérifier si Postfix est capable de récupérer les informations requises dans la base de données.

  • Pour vérifier si Postfix trouve votre domaine à partir de la base de données, nous pouvons exécuter ceci. Cela devrait renvoyer '1' si la tentative réussit.
root@ubuntu:/etc/ssl/certs# postmap -q linoxidemail.com mysql:/etc/postfix/mysql-virtual-mailbox-domains.cf
1
  • Pour vérifier si Postfix trouve votre adresse e-mail requise dans la base de données, nous pouvons exécuter ceci. Cela devrait également renvoyer '1' en cas de succès.
root@ubuntu:/etc/ssl/certs# postmap -q [email protected] mysql:/etc/postfix/mysql-virtual-mailbox-maps.cf
1
  • Pour vérifier si Posfix trouve votre redirecteur d'e-mails à partir de la base de données, nous pouvons exécuter ceci. Cela devrait renvoyer votre ensemble de transfert d'e-mails si la tentative réussit.
root@ubuntu:/etc/ssl/certs# postmap -q [email protected] mysql:/etc/postfix/mysql-virtual-alias-maps.cf
[email protected]

Remarque :Vous pouvez vous connecter en toute sécurité avec vos clients de messagerie en utilisant Postfix sur le port 587, vous pouvez ouvrir le port en décommentant la partie suivante dans la configuration principale de Postfix :/etc/postfix/master.cf.

Vous devez redémarrer Postfix après avoir apporté des modifications à la configuration. En utilisant la commande telnet, vous pouvez confirmer si le port est ouvert.

Configurer Dovecot

Notre prochaine étape consiste à configurer notre MDA pour permettre aux protocoles POP3 ou IMAP et à d'autres paramètres de configuration de se connecter à une base de données externe et à Postfix. Nous modifions principalement les fichiers suivants.

/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

Il est toujours conseillé de sauvegarder ces fichiers avant d'apporter des modifications à la configuration. Nous pouvons modifier chaque fichier un par un.

Modification du fichier de configuration principal de dovecot :/etc/dovecot/dovecot.conf

  • Le paramètre suivant n'est pas commenté par défaut. Mais nous devons nous assurer qu'il n'est pas commenté.
!include conf.d/*.conf
  • Nous pouvons activer tous les protocoles requis dans cette directive. Si vous devez activer POP3, nous pouvons ajouter pop3 à cette ligne et nous assurer également d'installer les packages dovecot requis "dovecot-pop3d" pour l'activer.
!include_try /usr/share/dovecot/protocols.d/*.protocol
protocols = imap lmtp

Modification du fichier de configuration de Dovecot Mail :/etc/dovecot/conf.d/10-mail.conf

  • Nous devons trouver le paramètre suivant "mail_location" dans la configuration et mettre à jour avec notre chemin de stockage de courrier. J'ai mes dossiers de messagerie situés dans le dossier "/var/mail/vhosts/". Par conséquent, j'ai modifié le chemin du fichier comme ci-dessous :
mail_location = maildir:/var/mail/vhosts/%d/%n
  • Nous devons définir le "mail_privileged_group " paramètre à "mail ".
mail_privileged_group = mail

Une fois cela fait, nous devons nous assurer que nous avons défini la propriété et les autorisations appropriées pour nos dossiers de messagerie. Créez les dossiers de messagerie pour chaque domaine que nous avons enregistré dans la table MySQL à l'intérieur de ce dossier "/var/mail/vhosts" et définissez les propriétés/autorisations appropriées.

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

Modification du fichier d'authentification Dovecot :/etc/dovecot/conf.d/10-auth.conf

  • Désactivez l'authentification en texte brut pour garantir la sécurité en modifiant le paramètre ci-dessous sur "oui".
disable_plaintext_auth = yes
  • Modifiez le paramètre "auth_mechanisms" comme ci-dessous :
auth_mechanisms = plain login
  • Nous devons commenter la ligne mentionnée et activer l'authentification MySQL en décommentant la ligne auth-sql.conf.ext comme ci-dessous :
#!include auth-system.conf.ext
!include auth-sql.conf.ext

Modification du fichier SQL d'authentification :/etc/dovecot/conf.d/auth-sql.conf.ext

Assurez-vous que votre fichier d'authentification MySQL ressemble à ceci.

Modification du fichier de configuration Dovecot + MySQL :/etc/dovecot/dovecot-sql.conf.ext

  • Nous devons décommenter le paramètre "driver" et le définir sur MySQL comme ci-dessous :
driver = mysql
  • Modifiez et définissez les paramètres de connexion en fonction du nom et de l'utilisateur de notre base de données.
connect = host=127.0.0.1 dbname=lnmailserver user=lnmailuser password=lnmail123
  • Modifiez le default_pass_scheme en SHA-512 et la ligne password_query comme ci-dessous :
default_pass_scheme = SHA512-CRYPT
password_query = SELECT email as user, password FROM virtual_users WHERE email='%u';

Veuillez noter :définissez les autorisations sur le répertoire /etc/dovecot afin que l'utilisateur de vmail puisse l'utiliser.

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

Modification du fichier de configuration Dovecot Master :/etc/dovecot/conf.d/10-master.conf

Nous modifions quatre sections dans ce fichier de configuration. Section IMAP, section de transfert de courrier local, section d'authentification et dernière section de processus de travail d'authentification. Veuillez consulter les captures d'écran de chaque section ci-dessous pour voir les modifications :

Modification de la configuration SSL :/etc/dovecot/conf.d/10-ssl.conf

Nous modifions cette section pour activer SSL pour les connexions entrantes/sortantes. Ces paramètres de configuration sont facultatifs. Mais je les recommande pour plus de sécurité.

  • Changer le paramètre SSL en obligatoire
ssl = required
  • Spécifiez le certificat SSL et l'emplacement du fichier de clé pour notre configuration. Vous pouvez afficher la capture d'écran pour plus de détails.

Vous devez redémarrer Dovecot après toutes ces modifications.

C'est tout :) Nous avons terminé la configuration de notre serveur de messagerie. Hourra! Vous pouvez accéder à votre compte de messagerie en utilisant votre nom d'utilisateur et votre mot de passe sur n'importe lequel de vos clients de messagerie préférés. J'ai réussi à accéder à mon compte de messagerie en utilisant les paramètres ci-dessous :

J'espère que vous avez apprécié la lecture de cet article. Je recommanderais vos précieuses suggestions et commentaires à ce sujet.
Bonne journée !

, SUBSTRING(SHA(RAND()), -16))), '[email protected]'), -> ('2', '1', ENCRYPT('blogger321', CONCAT('$6
 
  • Vérifier le contenu de chaque tableau
 
 
 

Configurer Postfix

Notre prochaine étape consiste à modifier la configuration de Postfix en fonction de notre plan de configuration sur la façon dont nous devons accepter les connexions SMTP. Avant d'apporter des modifications à la configuration, il est toujours conseillé de faire une sauvegarde du fichier.

 

Nous pouvons maintenant ouvrir le fichier et apporter les modifications suivantes.

  • Modifiez les entrées suivantes pour activer la prise en charge TLS pour que les utilisateurs se connectent, spécifiez le certificat SSL qui est utilisé pour sécuriser la connexion.
 

J'utilise des certificats SSL Dovecot gratuits qui sont spécifiés ici. Nous pouvons générer des certificats SSL auto-signés dovecot avec la commande ci-dessous. Si vous disposez d'un certificat SSL valide pour votre nom d'hôte, vous pouvez les spécifier à la place.

 
  • Nous devons ajouter ces paramètres TLS à la configuration de Postfix, ce qui oblige Postfix à utiliser Dovecot pour l'authentification et pour initialiser les connexions.
 
  • Nous devons commenter les entrées par défaut "mydestination" et les mettre à jour pour utiliser "localhost" seul.
 
  • Confirmez la partie myhostname, si elle est correctement définie comme notre nom d'hôte FQDN.
 
  • La modification de ce paramètre permet à Postfix d'utiliser le LMTP de Dovecot au lieu de son propre LDA pour enregistrer les e-mails dans les boîtes aux lettres locales, permettant ainsi la distribution locale des e-mails pour tous les domaines répertoriés dans la base de données MySQL.
     
  • Enfin, mais non des moindres, nous devons indiquer à Postfix que nous utilisons une base de données externe pour gérer les domaines, les utilisateurs et les alias. Nous devons ajouter le chemin de configuration pour récupérer ces détails dans les tables de la base de données.
 

Nous devons maintenant créer ces fichiers mentionnés ci-dessus un par un. Veuillez consulter les détails de mon fichier ci-dessous :

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

 

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

 

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

 

Ces fichiers décrivent comment Postfix se connecte à la base de données externe. Nous devons redémarrer Postfix après avoir effectué ces modifications.

 

Nous devons exécuter ces commandes suivantes pour confirmer la connectivité et vérifier si Postfix est capable de récupérer les informations requises dans la base de données.

  • Pour vérifier si Postfix trouve votre domaine à partir de la base de données, nous pouvons exécuter ceci. Cela devrait renvoyer '1' si la tentative réussit.
 
  • Pour vérifier si Postfix trouve votre adresse e-mail requise dans la base de données, nous pouvons exécuter ceci. Cela devrait également renvoyer '1' en cas de succès.
 
  • Pour vérifier si Posfix trouve votre redirecteur d'e-mails à partir de la base de données, nous pouvons exécuter ceci. Cela devrait renvoyer votre ensemble de transfert d'e-mails si la tentative réussit.
 

Remarque :Vous pouvez vous connecter en toute sécurité avec vos clients de messagerie en utilisant Postfix sur le port 587, vous pouvez ouvrir le port en décommentant la partie suivante dans la configuration principale de Postfix :/etc/postfix/master.cf.

Vous devez redémarrer Postfix après avoir apporté des modifications à la configuration. En utilisant la commande telnet, vous pouvez confirmer si le port est ouvert.

Configurer Dovecot

Notre prochaine étape consiste à configurer notre MDA pour permettre aux protocoles POP3 ou IMAP et à d'autres paramètres de configuration de se connecter à une base de données externe et à Postfix. Nous modifions principalement les fichiers suivants.

 

Il est toujours conseillé de sauvegarder ces fichiers avant d'apporter des modifications à la configuration. Nous pouvons modifier chaque fichier un par un.

Modification du fichier de configuration principal de dovecot :/etc/dovecot/dovecot.conf

  • Le paramètre suivant n'est pas commenté par défaut. Mais nous devons nous assurer qu'il n'est pas commenté.
 
  • Nous pouvons activer tous les protocoles requis dans cette directive. Si vous devez activer POP3, nous pouvons ajouter pop3 à cette ligne et nous assurer également d'installer les packages dovecot requis "dovecot-pop3d" pour l'activer.
 

Modification du fichier de configuration de Dovecot Mail :/etc/dovecot/conf.d/10-mail.conf

  • Nous devons trouver le paramètre suivant "mail_location" dans la configuration et mettre à jour avec notre chemin de stockage de courrier. J'ai mes dossiers de messagerie situés dans le dossier "/var/mail/vhosts/". Par conséquent, j'ai modifié le chemin du fichier comme ci-dessous :
 
  • Nous devons définir le "mail_privileged_group " paramètre à "mail ".
 

Une fois cela fait, nous devons nous assurer que nous avons défini la propriété et les autorisations appropriées pour nos dossiers de messagerie. Créez les dossiers de messagerie pour chaque domaine que nous avons enregistré dans la table MySQL à l'intérieur de ce dossier "/var/mail/vhosts" et définissez les propriétés/autorisations appropriées.

 

Modification du fichier d'authentification Dovecot :/etc/dovecot/conf.d/10-auth.conf

  • Désactivez l'authentification en texte brut pour garantir la sécurité en modifiant le paramètre ci-dessous sur "oui".
 
  • Modifiez le paramètre "auth_mechanisms" comme ci-dessous :
 
  • Nous devons commenter la ligne mentionnée et activer l'authentification MySQL en décommentant la ligne auth-sql.conf.ext comme ci-dessous :
 

Modification du fichier SQL d'authentification :/etc/dovecot/conf.d/auth-sql.conf.ext

Assurez-vous que votre fichier d'authentification MySQL ressemble à ceci.

Modification du fichier de configuration Dovecot + MySQL :/etc/dovecot/dovecot-sql.conf.ext

  • Nous devons décommenter le paramètre "driver" et le définir sur MySQL comme ci-dessous :
 
  • Modifiez et définissez les paramètres de connexion en fonction du nom et de l'utilisateur de notre base de données.
 
  • Modifiez le default_pass_scheme en SHA-512 et la ligne password_query comme ci-dessous :
 

Veuillez noter :définissez les autorisations sur le répertoire /etc/dovecot afin que l'utilisateur de vmail puisse l'utiliser.

 

Modification du fichier de configuration Dovecot Master :/etc/dovecot/conf.d/10-master.conf

Nous modifions quatre sections dans ce fichier de configuration. Section IMAP, section de transfert de courrier local, section d'authentification et dernière section de processus de travail d'authentification. Veuillez consulter les captures d'écran de chaque section ci-dessous pour voir les modifications :

Modification de la configuration SSL :/etc/dovecot/conf.d/10-ssl.conf

Nous modifions cette section pour activer SSL pour les connexions entrantes/sortantes. Ces paramètres de configuration sont facultatifs. Mais je les recommande pour plus de sécurité.

  • Changer le paramètre SSL en obligatoire
 
  • Spécifiez le certificat SSL et l'emplacement du fichier de clé pour notre configuration. Vous pouvez afficher la capture d'écran pour plus de détails.

Vous devez redémarrer Dovecot après toutes ces modifications.

C'est tout :) Nous avons terminé la configuration de notre serveur de messagerie. Hourra! Vous pouvez accéder à votre compte de messagerie en utilisant votre nom d'utilisateur et votre mot de passe sur n'importe lequel de vos clients de messagerie préférés. J'ai réussi à accéder à mon compte de messagerie en utilisant les paramètres ci-dessous :

J'espère que vous avez apprécié la lecture de cet article. Je recommanderais vos précieuses suggestions et commentaires à ce sujet.
Bonne journée !

, SUBSTRING(SHA(RAND()), -16))), '[email protected]'); Query OK, 2 rows affected, 2 warnings (0.01 sec) Records: 2 Duplicates: 0 Warnings: 2
 
  • Vérifier le contenu de chaque tableau
 
 
 

Configurer Postfix

Notre prochaine étape consiste à modifier la configuration de Postfix en fonction de notre plan de configuration sur la façon dont nous devons accepter les connexions SMTP. Avant d'apporter des modifications à la configuration, il est toujours conseillé de faire une sauvegarde du fichier.

 

Nous pouvons maintenant ouvrir le fichier et apporter les modifications suivantes.

  • Modifiez les entrées suivantes pour activer la prise en charge TLS pour que les utilisateurs se connectent, spécifiez le certificat SSL qui est utilisé pour sécuriser la connexion.
 

J'utilise des certificats SSL Dovecot gratuits qui sont spécifiés ici. Nous pouvons générer des certificats SSL auto-signés dovecot avec la commande ci-dessous. Si vous disposez d'un certificat SSL valide pour votre nom d'hôte, vous pouvez les spécifier à la place.

 
  • Nous devons ajouter ces paramètres TLS à la configuration de Postfix, ce qui oblige Postfix à utiliser Dovecot pour l'authentification et pour initialiser les connexions.
 
  • Nous devons commenter les entrées par défaut "mydestination" et les mettre à jour pour utiliser "localhost" seul.
 
  • Confirmez la partie myhostname, si elle est correctement définie comme notre nom d'hôte FQDN.
 
  • La modification de ce paramètre permet à Postfix d'utiliser le LMTP de Dovecot au lieu de son propre LDA pour enregistrer les e-mails dans les boîtes aux lettres locales, permettant ainsi la distribution locale des e-mails pour tous les domaines répertoriés dans la base de données MySQL.
     
  • Enfin, mais non des moindres, nous devons dire à Postfix que nous utilisons une base de données externe pour gérer les domaines, les utilisateurs et les alias. Nous devons ajouter le chemin de configuration pour récupérer ces détails dans les tables de la base de données.
 

Nous devons maintenant créer ces fichiers mentionnés ci-dessus un par un. Veuillez consulter les détails de mon fichier ci-dessous :

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

 

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

 

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

 

Ces fichiers décrivent comment Postfix se connecte à la base de données externe. Nous devons redémarrer Postfix après avoir effectué ces modifications.

 

Nous devons exécuter ces commandes suivantes pour confirmer la connectivité et vérifier si Postfix est capable de récupérer les informations requises dans la base de données.

  • Pour vérifier si Postfix trouve votre domaine à partir de la base de données, nous pouvons exécuter ceci. Cela devrait renvoyer '1' si la tentative réussit.
 
  • Pour vérifier si Postfix trouve votre adresse e-mail requise dans la base de données, nous pouvons exécuter ceci. Cela devrait également renvoyer '1' en cas de succès.
 
  • Pour vérifier si Posfix trouve votre redirecteur d'e-mails à partir de la base de données, nous pouvons exécuter ceci. Cela devrait renvoyer votre ensemble de transfert d'e-mails si la tentative réussit.
 

Remarque :Vous pouvez vous connecter en toute sécurité avec vos clients de messagerie en utilisant Postfix sur le port 587, vous pouvez ouvrir le port en décommentant la partie suivante dans la configuration principale de Postfix :/etc/postfix/master.cf.

Vous devez redémarrer Postfix après avoir apporté des modifications à la configuration. En utilisant la commande telnet, vous pouvez confirmer si le port est ouvert.

Configurer Dovecot

Notre prochaine étape consiste à configurer notre MDA pour permettre aux protocoles POP3 ou IMAP et à d'autres paramètres de configuration de se connecter à une base de données externe et à Postfix. Nous modifions principalement les fichiers suivants.

 

Il est toujours conseillé de sauvegarder ces fichiers avant d'apporter des modifications à la configuration. Nous pouvons modifier chaque fichier un par un.

Modification du fichier de configuration principal de dovecot :/etc/dovecot/dovecot.conf

  • Le paramètre suivant n'est pas commenté par défaut. Mais nous devons nous assurer qu'il n'est pas commenté.
 
  • Nous pouvons activer tous les protocoles requis dans cette directive. Si vous devez activer POP3, nous pouvons ajouter pop3 à cette ligne et nous assurer également d'installer les packages dovecot requis "dovecot-pop3d" pour l'activer.
 

Modification du fichier de configuration de Dovecot Mail :/etc/dovecot/conf.d/10-mail.conf

  • Nous devons trouver le paramètre suivant "mail_location" dans la configuration et mettre à jour avec notre chemin de stockage de courrier. J'ai mes dossiers de messagerie situés dans le dossier "/var/mail/vhosts/". Par conséquent, j'ai modifié le chemin du fichier comme ci-dessous :
 
  • Nous devons définir le "mail_privileged_group " parameter to "mail ".
 

Once this is done, we need to make we've set proper ownership and permissions for our mail folders. 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. Hourra! 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:

I hope you enjoyed reading this article. I would recommend your valuable suggestions and comments on this.
Have a Nice day!


Ubuntu
  1. Comment installer DKIM sur le serveur Ubuntu

  2. Comment configurer le serveur de messagerie Zimbra sur Ubuntu 16

  3. Configurer Rsyslog Server sur Ubuntu 20.04 - Comment faire ?

  4. Comment installer le serveur MySQL sur Ubuntu 16.04

  5. Comment installer le serveur MySQL sur Ubuntu 17.04

Comment installer le serveur MySQL dans Ubuntu

Comment installer Postfix Mail Server sur Ubuntu 20.04

Comment configurer un serveur de messagerie complet (Postfix) à l'aide de "SquirrelMail" (Webmail) sur Ubuntu/Debian

Configuration du serveur de messagerie Postfix sur Ubuntu 14.04

Configuration du serveur de messagerie Postfix sur Ubuntu 20.04

Comment installer le serveur MySQL sur Ubuntu 20.04