GNU/Linux >> Tutoriels Linux >  >> Debian

Installez le serveur de messagerie Postfix et Dovecot sur Ubuntu ou Debian

Configurer le serveur SMTP Postfix sur Ubuntu/Debian

Vous avez votre propre nom de domaine et votre propre serveur vps/dédié et souhaitez utiliser le nom de domaine pour les e-mails. Vous devez donc configurer un serveur de messagerie en utilisant un serveur smtp et un serveur imap/pop.

Ce tutoriel vous montre comment configurer Postfix (serveur smtp) et Dovecot (serveur imap/pop). La tâche du serveur smtp est d'accepter les e-mails entrants et de relayer les e-mails sortants des utilisateurs autorisés sur le système.

Alors que Dovecot permet aux utilisateurs autorisés d'accéder à leur boîte de réception et de lire tous les e-mails qui s'y trouvent.

La configuration simple - Nous ne faisons pas cela

Dans le type de configuration le plus simple pour Postfix, spécifiez simplement votre nom de domaine "xyz.com" dans le paramètre de configuration "mydestination", vous pourrez alors recevoir des e-mails par [email protected] s'il existe un utilisateur (linux) nommé silver sur le système.

Cette technique est simple mais avec de lourds inconvénients. Tout d'abord, vous devez créer un nouveau compte utilisateur Unix pour chaque nouvelle adresse e-mail dont nous avons besoin.

Deuxièmement, les utilisateurs doivent se connecter avec leurs mots de passe système. Ce n'est donc pas une stratégie très flexible pour configurer des comptes de messagerie.

Séparément, vous pouvez configurer Dovecot pour lire les mails entrants depuis le répertoire où Postfix les stocke (/var/mail par défaut). Il y a un article sur DigitalOcean qui montre comment configurer postfix avec dovecot comme ça.

Nous allons configurer les choses de manière à ce que vous puissiez créer rapidement des adresses e-mail simplement en les écrivant dans un fichier avec le mot de passe.

Nous ajouterons autant de domaines que nous le voudrons et créerons autant d'e-mails et tout sera crypté et authentifié.

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.

Comment cela fonctionnera-t-il ? - Le jargon technique

1. Tous les e-mails entrants destinés à votre serveur seront reçus par Postfix (SMTP) puis remis à Dovecot (LMTP) pour être stockés dans la boîte de réception.

C'est mieux car le service lmtp intégré de dovecot offre plus de fonctionnalités telles que les quotas, les autorisations, les structures de répertoires flexibles pour les boîtes aux lettres, 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. Tous les courriers sortants seront envoyés par Postfix. Mais uniquement à partir de comptes authentifiés.

Outgoing mail (Thunderbird) -> Postfix (SMTP) -> Destination (SMTP) like gmail

3. Dovecot fournira des services IMAP/POP pour permettre aux clients de messagerie de lire la boîte de réception.

Thunderbird <==> Dovecot (IMAP) <==> Inbox

4. Dovecot fournira exclusivement un mécanisme d'authentification à Postfix via SASL.
Les comptes de messagerie - nom d'utilisateur + mots de passe seront stockés dans un fichier.

