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
postfix [Le 06/10/2012, 16:13]
89.170.122.81 [Configuration]
postfix [Le 06/10/2023, 14:14] (Version actuelle)
193.32.126.227 ancienne révision (Le 28/09/2023, 16:05) restaurée
Ligne 1: Ligne 1:
-{{tag>Hardy serveur courriel BROUILLON}}+{{tag>Xenial ​serveur courriel BROUILLON}}
  
 ---- ----
 +
 +Voir [[:Comment configurer sa distribution de courriels systèmes MTA|Comment configurer sa distribution de courriels systèmes MTA ?]] qui se propose de reprendre cette partie pour postfix…
  
 ====== Postfix : agent de transfert de courriel (SMTP) ====== ====== Postfix : agent de transfert de courriel (SMTP) ======
Ligne 11: Ligne 13:
 Cette page décrit son installation et sa configuration pour en faire un serveur SMTP utilisant une connexion sécurisée. Cette page décrit son installation et sa configuration pour en faire un serveur SMTP utilisant une connexion sécurisée.
  
-<note warning> +<note warning>La commande ''​sudo'' ​ne prend pas en charge l'​intégralité des variables ​d'environnement et est donc fortement déconseillée sur les machines"​root" ​en revanche vous accorde tous les droits systèmes mais une faute de frappe peut engendrer la perte du système. Si vous êtes novice, je vous conseille d'​utiliser root avec grande prudence, le forum est là en cas de problème.</​note>​ 
-Les commandes fournies doivent être exécutées en tant que root pour fonctionner,​ ce qui est vivement déconseillé. +===== Pré-requis ===== 
-Il faudrait plutôt préfixer les commandes par sudo, mais cela ne marche ​pas pour certaines ​d'entre elles, qui nécessitent une adaptation. +  
-Je suis en train de tenter l'​adaptation, je ferai la modif si cela fonctionne ​en bout de course... +  * Disposer des [[:​sudo|droits d'​administration]]. 
-</​note>​+  * Disposer d'une connexion à Internet configurée et activée. 
 ===== Installation ===== ===== Installation =====
  
-Nous allons configurer Postfix pour être utilisé avec SASL, qui va assurer l'​authentification SMTP (pour éviter que des spammeurs utilisent votre serveur pour envoyer du spam), ainsi qu'​un ​cryptage ​via SSL/TLS.+Nous allons configurer Postfix pour être utilisé avec SASL, qui va assurer l'​authentification SMTP (pour éviter que des spammeurs utilisent votre serveur pour envoyer du spam), ainsi qu'​un ​chiffrement ​via SSL/TLS.
  
 Pour installer Postfix avec SMTP-AUTH et TLS  : Pour installer Postfix avec SMTP-AUTH et TLS  :
  
-====Hardy==== 
-[[:​tutoriel:​comment_installer_un_paquet|Installez les paquets]] **[[apt>​libdb4.2,​libdb4.2-util,​postfix,​procmail,​sasl2-bin|libdb4.2 libdb4.2-util postfix procmail sasl2-bin]]**. 
- 
-====Lucid et versions ultérieures==== 
- 
-[[:​tutoriel:​comment_installer_un_paquet|Installez les paquets]] **[[apt>​libdb4.8,​db4.8-util,​postfix,​procmail,​sasl2-bin|libdb4.8 db4.8-util postfix procmail sasl2-bin]]**. 
  
 +[[:​tutoriel:​comment_installer_un_paquet|Installez les paquets]] **[[apt>​libdb5.1,​postfix,​procmail,​sasl2-bin|libdb5.1 postfix procmail sasl2-bin]]**.
  
 ===== Configuration ===== ===== Configuration =====
Ligne 53: Ligne 51:
 Ensuite entrez les commandes suivantes : Ensuite entrez les commandes suivantes :
  
-  postconf -e '​smtpd_sasl_local_domain =' +  ​sudo postconf -e '​smtpd_sasl_local_domain =' 
-  postconf -e '​smtpd_sasl_auth_enable = yes' +  ​sudo ​ ​postconf -e '​smtpd_sasl_auth_enable = yes' 
-  postconf -e '​smtpd_sasl_security_options = noanonymous'​ +  ​sudo ​ ​postconf -e '​smtpd_sasl_security_options = noanonymous'​ 
-  postconf -e '​broken_sasl_auth_clients = yes' +  ​sudo ​ ​postconf -e '​broken_sasl_auth_clients = yes' 
-  postconf -e '​smtpd_recipient_restrictions = permit_sasl_authenticated,​permit_mynetworks,​reject_unauth_destination'​ +  ​sudo   postconf -e '​smtpd_recipient_restrictions = permit_sasl_authenticated,​permit_mynetworks,​reject_unauth_destination'​ 
-  postconf -e '​inet_interfaces = all'+  ​sudo ​ ​postconf -e '​inet_interfaces = all'
  
