Comment configurer PostFix et Dovecot avec des utilisateurs de domaine virtuel dans Linux - Partie 2

Comment configurer PostFix et Dovecot avec des utilisateurs de domaine virtuel dans Linux - Partie 2

Dans l'article précédent de cette série, nous avons expliqué comment configurer et gérer la base de données du serveur de messagerie en toute sécurité à l'aide de phpmyadmin.

Exigence:

  1. Installez le serveur de messagerie postfix et DoveCot avec MariaDB - Partie 1
Configurer Postfix et Dovecot avec les utilisateurs de domaine virtuel - Partie 2

Il est maintenant temps de configurer les programmes internes qui feront de l'envoi et de la réception des e-mails une réalité: Postfix et Dovecot (pour gérer les e-mails sortants et entrants, respectivement).

Configuration du serveur de messagerie postfix

Avant de commencer à configurer Postfix, Il vaudrait la peine et bien de jeter un œil à ses pages d'homme ici, mettant un accent particulier sur la section intitulée «Informations pour les nouveaux utilisateurs de postfix". Si vous le faites, vous trouverez plus facile à suivre ce tutoriel.

En quelques mots, vous devez savoir qu'il existe deux fichiers de configuration pour Postfix:

  1. / etc / postfix / Main.cf (Paramètres de configuration postfix, reportez-vous à homme 5 postconf pour plus de détails).
  2. / etc / postfix / maître.cf (Postfix Master Daemon Configuraton, voir homme 5 maître pour plus de détails).

Dans / etc / postfix / Main.cf, Localisez (ou ajoutez, si nécessaire) les lignes suivantes et assurez-vous qu'elles correspondent aux valeurs indiquées ci-dessous:

principal.cf
append_dot_mydomain = no biff = no config_directory = /etc/postfix dovecot_destination_recipient_limit = 1 message_size_limit = 4194304 readme_directory = no smtp_tls_session_cache_database = btree:$data_directory/smtp_scache smtpd_banner = $myhostname ESMTP $mail_name (CentOS) smtpd_tls_cert_file = /etc/pki/dovecot/ CERTS / DOVECOT.pem smtpd_tls_key_file = / etc / pki / dovecot / private / dovecot.pem smtpd_tls_session_cache_database = btree: $ data_directory / smtpd_scache smtpd_use_tls = oui virtual_transport = dovecot smtpd_sasl_type = dovecot smtpd_sasl_path = private / auth 

Les trois prochains paramètres sont d'une importance particulière. Dans les fichiers indiqués en jaune, nous configurerons l'accès de Postfix Domains_tbl, Users_tbl, et Alias_tbl les tables:

virtual_mailbox_domains = mysql:/ etc / postfix / mariadb-vomains.cf virtual_mailbox_maps = mysql:/ etc / postfix / mariadb-vachers.cf virtual_alias_maps = mysql:/ etc / postfix / mariadb-valias.cf 

Notez que vous pouvez choisir différents noms de fichiers ci-dessus, tant que vous vous assurez de les créer et d'insérer le contenu suivant en eux. Dans chaque cas, remplacer Votre mot de passe avec le mot de passe que vous avez choisi pour le dba utilisateur Partie 1, ou vous pouvez également utiliser le Mariadb Informations sur les racines pour l'utilisateur et le mot de passe ci-dessous.

Assurez-vous également d'utiliser exactement les mêmes noms de la base de données et des tableaux de la base de données du serveur de messagerie créé dans Partie 1.

Dans / etc / postfix / mariadb-vomains.cf:

mariadb-vomaines.cf
user = dba mot de passe = yourpassword hôtes = 127.0.0.1 DBNAME = CEMAILSERVER_DB QUERY = SELECT 1 FROM DOMAINS_TBL WHERE DOMAINNAME = "% S" 

Dans / etc / postfix / mariadb-vachers.cf:

mariadb-vachers.cf
user = dba mot de passe = yourpassword hôtes = 127.0.0.1 DBNAME = EMAILSERVER_DB QUERY = SELECT 1 FROM USERS_TBL WHERE EMAIL = "% S" 

Dans / etc / postfix / mariadb-valias.cf:

mariadb-valias.cf
user = dba mot de passe = yourpassword hôtes = 127.0.0.1 DBNAME = CEMAILSERVER_DB QUERY = SELECT DESISTRATION FROM ALIAS_TBL WHERE SOURCE = "% S" 