Si vous souhaitez configurer des domaines et des comptes de messagerie dans une base de données (au lieu d'un fichier), suivez ce tutoriel sur linode.com

Configurer les enregistrements MX pour le domaine

Avant d'aller plus loin, assurez-vous que les enregistrements MX de vos domaines que vous allez utiliser avec votre serveur de messagerie sont correctement définis. La plupart des fournisseurs de serveurs comme Linode fournissent une interface simple pour configurer les entrées de zone pour les enregistrements mx.

Si votre domaine est example.com, votre mx pourrait être mail.example.com par exemple. Utilisez la commande dig pour vérifier -

# 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

Assurez-vous que l'adresse IP de votre MX (serveur de messagerie) est celle du serveur sur lequel vous allez configurer postfix et dovecot.

Configuration du serveur de messagerie Postfix dans Ubuntu étape par étape

La première chose à configurer est Postfix. N'oubliez pas que dans notre configuration, Postfix va transmettre tous les e-mails sortants, mais pour tous les e-mails entrants, il les transmettra à Dovecot pour stockage et accès ultérieur par les clients de messagerie.

Ce qu'il faut savoir en premier

1. Postfix journalise toutes ses actions dans un fichier nommé /var/log/mail.log. Consultez-le pour obtenir des informations utiles et gagner du temps en diagnostiquant les problèmes.

2. La commande postconf est l'outil pour jeter un coup d'œil à l'intérieur des configurations de Postfix. Il répertorie tout dans un format nom=valeur ligne par ligne. Utilisez donc la commande grep pour trouver tout ce dont vous avez besoin.

3. Tous les paramètres de configuration de Postfix se trouvent dans le fichier /etc/postfix/main.cf
Les paramètres sont expliqués dans les pages de manuel trouvées à - "man 5 postconf"

Installer et configurer Postfix

D'accord, donc si vous ne l'avez pas déjà fait, installez Postfix. C'est juste là dans les dépôts donc vous ne devriez pas chercher ailleurs à moins que vous ne vouliez quelque chose de plus récent.

$ sudo aptitude install postfix

Ne vous inquiétez pas, le reste ne sera pas si facile. Après avoir installé Postfix, vous voudrez peut-être vérifier la version. Voici la commande pour le faire.

$ postconf mail_version
mail_version = 2.10.2
$ postconf | grep mail_version
mail_version = 2.10.2

Configurer main.cf

Dans cette section, nous configurerons plusieurs éléments dans le fichier de configuration principal de Postfix situé dans /etc/postfix/main.cf .

Ceux-ci incluent les noms d'hôte, les paramètres d'authentification SASL, les sockets unix pour le service d'authentification dovecot lmtp et dovecot sasl et la liste de nos virtual_mailbox_domains pour lesquels Postfix sera responsable de la réception des e-mails entrants.

Les paramètres délicats !!!

Les paramètres suivants sont les 3 paramètres super déroutants que vous devez comprendre et configurer correctement pour éviter les problèmes inattendus.

myhostname
mydomain
myorigin

Vous pouvez héberger plusieurs domaines sur votre serveur, par exemple abc.com + efg.com + xyz.com. Vous devez utiliser l'un d'eux comme domaine principal et l'utiliser pour "myorigin". Le champ myorigin est celui qui est configuré automatiquement lors de l'installation de postfix et vous demande le domaine du serveur.

Par défaut, myorigin est configuré pour pointer vers /etc/mailname afin que vous puissiez soit renseigner votre domaine par défaut dans /etc/mailname, soit le spécifier directement dans le fichier de configuration.

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]>".

Le paramètre myhostname est censé contenir le "nom du serveur de messagerie" tel qu'indiqué par votre enregistrement mx. C'est le nom que Postfix utilise dans la communication smtp pour s'identifier. Par exemple "HELO myhostname".

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.

Vous pourriez aussi bien laisser myhostname à "localhost" et les choses fonctionneraient toujours très bien. Cependant, dans ce cas, votre serveur utiliserait un message comme "HELO localhost" lors de la connexion à d'autres serveurs de messagerie comme gmail, et gmail rejetterait avec colère le courrier l'appelant non sollicité.

Par conséquent, il est recommandé de configurer myhostname sur un nom de domaine approprié avec des enregistrements A et TXT (SPF) valides. Assurez-vous également de définir myorigin.

Exemple de configuration -

myhostname = mail.yoursite.com
myorigin = yoursite.com

Techniquement, sur un seul serveur, vous pouvez utiliser la même valeur de myorigin pour myhostname. Cependant, dans diverses configurations impliquant plusieurs serveurs distincts, les valeurs de ces champs doivent être configurées avec plus de soin.

Pour en savoir plus, lisez le guide de configuration de base de Postfix.

Configurer le socket LMTP dans main.cf

Le paramètre virtual_transport indique à postfix de transférer/transporter les e-mails vers dovecot pour les domaines répertoriés dans "virtual_mailbox_domains".