-  touch /​etc/​postfix/​sasl/​smtpd.conf+  ​sudo  ​touch /​etc/​postfix/​sasl/​smtpd.conf 
 +  sudo su
   echo '​pwcheck_method:​ saslauthd'​ >> /​etc/​postfix/​sasl/​smtpd.conf   echo '​pwcheck_method:​ saslauthd'​ >> /​etc/​postfix/​sasl/​smtpd.conf
   echo '​mech_list:​ plain login' >> /​etc/​postfix/​sasl/​smtpd.conf ​   echo '​mech_list:​ plain login' >> /​etc/​postfix/​sasl/​smtpd.conf ​
-   +  ​exit 
-  mkdir /​etc/​postfix/​ssl+  ​sudo mkdir /​etc/​postfix/​ssl
   cd /​etc/​postfix/​ssl/​   cd /​etc/​postfix/​ssl/​
-  openssl genrsa -des3 -rand /etc/hosts -out smtpd.key ​1024 +  ​sudo openssl genrsa -des3 -rand /dev/urandom ​-out smtpd.key ​2048 
-  chmod 600 smtpd.key +  ​sudo openssl req -new -key smtpd.key -out smtpd.csr 
-  openssl req -new -key smtpd.key -out smtpd.csr +  ​sudo ​ ​openssl x509 -req -days 3650 -in smtpd.csr -signkey smtpd.key -out smtpd.crt 
-  openssl x509 -req -days 3650 -in smtpd.csr -signkey smtpd.key -out smtpd.crt +  ​sudo openssl rsa -in smtpd.key -out smtpd.key.unencrypted 
-  openssl rsa -in smtpd.key -out smtpd.key.unencrypted +  ​sudo mv -f smtpd.key.unencrypted smtpd.key 
-  mv -f smtpd.key.unencrypted smtpd.key +  ​sudo chmod 600 smtpd.key 
-  openssl req -new -x509 -extensions v3_ca -keyout cakey.pem -out cacert.pem -days 3650 +  sudo openssl req -new -x509 -extensions v3_ca -keyout cakey.pem -out cacert.pem -days 3650 
   ​   ​
-  postconf -e '​smtpd_tls_auth_only = no' +  ​sudo postconf -e '​smtpd_tls_auth_only = no' 
-  postconf -e '​smtp_use_tls = yes' +  ​sudo postconf -e '​smtp_use_tls = yes' 
-  postconf -e '​smtpd_use_tls = yes' +  ​sudo postconf -e '​smtpd_use_tls = yes' 
-  postconf -e '​smtp_tls_note_starttls_offer = yes' +  ​sudo postconf -e '​smtp_tls_note_starttls_offer = yes' 
-  postconf -e '​smtpd_tls_key_file = /​etc/​postfix/​ssl/​smtpd.key'​ +  ​sudo postconf -e '​smtpd_tls_key_file = /​etc/​postfix/​ssl/​smtpd.key'​ 
-  postconf -e '​smtpd_tls_cert_file = /​etc/​postfix/​ssl/​smtpd.crt'​ +  ​sudo postconf -e '​smtpd_tls_cert_file = /​etc/​postfix/​ssl/​smtpd.crt'​ 
-  postconf -e '​smtpd_tls_CAfile = /​etc/​postfix/​ssl/​cacert.pem'​ +  ​sudo postconf -e '​smtpd_tls_CAfile = /​etc/​postfix/​ssl/​cacert.pem'​ 
-  postconf -e '​smtpd_tls_loglevel = 1' +  ​sudo postconf -e '​smtpd_tls_loglevel = 1' 
-  postconf -e '​smtpd_tls_received_header = yes' +  ​sudo postconf -e '​smtpd_tls_received_header = yes' 
-  postconf -e '​smtpd_tls_session_cache_timeout = 3600s'​ +  ​sudo postconf -e '​smtpd_tls_session_cache_timeout = 3600s'​ 
-  postconf -e '​tls_random_source = dev:/​dev/​urandom'​ +  ​sudo postconf -e '​tls_random_source = dev:/​dev/​urandom'​ 
-  postconf -e '​myhostname = server1.example.com' ​+  ​sudo postconf -e '​myhostname = server1.example.com' ​
   ​   ​
 [[:​tutoriel:​comment_modifier_un_fichier|Éditez le fichier]] __/​etc/​postfix/​main.cf__ qui doit ressembler à ceci : [[:​tutoriel:​comment_modifier_un_fichier|Éditez le fichier]] __/​etc/​postfix/​main.cf__ qui doit ressembler à ceci :
Ligne 129: Ligne 128:
 </​file>​ </​file>​
  