Enfin, n'oubliez pas de modifier les autorisations en ces fichiers pour 640:

# Chmod 640 / etc / Postfix / MariaDB-vomains.CF # CHMOD 640 / ETC / POSTFIX / MARIADB-VUSERS.CF # CHMOD 640 / ETC / POSTFIX / MARIADB-VALIAS.cf 

Et la propriété de l'utilisateur racine et grouper postfix:

# Chown Root: Postfix / etc / PostFix / MariaDB-vomains.CF # Chown Root: Postfix / etc / Postfix / MariaDB-VUSERS.CF # Chown Root: Postfix / etc / Postfix / MariaDB-Valias.cf 

Ensuite, pour permettre des connexions sécurisées, nous devons nous assurer que les paramètres suivants ne sont pas en train de / etc / postfix / maître.cf:

maître.cf
Soumission Inet n - n - - smtpd -o syslog_name = postfix / soumission -o smtpd_tls_security_level = encrypt -o smtpd_sasl_auth_enable = oui -o smtpd_reject_unlistted_recipent = no -o smtpd_recipent Nettoyage Unix N - N - 0 Cleanup Qmgr Unix N - N 300 1 QMGR TLSMGR UNIX - - N 1000? 1 Tlsmgr Rewrite Unix - - N - - TRIVIAL-VERE BOUND UNIX - - N - 0 Bounce Defer Unix - - N - 0 Bounce Trace Unix - - N - 0 Bounce Verify Unix - - N - 1 Vérifier Flush Unix N - N 1000? 0 Flush Proxymap Unix - - N - - Proxymap ProxyWrite Unix - - N - 1 Proxymap Smtp Unix - - N - - SMTP Relay Unix - - N - - SMTP Showq Unix N - N - - Showq Error Unix - - N - - ERREUR Retry Unix - - N - - Erreur Derging Unix - - N - - Dernit Local Unix - N N - - Local #Virtual Unix - N N - - Virtual Lmtp Unix - - N - - LMTP Anvil Unix - - N - 1 Anvil Scache Unix - - N - 1 Cache 

Note: L'indentation dans les lignes commençant par le -o L'option est critique; Sinon, le chèque PostFix renvoie une erreur:

Vérifiez la configuration postfix

Avant d'enregistrer les modifications, ajoutez les lignes suivantes en bas du fichier:

maître.cf
DoveCot Unix - n n - - Pipe Flags = Drhu user = vmail: vmail argv = / usr / libexec / dovecot / délivre -f $ Sender -d $ destinataire 

À ce stade, il est essentiel de vérifier si Postfix a accès aux tables de base de données et aux domaines, comptes et alias dans lesquels nous avons créé Partie 1.

Pour ce faire, nous utiliserons le postmap Commande, un utilitaire pour tester la communication avec les tables postfix recherchera le fonctionnement, mais d'abord et avant tout, nous devrons redémarrer Postfix:

# SystemCTL Postfix Restart # Postmap -Q ​​LinuxNewz.com mysql: / etc / postfix / mariadb-vomains.cf # postmap -Q ​​quelque autre autredomain.com mysql: / etc / postfix / mariadb-vomains.cf # postmap -Q ​​[Protégé par e-mail] MySQL: / etc / Postfix / MariaDB-VUSERS.cf # postmap -Q ​​[Protégé par e-mail] MySQL: / etc / Postfix / MariaDB-VUSERS.cf # postmap -Q ​​[Protégé par e-mail] MySQL: / etc / Postfix / MariaDB-VUSERS.CF # PostMap -Q ​​[Protégé par e-mail] MySQL: / etc / PostFix / MariaDb-Valias.cf 

Dans l'image ci-dessous, nous pouvons voir que pour les enregistrements existants dans la base de données, un 1 est retourné. Sinon, rien n'est affiché à l'écran. Dans le cas du chèque d'alias, notez que le compte de messagerie réel auquel l'alias est mappé est retourné:

Vérifiez la communication de la table postfixe

Notez que nous sommes PAS Authentification avec les informations d'identification définies pour chaque compte de messagerie, nous testons uniquement la capacité de Postfix à détecter ces enregistrements dans la base de données.

Ainsi, si vous obtenez une sortie différente de celle ci-dessus, assurez-vous que vous utilisez une paire utilisateur / mot de passe valide dans mariadb-vomaines.cf, mariadb-vachers.cf, et mariadb-valias.cf (ou tout ce que vous avez choisi pour appeler ces fichiers).