# Handing off local delivery to Dovecot's LMTP
virtual_transport = lmtp:unix:private/dovecot-lmtp

Le chemin "private/dovecot-lmtp" est relatif à "/var/spool/postfix/". Le socket unix réel doit être configuré plus tard dans la section de configuration de Dovecot.

Configurer SASL dans main.cf

Ici, nous définissons les paramètres pour configurer l'authentification basée sur SASL pour Postfix. Postfix est capable de communiquer en interne avec le "service SASL de Dovecot" via un socket unix.

#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

Pour vérifier les différents plugins smtpd_sasl_type pris en charge par votre installation de Postfix, exécutez la commande suivante.

# postconf -a
cyrus
dovecot

Ajouter des domaines de boîte aux lettres dans main.cf

Ici, nous spécifions les domaines pour lesquels Postfix doit "accepter" les mails entrants. Alors spécifiez tous vos domaines internes ici. Nous allons mettre les domaines dans un fichier nommé virtual_mailbox_domains.

#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

Entrez les domaines, un sur une ligne

example.com OK
mysite.com OK

Ensuite, exécutez postmap sur le fichier. Cela créera un fichier nommé virtual_mailbox_domains.db qui sera utilisé par Postfix

# postmap /etc/postfix/virtual_mailbox_domains

La table virtual_mailbox_maps peut être utilisée pour spécifier des adresses e-mail valides pour les domaines répertoriés dans virtual_mailbox_domains.

However this is not necessary, since the SASL authentication via Dovecot would be doing the verification.

Activer SMTPS et MSA - master.cf

En plus du service smtp sur le port 25, nous devons activer plus de services. SMTPS fonctionnera sur le port 465 et MSA (Mail Submission Agent) fonctionnera sur le port 587. SMTP utilise le type d'authentification SSL/TLS et MSA utilise STARTTLS.

Trouvez la section "submission" et "smtps" dans le fichier nommé /etc/postfix/master.cf et décommentez les premières lignes. OUI UNIQUEMENT LA PREMIÈRE LIGNE

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

La ligne "submission" active le service MSA sur le port 587 et "smtps" démarre le service SMTP compatible SSL sur le port 465.

Vous pouvez activer uniquement le service de soumission, car SMTPS est désormais obsolète et maintenu uniquement pour la compatibilité avec les applications Microsoft qui ne prennent pas en charge STARTTLS.

Due to historic specifications, technically port 25, 465, 587 do almost the same thing. However as things are evolving they are being redefined.

Port 25 - est pour MTA (Mail transmission Agent). Le service MTA permet à d'autres MTA et MSA de se connecter et de livrer des e-mails.

Port 465/587 - est pour MSA (agent de soumission de courrier). Le service MSA est destiné aux MUA (agents utilisateurs de messagerie tels que Thunderbird) pour se connecter et déposer des e-mails en vue de leur livraison.

Thunderbird (MUA) -> your server smtp(MSA/MTA) -> gmail (MTA) -> Inbox

Redémarrer Postfix

Nous avons fini de configurer Postfix. Maintenant, redémarrez simplement.

$ sudo service postfix restart

Installer et configurer Dovecot

Nous avons terminé l'installation et la configuration de Postfix. Ce qui reste est Dovecot, le serveur IMAP/POP. Mais Dovecot fait bien plus que cela, comme nous allons le voir maintenant.

Ce qu'il faut savoir

1. Dovecot disposera d'un emplacement pour stocker les courriers entrants remis par Postfix.

2. Un compte d'utilisateur système distinct doit être créé et attribué à dovecot afin que dovecot puisse lire/écrire dans le répertoire de stockage du courrier. Dans notre exemple l'utilisateur s'appelle "vmail".

3. Dovecot doit héberger des services IMAP et POP sécurisés pour permettre aux clients de messagerie de lire la boîte de réception.

4. Dovecot fournira le service d'authentification SASL à Postfix via un socket unix. Le même nom d'utilisateur/mot de passe doit fonctionner avec Postfix (serveur SMTP) et Dovecot (serveur IMAP/POP)