-N'​oubliez pas de donner un myorigin ​correct. Les serveurs destinataires vont en effet tester ce paramètre. Ils vérifieront dans les serveurs DNS si cette adresse existe bien !+N'​oubliez pas de donner un mydestination ​correct. Les serveurs destinataires vont en effet tester ce paramètre. Ils vérifieront dans les serveurs DNS si cette adresse existe bien !
  
 D'​autre part, vérifiez aussi que votre ligne internet accepte les connexions smtp sortantes ! D'​autre part, vérifiez aussi que votre ligne internet accepte les connexions smtp sortantes !
Ligne 136: Ligne 135:
  
   sudo /​etc/​init.d/​postfix restart   sudo /​etc/​init.d/​postfix restart
 +  ​
 +ou
 +  sudo service postfix restart
  
 ===== Authentification ===== ===== Authentification =====
Ligne 141: Ligne 143:
 L'​authentification utilise **saslauthd**. L'​authentification utilise **saslauthd**.
  
-NB: Pour installer **saslauthd** utiliser la commande suivante :        +NB: Pour installer **saslauthd** utiliser la commande suivante :
 <​code>​sudo apt-get install libsasl2-modules libsasl2-modules-sql libgsasl7 libauthen-sasl-cyrus-perl sasl2-bin libpam-mysql</​code>​ <​code>​sudo apt-get install libsasl2-modules libsasl2-modules-sql libgsasl7 libauthen-sasl-cyrus-perl sasl2-bin libpam-mysql</​code>​
  