Configuration de Dovecot

En tant que IMap / / Pop3 serveur, Dovecot fournit un moyen pour les utilisateurs via un Envoyez-vous un agent utilisateur (Mua, ou également connu sous le nom de client), comme Tonnerre ou Perspectives, Pour nommer quelques exemples pour accéder à leur courrier.

Pour commencer, créons un utilisateur et un groupe pour gérer les e-mails (nous en aurons besoin car nos comptes de messagerie ne sont pas associés à un utilisateur du système). Vous pouvez en utiliser un autre Uid et Gid (autre que 5000 Comme nous le faisons ci-dessous) tant qu'il n'est pas utilisé et est un nombre élevé:

# groupAdd -g 5000 Vmail # userAdd -g Vmail -U 5000 Vmail -d / Home / Vmail -M 

Les paramètres de DOVECOT sont divisés sur plusieurs fichiers de configuration (assurez-vous que les lignes suivantes ne sont pas en putes et / ou les modifier pour correspondre aux paramètres indiqués ci-dessous).

Dans / etc / dovecot / dovecot.confli:

dovecot.cf
!Inclure_try / usr / share / dovecot / protocoles.d/*.protocole protocole = IMAP POP3 LMTP !Inclure Conf.d/*.confli !Inclure_try local.confli 

Dans / etc / dovecot / confr.D / 10-AUTH.confli (Activer uniquement l'authentification via SQL et laisser d'autres méthodes d'authentification commentées):

10 AUTH.confli
disable_plaintext_auth = oui auth_mechanisms = cure de connexion !Inclure Auth-SQL.confli.ext 

Dans / etc / dovecot / confr.D / Auth-SQL.confli.ext (Notez que nous stockons des e-mails dans un répertoire nommé ton domaine.com à l'intérieur / Home / Vmail, que vous devez créer s'il n'existe pas. Dans notre cas, nous avons fait Mkdir / Home / Vmail / LinuxNewz.com Pour gérer les e-mails pour ce domaine):

auth-sql.confli.ext
passdb driver = sql args = / etc / dovecot / dovecot-sql.confli.ext userdb driver = static args = uid = vmail gid = vmail home = / home / vmail /% d /% n / Maildir 

Les boîtes de réception individuelles pour les comptes d'utilisateurs seront créées lorsque les e-mails pour ces comptes seront reçus pour la première fois.

Dans / etc / dovecot / confr.d / 10-mail.confli:

10 chariot.confli
Mail_Location = MailDir: / Home / Vmail /% D /% N / MailDir Namespace Box Inbox = YES Mail_priviled_Group = Mail MBOX_WRITE_LOCKS = FCNTL 

Dans / etc / dovecot / confr.d / 10-maître.confli:

10-maître.confli
Service imap-login INET_Listener IMAP Port = 143 INET_Listener IMAPS  Service POP3-Login INET_Listener POP3 port = 110 INET_Listener POP3S  Service Lmtp Unix_Listener / Var / Spool / Postfix / Private / DoVecot-LMTP mode = 0600 user = PostFix Group = PostFix Service Auth UNIX_Listener / var / Spool / PostFix / Private / Auth mode = 0666 User = PostFix Group = PostFix UNIX_Listener Auth-userDB mode = 0600 User = vmail User = DoveCot Service Auth-Worker user = vmail Service Dict Unix_Listener Dict  

Dans / etc / dovecot / confr.D / 10-SSL.confli (Remplacez le certificat et les chemins clés si vous prévoyez d'utiliser un certificat signé par un CA):

10-SSL.confli
ssl = requis ssl_cert =  

Dans / etc / dovecot / dovecot-sql.confli.ext Entrez vos informations de base de données et les informations d'identification de l'utilisateur administratif créé dans Partie 1.

Important: Si votre mot de passe contient un astérisque (#), Vous devrez enfermer la chaîne de connexion comme indiqué dans l'exemple ci-dessous:

dovecot-sql.confli.ext
driver = mysql connect = "host = 127.0.0.1 DBNAME = EMAILSERVER_DB User = DBA Password = Passwith # ici "Default_Pass_Scheme = Sha512-Crypt Password_Query = Sélectionnez Email comme utilisateur, mot de passe FROM Users_tbl Where Email ="% U "; 

De plus, vous pouvez configurer la journalisation pour DoveCot pour être séparé de PostFix dans / etc / dovecot / confr.d / 10.confli:

log_path = / var / log / dovecot.enregistrer 

Enfin, assurez-vous que le journal Dovecot est accessible pour l'utilisateur dovecot:

# chown vmail: dovecot / var / log / dovecot.journal # chmod 660 / var / log / dovecot.enregistrer 

Vérifiez et corrigez la configuration du postfix et activez SMTP, POP3 et IMAP dans le pare-feu

Si vous rencontrez des problèmes lors de la configuration de PostFix et / ou DoveCot, au lieu de soumettre tous les fichiers de configuration pour demander de l'aide, vous pouvez obtenir un résumé de configuration (lignes non composées uniquement) avec:

# postconf -n # résumé pour / etc / postfix / main.CF # postconf -m # résumé pour / etc / postfix / maître.CF # DoveConf -N # Résumé de tous les fichiers de configuration pour Dovecot 

De plus, assurez-vous que les boîtes de réception des e-mails sont lisibles par vmail seul:

# chown -r vmail: vmail / home / vmail 

Les fichiers de configuration doivent également être lisibles par vmail et dovecot utilisateurs:

# chown -r vmail: dovecot / etc / dovecot # chmod -r o-rwx / etc / dovecot 

Enfin, assurez-vous d'activer Smtp, Pop3, et IMap À travers le pare-feu:

# Firewall-Cmd --Add-Port = 143 / TCP # Firewall-Cmd --Add-Port = 143 / TCP --permanent # Firewall-Cmd --Add-Port = 110 / TCP # Firewall-Cmd --Add- port = 110 / TCP - Permanent # Firewall-CMD --Add-Port = 587 / TCP # Firewall-CMD --Add-Port = 587 / TCP --permanent 

Configurer Thunderbird en tant que client de messagerie pour Postfix

Ayant assuré un accès via le pare-feu pour les ports utilisés dans les communications par e-mail, il est temps de configurer un client de messagerie. En utilisant [Protégé par e-mail] et son mot de passe correspondant, avec poster.linuxnewz.com En tant que serveur IMAP (ou POP3) et SMTP, nous sommes prêts à commencer à envoyer et à recevoir des e-mails vers et depuis ce compte:

Postfix: configurer le client Thunderbird

Vous pouvez ignorer en toute sécurité le message d'avertissement affiché parce que vous utilisez un certificat qui n'est pas signé par un CA de fiducie tiers:

Thunderbird: ajouter une exception de sécurité

Composons un bref e-mail de test et cliquez sur Envoyer:

Composez un e-mail sur Thunderbird

Lorsque vous êtes invité à accepter le certificat auto-signé pour le serveur sortant, confirmez-le précédemment comme avant:

Thunderbird: Accepter le certificat SSL

Enfin, allez à l'e-mail de destination pour voir si vous avez reçu l'e-mail qui vient d'être envoyé. Dans l'affirmative, répondez-y et voyez s'il est remis à la boîte de réception de l'e-mail source (sinon, reportez-vous au journal Postfix à / var / log / Maillog ou le journal Dovecot à / var / log / dovecot.enregistrer pour le dépannage des informations):

Vérifiez la livraison par e-mail postfix et dovecot

Vous avez maintenant un serveur de messagerie postfix et Dovecot fonctionnel et pouvez commencer à envoyer et à recevoir des e-mails.

Résumé

Dans cet article, nous avons expliqué comment configurer PostFix et DoveCot pour gérer le trafic de messagerie dans votre serveur Linux. Si quelque chose ne fonctionne pas comme indiqué dans cet article, assurez-vous de prendre le temps de vérifier la documentation postfix et dovecot.

Veuillez noter que bien que la configuration d'un serveur de messagerie postfix ne soit pas une tâche facile, c'est une expérience enrichissante pour chaque administrateur système.

Si après avoir parcouru les documents, vous vous retrouvez encore aux prises avec Postfix et / ou Dovecot, N'hésitez pas à nous envoyer une note en utilisant le formulaire de commentaire ci-dessous et nous serons heureux de vous aider (n'oubliez pas de télécharger sur un service de stockage en ligne la configuration postfix et dovecot telle qu'elle est récupérée en utilisant postconf et doveconf comme indiqué dans cet article).