5. Nous utiliserons l'adresse e-mail complète ([email protected]) comme nom d'utilisateur et définirons également un mot de passe crypté.

Installer Pigeonnier

Installez d'abord dovecot et quelques packages nécessaires. Installez le package principal de dovecot et les packages pour la prise en charge d'imap, pop et lmtp.

# sudo apt-get install dovecot-core dovecot-imapd dovecot-pop3d dovecot-lmtpd

Vérifier la version

# dovecot --version
2.1.7

Configurer Pigeonnier

Il est maintenant temps de configurer Dovecot pour configurer les comptes d'utilisateurs et également les sockets SASL pour permettre à Postfix de faire des authentifications. Tous les fichiers de configuration se trouvent dans /etc/dovecot/conf.d/ répertoire.

Vérifiez le /etc/dovecot/dovecot.conf fichier et assurez-vous que le fichier de protocoles est inclus. Il inclut les fichiers de configuration des différents protocoles qui les activent.

# Enable installed protocols
!include_try /usr/share/dovecot/protocols.d/*.protocol

Les protocoles installés peuvent être listés comme ceci

# 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
#

Configurer l'emplacement de la boîte de réception - 10-mail.conf

Nous disons à dovecot de stocker les e-mails dans le répertoire /var/mail/vhosts et de les mettre en outre dans des sous-répertoires pour chaque domaine et l'utilisateur sous ce domaine.

Mails for [email protected] would be stored in /var/mail/vhosts/example.com/someone/

Editez le fichier 10-mail.conf

#mail_location = mbox:~/mail:INBOX=/var/mail/%u
mail_location = maildir:/var/mail/vhosts/%d/%n

Créez le répertoire /var/mail/vhosts

# mkdir /var/mail/vhosts/

Créez maintenant à l'intérieur de ce répertoire, créez un répertoire pour chaque domaine sur lequel vous souhaitez recevoir du courrier sur ce serveur.

# mkdir /var/mail/vhosts/example.com

Créer un utilisateur pour lire les mails

Créez maintenant un utilisateur avec le nom et le groupe de vmail et l'uid et le gid de 5000. Bien que l'uid puisse être n'importe quel nombre, nous choisissons 5000 pour indiquer qu'il ne s'agit pas d'un utilisateur ordinaire. L'option "-r" précise en outre que cet utilisateur est un utilisateur de niveau système et n'a pas de connexion.

$ groupadd -g 5000 vmail
$ useradd -r -g vmail -u 5000 vmail -d /var/mail/vhosts -c "virtual mail user"

Donnez à vmail tous les privilèges pour lire/écrire sur /var/mail/vhosts

$ chown -R vmail:vmail /var/mail/vhosts/

Activer les services IMAPS et POP3S - 10-master.conf

Dites maintenant à dovecot de démarrer les services imaps et pops. Modifiez le fichier 10-master.conf et activez les ports pour les services et spécifiez ssl sur yes.

Laissez les ports pour imap et pop commentés car nous ne voulons pas héberger de services non sécurisés.

Pour IMAPS - IMAP sécurisé

service imap-login {
  inet_listener imap {
    #port = 143
  }
  inet_listener imaps {
    port = 993
    ssl = yes
  }

Pour POP3S - POP3 sécurisé

service pop3-login {
  inet_listener pop3 {
    #port = 110
  }
  inet_listener pop3s {
    port = 995
    ssl = yes
  }
}

Configurer le socket lmtp - 10-master.conf

La page wiki dovecot sur LMTP montre un exemple simple de configuration du socket lmtp dans /etc/dovecot/conf.d/10-master.conf fichier.

Trouvez la section nommée "service lmtp" et renseignez le chemin d'accès au fichier où le socket unix serait créé. Ce même chemin est utilisé par postfix pour le paramètre "virtual_transport".

service lmtp {
  unix_listener /var/spool/postfix/private/dovecot-lmtp {
    mode = 0600
        user = postfix
        group = postfix

  }
.....

Le socket doit avoir les privilèges de user:group postfix pour que le processus Postfix puisse l'utiliser.

Configurer le socket d'authentification SASL

Trouvez la section "service auth" et à l'intérieur, ajoutez ce qui suit. S'il est déjà là, modifiez-le simplement.

service auth {
.....
  # Postfix smtp-auth
  unix_listener /var/spool/postfix/private/auth {
    mode = 0666
user=postfix
group=postfix
  }
.....

Configurer l'authentification

Ouvrez le fichier conf.d/10-auth.conf et décommentez la ligne disable_plaintext_auth en vous assurant qu'elle est définie sur yes. Cela garantit que le chiffrement TLS/SSL est toujours utilisé à des fins d'authentification.

disable_plaintext_auth = yes

Recherchez le paramètre nommé auth_mechanism et décommentez-le. Ce paramètre spécifie le format dans lequel le mot de passe serait fourni à dovecot.

auth_mechanisms = plain login

Spécifier les fichiers d'authentification

La dernière chose à configurer dans le fichier 10-auth.conf est la base de données de mots de passe. Par défaut, dovecot est configuré pour s'authentifier à l'aide des "utilisateurs du système" (utilisateurs Linux de /etc/passwd).

Nous allons lui dire de s'authentifier à l'aide d'un fichier séparé contenant les noms d'utilisateur et les mots de passe

Recherchez et commentez la ligne auth-system.conf.ext et décommentez la ligne auth-passwdfile. Cela devrait ressembler à ceci

#!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

Modifiez ensuite le fichier auth-passwdfile.conf.ext

/etc/dovecot/conf.d# nano auth-passwdfile.conf.ext

Faites en sorte qu'il ressemble à ceci.

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
}

La section passdb indique à dovecot où chercher le nom d'utilisateur et les mots de passe pour s'authentifier. Le fichier est /etc/dovecot/dovecot-users.

Le username_format "%u" indique que l'intégralité de l'adresse e-mail sera utilisée comme nom d'utilisateur. Cela signifie que lorsque vous vous connectez à partir d'un client de messagerie, vous utiliserez l'adresse e-mail comme nom d'utilisateur pour smtp et imap/pop.

Le nom d'utilisateur et les mots de passe sont stockés dans un fichier nommé /etc/dovecot/dovecot-users que nous créerons à l'étape suivante

La section userdb indique à dovecot où lire/écrire les mails pour un utilisateur donné. Nous utilisons une structure de répertoire fixe /var/mail/vhosts/%d/%n

Ainsi, les e-mails pour l'utilisateur [email protected] seraient lus à partir du répertoire suivant -

/var/mail/vhosts/example.com/someone/

Créer une boîte aux lettres ou des comptes utilisateur

Créez un fichier texte simple dans /etc/dovecot/ et remplissez-le avec le nom d'utilisateur et les mots de passe au format utilisateur :mot de passe. Voici un exemple

# cat dovecot-users 
[email protected]:{plain}abc123
[email protected]:{MD5-CRYPT}$1$JdyRMcO6$qUwKZT40EVp/oIpVfAEXF1

Générez des mots de passe à l'aide de la commande doveadm comme celle-ci. Le hachage du mot de passe renvoyé par la commande ci-dessus doit être copié tel quel dans le fichier dovecot-users.

# doveadm pw -s MD5-CRYPT
Enter new password:
Retype new password:
{MD5-CRYPT}$1$JdyRMcO6$qUwKZT40EVp/oIpVfAEXF1
#

Le fichier de mots de passe peut également contenir des informations sur le répertoire et les autorisations de la boîte aux lettres d'un utilisateur individuel. Consultez l'article du wiki sur le format passwdfile.

Activer SSL dans dovecot - 10-ssl.conf

Ouvrez le fichier /etc/dovecot/conf.d/10-ssl.conf et décommentez la ligne ssl et définissez-la sur required

# SSL/TLS support: yes, no, required. <doc/wiki/SSL.txt>
ssl = required

Assurez-vous également que ssl_cert et ssl_key pointent vers les fichiers appropriés (c'est par défaut)

ssl_cert = </etc/dovecot/dovecot.pem
ssl_key = </etc/dovecot/private/dovecot.pem
&#91;/pre&#93;

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 =

Configurer la rotation du journal

Si nous modifions les fichiers journaux de Dovecot, il est nécessaire de configurer logrotate pour garantir que les fichiers journaux sont créés en plusieurs parties au lieu d'un seul gros fichier.

$ nano /etc/logrotate.d/dovecot

Et remplissez ce qui suit

/var/log/dovecot*.log {
  missingok
  notifempty
  delaycompress
  sharedscripts
  postrotate
    doveadm log reopen
  endscript
}

Pour plus d'informations, consultez la page wiki de dovecot sur la journalisation.

Redémarrer Pigeonnier

Bon travail. Toutes les configurations effectuées. Maintenant, redémarrez le pigeonnier

$ sudo service dovecot restart

Tester

Maintenant que vous avez fini de tout configurer, il est temps de tester. Utilisez un client de messagerie comme Thunderbird et configurez les connexions SMTP et IMAP.

Ensuite, essayez d'envoyer un e-mail à un autre compte comme un gmail. Si vous recevez le courrier sur gmail, essayez de répondre. Si le courrier apparaît dans votre client de messagerie, vous avez terminé. Félicitations !

Vérification des ports ouverts avec netstat

Utilisez la commande netstat pour vérifier que les services sont opérationnels

# 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

Dans la sortie ci-dessus, nous pouvons voir que dovecot contient les ports 993, 995, 110 et 143
Alors que Postfix (maître) contient les ports 587, 465 et 25

Dépannage

1. mail.log vide

Sur les serveurs Ubuntu, le fichier /var/log/mail.log peut être totalement vide. Cela se produit en raison de problèmes d'autorisation et peut être résolu avec les commandes suivantes

# ls -l /var/log/mail.log
-rw-r----- 1 messagebus adm 0 Apr 26  2013 /var/log/mail.log

Le propriétaire correct du fichier doit être syslog. Définissez l'autorisation de propriété correcte avec les commandes suivantes -

$ sudo chown syslog.adm /var/log/mail.log
$ sudo chmod 640 /var/log/mail.log

Maintenant, le fichier mail.log devrait être rempli avec les messages corrects pour suivre ce qui se passe avec le serveur Postfix.

2. Accès relais refusé

Lors de l'envoi de mails, si le journal postfix (/var/log/mail.log) affiche un tel message d'erreur -

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=<&#91;192.168.1.2&#93;>

Assurez-vous que le champ smtpd_relay_restrictions (/etc/postfix/main.cf) contient "permit_sasl_authenticated" afin que les utilisateurs authentifiés via SASL soient autorisés à envoyer des e-mails en utilisant postfix comme serveur smtp.

smtpd_relay_restrictions = permit_mynetworks permit_sasl_authenticated defer_unauth_destination

3. Erreur lors de la réception du courrier

Si les journaux du colombier affichent un tel message d'erreur lors de la réception des e-mails -

Dec 02 18:32:12 lmtp(4412): Fatal: Error reading configuration: Invalid settings: postmaster_address setting not given

Modifiez simplement /etc/dovecot/conf.d/15-lda.conf et ajoutez une valeur pour postmaster_address

# Address to use when sending rejection mails.
# Default is [email protected]<your domain>. %d expands to recipient domain.
postmaster_address = [email protected]

Créez des enregistrements DNS SPF pour activer la validation et éviter les spams

Essayez d'envoyer un e-mail à une adresse gmail via un client de messagerie comme Thunderbird et via le serveur smtp postfix, et le courrier atterrirait dans le dossier spam de gmail, ou pourrait être entièrement rejeté.

Pour résoudre ce problème, les enregistrements SPF du domaine de l'expéditeur doivent être configurés. Si le serveur postfix envoie des e-mails avec "l'adresse de l'expéditeur" de [email protected], alors les enregistrements DNS TXT de example.com doivent contenir les informations de validation SPF pour indiquer que ceci le serveur est autorisé à envoyer des e-mails au nom de example.com

Tout ce qui doit être fait est de modifier les entrées de zone de votre serveur de noms et d'ajouter un enregistrement TXT contenant les éléments suivants

"v=spf1 mx a -all"

La plupart des fournisseurs de vps comme Linode fournissent une interface soignée pour modifier les paramètres DNS comme ceux-ci. Consultez le site Web du projet OpenSPF pour en savoir plus.

Vérifiez les enregistrements SPF de votre domaine avec cette simple commande -

$ dig -t TXT example.com

Remarques

L'exemple ci-dessus utilise un fichier pour stocker les comptes de messagerie et les mots de passe. Cela est pratique lorsque vous avez besoin de quelques comptes de messagerie sur votre serveur personnel et que vous ne les modifiez pas trop souvent.

Cependant, à grande échelle, lorsque vous fournissez des e-mails à un grand nombre d'utilisateurs et que vous créez/supprimez souvent des comptes, la méthode recommandée consiste à stocker virtual_mailbox_domains et virtual_mailbox_maps dans une base de données, puis à utiliser un client de base de données pour modifier les enregistrements rapidement et facilement.

Postfix et Dovecot supportent Mysql/MariaDB.

Consultez les ressources en bas pour des liens vers des articles utiles sur la façon de configurer Postfix et Dovecot d'autres manières à l'aide d'une base de données.

Et ensuite

1. Vous pouvez installer un client de messagerie Web tel que Roundcube pour pouvoir vous connecter à votre serveur à partir du navigateur et lire/envoyer des e-mails.

2. Certains utilisateurs (comme moi bien sûr) préfèrent utiliser le gmail de Google comme client de messagerie en ajoutant des informations de compte smtp et pop. Google vous permettrait rapidement d'envoyer des e-mails en utilisant cette toute nouvelle configuration de serveur smtp ci-dessus.

Mais gmail ne lira pas les mails du serveur IMAP/POP créé ci-dessus, jusqu'à ce que nous utilisions un vrai certificat d'une autorité de certification (CA) dans Dovecot.

Les certificats SSL des autorités de certification coûtent de l'argent, mais vous pouvez obtenir un certificat gratuit de StartCom StartSSL PKI et l'utiliser avec Dovecot, puis gmail vous permettra de lire les e-mails de ce serveur.

3. En outre, vous devez également configurer DKIM (Domainkeys Identified Mail) pour votre domaine, afin de garantir l'authenticité des e-mails et d'être traités comme légitimes par les principaux services de messagerie tels que gmail.

Ressources

Voici quelques ressources plus utiles sur la façon d'installer et de configurer Postfix et Dovecot de différentes manières pour obtenir le type exact de serveur de messagerie que vous souhaitez.

Tutoriel Linode sur la configuration de Postfix et Dovecot avec Mysql
https://www.linode.com/docs/email/postfix/email-with-postfix-dovecot-and-mysql

Documentation des paramètres de configuration de Postfix à utiliser dans main.cf
http://www.postfix.org/postconf.5.html

Explication des différents types de domaines pris en charge et utilisés par Postfix
https://workaround.org/ispmail/squeeze/postfix-domain-types

Détails sur la manière dont Postfix gère les différents types de domaines virtuels
http://www.postfix.org/VIRTUAL_README.html

Documentation complète de Postfix
http://www.postfix.org/documentation.html


Debian
  1. Installer et sécuriser le serveur Redis sur Debian 10

  2. Comment installer Puppet 6.x sur Ubuntu 18.04 / Ubuntu 16.04 et Debian 9

  3. Installer Node.js dans Ubuntu et Debian

  4. Comment installer et configurer Postfix sur Ubuntu 20.04

  5. Comment installer Spamassassin avec Postfix et Dovecot sur Ubuntu/Debian Server

Installer et configurer OpenLDAP sur Ubuntu 16.04 / Debian 8

Comment installer et configurer Postfix sur Debian

Comment installer Postfix Mail Server sur Ubuntu 20.04

Installer et configurer Virtualmin sur le serveur Ubuntu 20.04 / Debian 10

Configuration du serveur de messagerie Postfix sur Ubuntu 14.04

Configuration du serveur de messagerie Postfix sur Ubuntu 20.04