serveur_hebergement:serveur_mail:partie_1_postfix

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
serveur_hebergement:serveur_mail:partie_1_postfix [2022/11/04 09:41] – [Fonctionnement d'un serveur de messagerie électronique] fateserveur_hebergement:serveur_mail:partie_1_postfix [2023/08/08 14:00] (Version actuelle) – modification externe 127.0.0.1
Ligne 7: Ligne 7:
 Pour pouvoir envoyer un courriel et le faire parvenir jusqu'à son destinataire, il vous faut 3 choses : Pour pouvoir envoyer un courriel et le faire parvenir jusqu'à son destinataire, il vous faut 3 choses :
   * Un MTA (Mail Transfer Agent ou Agent de Transfert du Courrier en français), Posftix dans notre cas. Il va se charger d'envoyer le courriel. Il utilise le protocole SMTP (Simple Mail Transfer Protocol ou Protocole Simple de Transfert de Courrier en français).   * Un MTA (Mail Transfer Agent ou Agent de Transfert du Courrier en français), Posftix dans notre cas. Il va se charger d'envoyer le courriel. Il utilise le protocole SMTP (Simple Mail Transfer Protocol ou Protocole Simple de Transfert de Courrier en français).
-  * un MDA (Mail Delivery Agent ou Agent de Distribution du Courrier en français), Dovecot dans notre cas. Il va se charger de remettre le courriel au destinataire. Il utilise le protocole POP (Post Office Protocol ou Protocole de Bureau de Poste en français) ou IMAP (Internet Message Access Protocol ou Protocole d'Accès au Courrier Électronique en français). +  * Un MDA (Mail Delivery Agent ou Agent de Distribution du Courrier en français), Dovecot dans notre cas. Il va se charger de remettre le courriel au destinataire. Il utilise le protocole POP (Post Office Protocol ou Protocole de Bureau de Poste en français) ou IMAP (Internet Message Access Protocol ou Protocole d'Accès au Courrier Électronique en français). 
   * Un MUA (Mail User Agent ou Agent Utilisateur de Courrier en français littéral), Thunderbird ou un webmail comme Roundcube par exemple. Il va se charger d'afficher le courriel à l'utilisateur.   * Un MUA (Mail User Agent ou Agent Utilisateur de Courrier en français littéral), Thunderbird ou un webmail comme Roundcube par exemple. Il va se charger d'afficher le courriel à l'utilisateur.
  
Ligne 14: Ligne 14:
 {{:serveur_hebergement:serveur_mail:pasted:20221103-163809.png}} {{:serveur_hebergement:serveur_mail:pasted:20221103-163809.png}}
  
-Pierre envoie donc un courriel via son adresse Orange à Alice qui a une adresse sur notre serveur, domaine.fr. Cet envoi se fait via un client, Thunderbird sur le schéma, qui va se connecter via le protocole SMTP au serveur SMTP d'Orange sur le port 465. Le serveur SMTP d'orange va se connecter à notre serveur SMTP, toujours via le protocole SMTP mais sur le port 25, qui va transmettre le courriel à notre serveur IMAP/POP qui va à son tour transmettre le courriel au client de Alice via le protocole IMAP, sur le port 993, ou POP, sur le port 995. +Pierre envoie donc un courriel via son adresse Orange à Alice qui a une adresse sur notre serveur, domaine.fr. Cet envoi se fait via un client, Thunderbird sur le schéma, qui va se connecter via le protocole SMTP au serveur SMTP d'Orange sur le port 465. Le serveur SMTP d'orange va se connecter à notre serveur SMTP, toujours via le protocole SMTP mais sur le port 25, qui va transmettre le courriel à notre serveur IMAP/POP qui va à son tour transmettre le courriel au client d’Alice via le protocole IMAP, sur le port 993, ou POP, sur le port 995. 
-Sur le schéma j'ai séparé Postfix et Dovecot dans la zone domaine.fr comme s'ils étaient sur deux serveurs distincts pour que ce soit plus clair, mais ils tourneront sur le même serveur et la communication entre les deux se fera donc en local.Voyons un peu plus en détails les protocoles utilisés.+Sur le schéma j'ai séparé Postfix et Dovecot dans la zone domaine.fr comme s'ils étaient sur deux serveurs distincts pour que ce soit plus clair, mais ils tourneront sur le même serveur et la communication entre les deux se fera donc en local.  
 +Pour faire une analogie, Postfix est l'équivalent d'un bureau de poste, Dovecot l'équivalent du facteur et Thunderbird l'équivalent de votre boite aux lettres. 
 +Voyons un peu plus en détails les protocoles utilisés.
  
 Le protocole SMTP est utilisé pour la connexion entre le client (Thunderbird) et le serveur SMTP (Postfix) mais également pour la communication entre deux serveurs SMTP.  Le protocole SMTP est utilisé pour la connexion entre le client (Thunderbird) et le serveur SMTP (Postfix) mais également pour la communication entre deux serveurs SMTP. 
Ligne 36: Ligne 38:
 ===== Pré-requis ===== ===== Pré-requis =====
  
-Vous avez besoin d'un certain nombre de choses pour faire tourner un serveur e-mail :+Vous avez besoin d'un certain nombre de choses pour faire tourner un serveur de messagerie électronique :
   * un serveur (serveur dédié, Raspberry Pi, etc) sous Linux (Debian dans mon cas)   * un serveur (serveur dédié, Raspberry Pi, etc) sous Linux (Debian dans mon cas)
   * un nom de domaine   * un nom de domaine
Ligne 68: Ligne 70:
 ===== Configuration ===== ===== Configuration =====
  
-Ouvrez le fichier /etc/postfix/main.cf+Ouvrez le fichier main.cf : 
 +<code bash>sudo nano /etc/postfix/main.cf</code>
  
 Changez la ligne "myhostname" et mettre comme valeur votre FQDN Changez la ligne "myhostname" et mettre comme valeur votre FQDN
Ligne 77: Ligne 80:
 <code bash>sudo hostnamectl set-hostname FQDN</code> <code bash>sudo hostnamectl set-hostname FQDN</code>
  
-Changez la ligne "mydestination" et mettre comme valeur localhost.$mydomain, localhost+Changez la ligne "mydestination" et mettre comme valeur localhost.$mydomain, localhost, FQDN (remplacez FQDN par le FQDN de votre serveur)
  
 Si pas de reverse DNS IPV6 ou pas d'IPV6, changer la ligne inet_protocols = all par inet_protocols = ipv4 Si pas de reverse DNS IPV6 ou pas d'IPV6, changer la ligne inet_protocols = all par inet_protocols = ipv4
  
 Configurez la partie TLS parameters comme suit : Configurez la partie TLS parameters comme suit :
-<code># TLS parameters +<code> 
-#Déclaration des clés de chiffrements +Paramètres TLS
-smtpd_tls_cert_file=/etc/letsencrypt/live/domaine.fr/fullchain.pem +
-smtpd_tls_key_file=/etc/letsencrypt/live/domaine.fr/privkey.pem   +
-smtp_tls_CAfile = /etc/ssl/certs/ca-certificates.crt+
  
-#Postfix server. Activation du chiffrement lors de la réception des e-mails (depuis le client ou un autre serveur e-mail)+#Postfix server. Activation du support du chiffrement lors de la réception des e-mails (depuis le client ou un autre serveur e-mail)
 smtpd_tls_security_level=may smtpd_tls_security_level=may
 smtpd_tls_loglevel = 1 smtpd_tls_loglevel = 1
 smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
 +smtpd_tls_cert_file=/etc/letsencrypt/live/siebert.ovh/fullchain.pem
 +smtpd_tls_key_file=/etc/letsencrypt/live/siebert.ovh/privkey.pem
 +smtpd_tls_CApath = /etc/ssl/certs
 +smtpd_tls_CAfile = /etc/letsencrypt/live/siebert.ovh/cert.pem
  
-#Postfix client. Activation du chiffrement lors de l'envoi des e-mails vers un autre serveur e-mail+#Postfix client. Activation du support du chiffrement lors de l'envoi des e-mails vers un autre serveur e-mail
 smtp_tls_security_level=may smtp_tls_security_level=may
 smtp_tls_loglevel = 1 smtp_tls_loglevel = 1
 smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
 +smtp_tls_cert_file=/etc/letsencrypt/live/siebert.ovh/fullchain.pem
 +smtp_tls_key_file=/etc/letsencrypt/live/siebert.ovh/privkey.pem
 +smtp_tls_CApath = /etc/ssl/certs
 +smtp_tls_CAfile = /etc/letsencrypt/live/siebert.ovh/cert.pem
  
 #Force l'utilisation des protocoles TSLv1.3 et TSLv1.2 uniquement (depuis Postfix 3.6, la syntaxe à utiliser est >=TLSv1.2) #Force l'utilisation des protocoles TSLv1.3 et TSLv1.2 uniquement (depuis Postfix 3.6, la syntaxe à utiliser est >=TLSv1.2)
Ligne 104: Ligne 112:
  
 Les lignes smtpd_tls_mandatory_protocols et smtpd_tls_mandatory_protocols ne servent que si smtpd_tls_security_level et smtp_tls_security_level ont pour valeur "encrypt". Les lignes smtpd_tls_mandatory_protocols et smtpd_tls_mandatory_protocols ne servent que si smtpd_tls_security_level et smtp_tls_security_level ont pour valeur "encrypt".
-Si smtpd_tls_security_level et smtp_tls_security_level ont pour valeur "encrypt", l'utilisation de StartTLS est rendu obligatoire pour la communication serveur-serveur (dans les deux sens) en cas d'envoi ou réception d'e-mail mais cette configuration est déconseillée car il y a encore de nombreux serveurs e-mail configurés sans support de TLS. Ce qui fait qu'avec l'option "encrypt" vous ne pourrez ni recevoir ni envoyer d'e-mail depuis/vers ces serveurs. La [[https://www.rfc-editor.org/rfc/rfc2487|RFC 2487]] spécifie d'ailleurs qu'un serveur SMTP public (dans le sens exposé à Internet) ne doit pas forcer l'utilisation de StartTLS. +Si smtpd_tls_security_level et smtp_tls_security_level ont pour valeur "encrypt", l'utilisation de StartTLS est rendu obligatoire pour la communication serveur-serveur (dans les deux sens) en cas d'envoi ou réception de courriels mais cette configuration est déconseillée car il y a encore de nombreux serveurs configurés sans support de TLS. Ce qui fait qu'avec l'option "encrypt" vous ne pourrez ni recevoir ni envoyer de courriels depuis/vers ces serveurs. La [[https://www.rfc-editor.org/rfc/rfc2487|RFC 2487]] spécifie d'ailleurs qu'un serveur SMTP public (dans le sens exposé à Internet) ne doit pas forcer l'utilisation de StartTLS. 
-Notez que même à mettant smtpd_tls_security_level à "may", la communication avec le client e-mail sera toujours chiffrée avec TLS implicite.+Notez que même à mettant smtpd_tls_security_level à "may", la communication avec le client sera toujours chiffrée avec TLS implicite.
  
-Ajoutez les lignes suivantes pour la gestion des adresses virtuelles avec Postfixadmin (voir [[serveur_hebergement:serveur_mail:partie_3_postfixadmin|Partie 3 : Postfixadmin]]) :+Ajoutez les lignes suivantes :
 <code> <code>
-virtual_mailbox_domains = proxy:mysql:/etc/postfix/sql/mysql_virtual_domains_maps.cf +# Envoie les courriels reçus à Dovecot
-virtual_mailbox_maps = +
-   proxy:mysql:/etc/postfix/sql/mysql_virtual_mailbox_maps.cf, +
-   proxy:mysql:/etc/postfix/sql/mysql_virtual_alias_domain_mailbox_maps.cf +
-virtual_alias_maps = +
-   proxy:mysql:/etc/postfix/sql/mysql_virtual_alias_maps.cf, +
-   proxy:mysql:/etc/postfix/sql/mysql_virtual_alias_domain_maps.cf, +
-   proxy:mysql:/etc/postfix/sql/mysql_virtual_alias_domain_catchall_maps.cf+
 virtual_transport = lmtp:unix:private/dovecot-lmtp virtual_transport = lmtp:unix:private/dovecot-lmtp
  
 +# Emplacement où seront stockés les courriels
 virtual_mailbox_base = /var/vmail virtual_mailbox_base = /var/vmail
-virtual_minimum_uid = 2000 
-virtual_uid_maps = static:2000 
-virtual_gid_maps = static:2000 
 </code> </code>
  
-Ouvrez le fichier /etc/postfix/master.cf et ajoutez les lignes suivantes :+Ouvrez le fichier master.cf : 
 +<code bash>sudo nano /etc/postfix/master.cf</code> 
 + 
 +Ajoutez les lignes suivantes :
 <code> <code>
 smtps     inet  n                               smtpd smtps     inet  n                               smtpd
Ligne 142: Ligne 144:
   * smtpd_tls_wrappermode : active TLS implicite au lieu de StartTLS   * smtpd_tls_wrappermode : active TLS implicite au lieu de StartTLS
   * smtpd_sasl_auth_enable : active l'authentification [[https://fr.wikipedia.org/wiki/Simple_Authentication_and_Security_Layer|SASL]]   * smtpd_sasl_auth_enable : active l'authentification [[https://fr.wikipedia.org/wiki/Simple_Authentication_and_Security_Layer|SASL]]
-  * smtpd_relay_restrictions : on restreint l'envoi d'e-mail via notre serveur qu'aux utilisateurs authentifiés et on rejette les autres. Ça évite que notre serveur se transforme en machine à spam +  * smtpd_relay_restrictions : on restreint l'envoi de courriels via notre serveur qu'aux utilisateurs authentifiés et on rejette les autres. Ça évite que notre serveur se transforme en machine à spam 
-  * smtpd_recipient_restrictions : on restreint l'acceptation des e-mails uniquement à destination des utilisateurs interne et des utilisateurs enregistrés, on rejette le reste.+  * smtpd_recipient_restrictions : on restreint l'acceptation des courriels uniquement à destination des utilisateurs interne et des utilisateurs enregistrés, on rejette le reste.
   * smtpd_sasl_type & smtpd_sasl_path : on utilise Dovecot pour l'authentification des utilisateurs.   * smtpd_sasl_type & smtpd_sasl_path : on utilise Dovecot pour l'authentification des utilisateurs.
  
Ligne 154: Ligne 156:
 On peut maintenant installer [[serveur_hebergement:serveur_mail:partie_2_dovecot|Dovecot]] On peut maintenant installer [[serveur_hebergement:serveur_mail:partie_2_dovecot|Dovecot]]
  
-Source : https://www.linuxbabe.com/mail-server/build-email-server-from-scratch-debian-postfix-smtp+Source :  
 +https://www.linuxbabe.com/mail-server/build-email-server-from-scratch-debian-postfix-smtp 
 +https://postfix.traduc.org/ 
 +https://workaround.org/ispmail
  • serveur_hebergement/serveur_mail/partie_1_postfix.1667554864.txt.gz
  • Dernière modification : 2023/08/08 14:01
  • (modification externe)