Ligne 149: Ligne 151:
   mkdir -p /​var/​spool/​postfix/​var/​run/​saslauthd   mkdir -p /​var/​spool/​postfix/​var/​run/​saslauthd
   rm -fr /​var/​run/​saslauthd   rm -fr /​var/​run/​saslauthd
 +  ln -s /​var/​spool/​postfix/​var/​run/​saslauthd /​var/​run/​saslauthd 
 +  chown -R root:sasl /​var/​spool/​postfix/​var/​ 
 +  chmod 710 /​var/​spool/​postfix/​var/​run/​saslauthd 
 +  adduser postfix sasl 
 +   
 +(problème de syntaxe sur l'​instruction précédente)
 Maintenant [[:​tutoriel:​comment_modifier_un_fichier|éditez le fichier]] ​ __/​etc/​default/​saslauthd__ pour y activer saslauthd. Maintenant [[:​tutoriel:​comment_modifier_un_fichier|éditez le fichier]] ​ __/​etc/​default/​saslauthd__ pour y activer saslauthd.
  
Ligne 163: Ligne 170:
 [...] [...]
  
-You must specify the authentication mechanisms ​you wish to use.+Youmust ​specify the authentication mechanisms ​youwish ​to use.
 # This defaults to "​pam"​ for PAM support, but may also include # This defaults to "​pam"​ for PAM support, but may also include
 # "​shadow"​ or "​sasldb",​ like this: # "​shadow"​ or "​sasldb",​ like this:
Ligne 178: Ligne 185:
  
 <note tip>Si vous préférez, vous pouvez utiliser **shadow** au lieu de **pam**. <note tip>Si vous préférez, vous pouvez utiliser **shadow** au lieu de **pam**.
-Ceci utilisera **MD5** au lieu de **password** et le rendra parfaitement sécurisé. Le nom d'​utilisateur et le mot de passe requis pour l'​authentification sera le même que pour les utilisateurs de votre système.</​note>​+Ceci utilisera **MD5** au lieu de **password** et le rendra parfaitement sécurisé. Le nom d'​utilisateur et le mot de passe requis pour l'​authentification sera le même que pour les utilisateurs de votre système. ​Dans ce cas, vous pourrez ajouter votre utilisateur avec la commande adduser</​note>​
  
 ===== Les tests ===== ===== Les tests =====
Ligne 184: Ligne 191:
 Démarrez //​saslauthd//​ :\\ Démarrez //​saslauthd//​ :\\
   sudo /​etc/​init.d/​saslauthd start   sudo /​etc/​init.d/​saslauthd start
 +ou
 +  sudo service saslauthd start
  
 Afin de vérifier que SMTP-AUTH et TLS fonctionnent correctement,​ tapez :\\ Afin de vérifier que SMTP-AUTH et TLS fonctionnent correctement,​ tapez :\\
Ligne 199: Ligne 208:
   quit   quit
  
 +
 +Vous pouvez également tester l'​auhtentification sasl avec la commande testsalsauthd
 +  testsaslauthd -u utilisateur -p password
 +  ​
 +En cas de bon fonctionnement,​ vous obtiendrez
 +  0: OK "​Success."​
 +Sinon :
 +  0: NO "​authentication failed"​
 +
 +<​note>​
 +Sur Ubuntu 18.04, l'​erreur //connect() : Permission denied// a ete resolu en tapant la commande:
 +  sudo dpkg-statoverride --force --update --add root sasl 755 /​var/​spool/​postfix/​var/​run/​saslauthd
 +Puis un restart du service
 +  sudo service saslauthd start
 +</​note>​
 +
 +==== Envoi d'un email ====
 +En ligne de commande sur le serveur:\\
 +Il faut évidemment remplacer //​listes.mon_domaine.fr//​ par votre //nom de domaine//, //​mon_email_expediteur@mon_fai.fr//​ et //​email_destinataire@fai.fr//​.\\
 +Pour plus de clarté, j'ai laissé les retours que j'ai fait précéder de //>//
 +<​code>​
 +telnet localhost 25
 +> Trying ::1...
 +> Connected to localhost.
 +> Escape character is '​^]'​.
 +> 220 listes.mon_domaine.fr ESMTP Postfix (Debian/​GNU)
 +EHLO
 +> 501 Syntax: EHLO hostname
 +MAIL FROM: mon_email_expediteur@mon_fai.fr
 +> 250 2.1.0 Ok
 +RCPT TO: email_destinataire@fai.fr
 +> 250 2.1.5 Ok
 +DATA
 +> 354 End data with <​CR><​LF>​.<​CR><​LF>​
 +test envoi email
 +.
 +> 250 2.0.0 Ok: queued as 941E5440B91
 +quit
 +> 221 2.0.0 Bye
 +> Connection closed by foreign host.
 +</​code>​
 +Il ne reste plus qu'à relever votre boîte de messagerie //​email_destinataire@fai.fr//​ afin de vérifier si le mail a été renvoyé.
 ===== Pour aller plus loin ===== ===== Pour aller plus loin =====
  
Ligne 218: Ligne 269:
 Ceci empêche également l'​envoi depuis votre ligne ADSL vers votre serveur hébergé sur Internet (de type Dedibox, OVH, etc.) Ceci empêche également l'​envoi depuis votre ligne ADSL vers votre serveur hébergé sur Internet (de type Dedibox, OVH, etc.)
  
-Si vous etes abonnés Free avec une Freebox, vous pouvez débloquer l'​envoi par le port 25 dans l'​interface de gestion :+Si vous êtes abonnés Free avec une Freebox, vous pouvez débloquer l'​envoi par le port 25 dans l'​interface de gestion :
 //​Fonctionnalités optionnelles de la Freebox → Autres fonctions → Blocage SMTP sortant//. //​Fonctionnalités optionnelles de la Freebox → Autres fonctions → Blocage SMTP sortant//.
  
Ligne 229: Ligne 280:
 ( EX : ''​relayhost = [smtp.orange-business.com]:​587''​) ( EX : ''​relayhost = [smtp.orange-business.com]:​587''​)
  
 +Il est également possible d'​utiliser le port 587 en lieu et place du port 25, pour cela, éditer le fichier /​etc/​postfix/​master.cf et ajoutez
 +
 +  587     ​inet ​   n       ​- ​      ​y ​      ​- ​      ​- ​      smtpd
 +        -o smtpd_proxy_ehlo=no
 +        -o content_filter=dksign:​[127.0.0.1]:​12028
 +
 +juste en dessous de votre ligne smtp
 +
 +  smtp      inet  n       ​- ​      ​- ​      ​- ​      ​- ​      smtpd
 +        -o smtpd_proxy_ehlo=no
 +        -o content_filter=dksign:​[127.0.0.1]:​12028
 ===== État de la queue des messages ===== ===== État de la queue des messages =====
  
Ligne 246: Ligne 308:
  
   * [[http://​www.postfix.org/​|Site officiel]].   * [[http://​www.postfix.org/​|Site officiel]].
-  * [[http://​postfix.traduc.org/​|Documentation de Postfix en français]]. +  * [[https://​postfix.traduc.org/​|Documentation de Postfix en français ​(non maintenue!)]]. 
-  * Basé sur [[http://​wiki.ubuntu.com/​Postfix]].+  * Basé sur [[https://​wiki.ubuntu.com/​Postfix]].
   * [[tutoriel:​comment_soumettre_un_probleme_postfix_sur_le_forum|Comment soumettre un problème Postfix sur le forum]].   * [[tutoriel:​comment_soumettre_un_probleme_postfix_sur_le_forum|Comment soumettre un problème Postfix sur le forum]].
   * [[:​postfix_systeme_satellite| Système satellite pour Postfix]]   * [[:​postfix_systeme_satellite| Système satellite pour Postfix]]
  • postfix.1349532835.txt.gz
  • Dernière modification: Le 06/10/2012, 16:13
  • par 89.170.122.81