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
postfix [Le 06/10/2023, 14:10]
193.49.62.56 [https://www.instagram.com/lafilleauxcouleurs/]
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 2: Ligne 2:
  
 ---- ----
 +
 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… 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) ​======
  
 **Postfix** est l'​agent de transfert de courriel (MTA) par défaut d'​Ubuntu. **Postfix** est l'​agent de transfert de courriel (MTA) par défaut d'​Ubuntu.
Ligne 12: 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>À chaque lecture ​de ce siteon pine une daronne au hasard</​note>​ +<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 noviceje vous conseille d'utiliser root avec grande prudence, le forum est là en cas de problème.</​note>​ 
- +===== Pré-requis ​=====
-<note important>​C'​est ​reparti comme en 40</​note>​ +
- +
-===== Manger du foin nuit gravement à la santé ​=====+
    
   * Disposer des [[:​sudo|droits d'​administration]].   * Disposer des [[:​sudo|droits d'​administration]].
   * Disposer d'une connexion à Internet configurée et activée.   * Disposer d'une connexion à Internet configurée et activée.
-  * Connaitre Nassim FOIN le pointeur 
-  * Bz des chèvres comme Six 
-  * Voir mael parler au RT1 (filles) 
-  * Chevre du goulag 
-  * Lelièvre SJ 
-  
-===== Arrête de te branler Nassim ===== 
- 
  
 +===== 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 chiffrement 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.
Ligne 43: Ligne 34:
   sudo adduser postfix sasl   sudo adduser postfix sasl
  
-Pour configurer détails suivants (remplacez ​theofoin.fr par votre nom de domaine) :+Pour configurer ​postfix, tapez : 
 + 
 +  sudo dpkg-reconfigure postfix 
 + 
 +Lorsqu'​on vous les demande, entrez les détails suivants (remplacez ​server1.exemple.com ​par votre nom de domaine) :
  
    ​Internet Site    ​Internet Site
    NONE    NONE
-   theofoin.fr +   server1.exemple.com 
-   theofoin.fr, localhost.theofoin.fr, localhost+   server1.exemple.com, localhost.exemple.com, localhost
    No    No
    ​127.0.0.0/​8    ​127.0.0.0/​8
Ligne 58: Ligne 53:
   sudo postconf -e '​smtpd_sasl_local_domain ='   sudo postconf -e '​smtpd_sasl_local_domain ='
   sudo  postconf -e '​smtpd_sasl_auth_enable = yes'   sudo  postconf -e '​smtpd_sasl_auth_enable = yes'
-  sudo  postconf -e '​smtpd_sasl_security_options = noanonymouse+  sudo  postconf -e '​smtpd_sasl_security_options = noanonymous
-  sudo  postconf -e 'broken_sasl_auth_client ​= yes' +  sudo  postconf -e 'broken_sasl_auth_clients ​= yes' 
-  sudo   ​postconf -e '​smtpd_recipient_restrictions = permit_sasl_authenticate,permit_mynetwork,​reject_unauth_destination'​+  sudo   ​postconf -e '​smtpd_recipient_restrictions = permit_sasl_authenticated,permit_mynetworks,​reject_unauth_destination'​
   sudo  postconf -e '​inet_interfaces = all'   sudo  postconf -e '​inet_interfaces = all'
  
Ligne 68: Ligne 63:
   echo '​mech_list:​ plain login' >> /​etc/​postfix/​sasl/​smtpd.conf ​   echo '​mech_list:​ plain login' >> /​etc/​postfix/​sasl/​smtpd.conf ​
   exit   exit
-  sudo mkdir /etc/-rand /​dev/​urandom -out smtpd.key 2048+  sudo mkdir /etc/postfix/​ssl 
 +  cd /​etc/​postfix/​ssl/​ 
 +  sudo openssl genrsa -des3 -rand /​dev/​urandom -out smtpd.key 2048
   sudo openssl req -new -key smtpd.key -out smtpd.csr   sudo openssl req -new -key smtpd.key -out smtpd.csr
   sudo  openssl x509 -req -days 3650 -in smtpd.csr -signkey smtpd.key -out smtpd.crt   sudo  openssl x509 -req -days 3650 -in smtpd.csr -signkey smtpd.key -out smtpd.crt
   sudo openssl rsa -in smtpd.key -out smtpd.key.unencrypted   sudo openssl rsa -in smtpd.key -out smtpd.key.unencrypted
-  sudo mv -f smtpd.key.unencrypted smtpd.khey+  sudo mv -f smtpd.key.unencrypted smtpd.key
   sudo chmod 600 smtpd.key   sudo chmod 600 smtpd.key
   sudo 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 
Ligne 80: Ligne 77:
   sudo postconf -e '​smtpd_use_tls = yes'   sudo postconf -e '​smtpd_use_tls = yes'
   sudo postconf -e '​smtp_tls_note_starttls_offer = yes'   sudo postconf -e '​smtp_tls_note_starttls_offer = yes'
-  sudo postconf -e '​smtpd_tls_key_file = /​etc/​postfix/​ssl/​smtpd.khey'+  sudo postconf -e '​smtpd_tls_key_file = /​etc/​postfix/​ssl/​smtpd.key'
   sudo postconf -e '​smtpd_tls_cert_file = /​etc/​postfix/​ssl/​smtpd.crt'​   sudo postconf -e '​smtpd_tls_cert_file = /​etc/​postfix/​ssl/​smtpd.crt'​
   sudo postconf -e '​smtpd_tls_CAfile = /​etc/​postfix/​ssl/​cacert.pem'​   sudo postconf -e '​smtpd_tls_CAfile = /​etc/​postfix/​ssl/​cacert.pem'​
Ligne 87: Ligne 84:
   sudo postconf -e '​smtpd_tls_session_cache_timeout = 3600s'   sudo postconf -e '​smtpd_tls_session_cache_timeout = 3600s'
   sudo postconf -e '​tls_random_source = dev:/​dev/​urandom'​   sudo postconf -e '​tls_random_source = dev:/​dev/​urandom'​
-  sudo postconf -e '​myhostname = theofoin.fr' ​+  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 :
  
 <​file>​ <​file>​
-# See /+# See /usr/​share/​postfix/​main.cf.dist for a commented, more complete version 
 + 
 +smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu) 
 +biff = no
  
 # appending .domain is the MUA's job. # appending .domain is the MUA's job.
Ligne 100: Ligne 100:
 #​delay_warning_time = 4h #​delay_warning_time = 4h
  
-myhostname = theofoin.fr +myhostname = server1.example.com 
-alias_map ​= hash:/​etc/​aliases+alias_maps ​= hash:/​etc/​aliases
 alias_database = hash:/​etc/​aliases alias_database = hash:/​etc/​aliases
 myorigin = /​etc/​mailname myorigin = /​etc/​mailname
-mydestination = theofoin.fr, localhost.theofoin.fr, localhost+mydestination = server1.example.com, localhost.example.com, localhost
 relayhost = relayhost =
-mynetwork ​= 127.0.0.0/8+mynetworks ​= 127.0.0.0/8
 mailbox_size_limit = 0 mailbox_size_limit = 0
 recipient_delimiter = + recipient_delimiter = +
Ligne 117: Ligne 117:
 smtpd_tls_auth_only = no smtpd_tls_auth_only = no
 smtp_use_tls = yes smtp_use_tls = yes
-smtpd_u ​= /​etc/​postfix/​ssl/​smtpd.crt+smtpd_use_tls = yes 
 +smtp_tls_note_starttls_offer = yes 
 +smtpd_tls_key_file = /​etc/​postfix/​ssl/​smtpd.key 
 +smtpd_tls_cert_file ​= /​etc/​postfix/​ssl/​smtpd.crt
 smtpd_tls_CAfile = /​etc/​postfix/​ssl/​cacert.pem smtpd_tls_CAfile = /​etc/​postfix/​ssl/​cacert.pem
 smtpd_tls_loglevel = 1 smtpd_tls_loglevel = 1
Ligne 136: Ligne 139:
   sudo service postfix restart   sudo service postfix restart
  
-===+===== Authentification ===== 
 + 
 +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 152: Ligne 158:
 (problème de syntaxe sur l'​instruction précédente) (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.
 +
 +Pour ce faire décommentez la ligne <​code>​START=yes</​code>​ et modifiez la derniere ligne <​code>​OPTIONS="​-c -m /​var/​run/​saslauthd"</​code>​ comme cela: <​code>​OPTIONS="​-m /​var/​spool/​postfix/​var/​run/​saslauthd"</​code>​
 +
 +
  
 Ce qui donne : Ce qui donne :
Ligne 162: Ligne 172:
 # Youmust specify the authentication mechanisms youwish 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+# "​shadow" or "​sasldb",​ like this: 
 +# MECHANISMS="​pam shadow"​ 
 + 
 +MECHANISMS="​pam"​
  
 [...] [...]
Ligne 171: Ligne 184:
  
  
-<n'​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>​+<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. Dans ce cas, vous pourrez ajouter votre utilisateur avec la commande adduser</​note>​
  
 ===== Les tests ===== ===== Les tests =====
Ligne 180: Ligne 194:
   sudo service saslauthd start   sudo service saslauthd start
  
-Afin de vérifier que SM+Afin de vérifier que SMTP-AUTH et TLS fonctionnent correctement,​ tapez :\\ 
 +  telnet localhost 25 
 + 
 +Ensuite après avoir établi la connexion avec postfix tapez : 
 +  EHLO somename.tld
    
 Si vous voyez ces lignes Si vous voyez ces lignes
Ligne 189: Ligne 207:
 Pour retourner à l'​invite de commande, tapez : Pour retourner à l'​invite de commande, tapez :
   quit   quit
-nement, vous obtiendrez+ 
 + 
 +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."​   0: OK "​Success."​
 Sinon : Sinon :
Ligne 199: Ligne 222:
 Puis un restart du service Puis un restart du service
   sudo service saslauthd start   sudo service saslauthd start
-</​note>​ le serveur:\\+</​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//​.\\ 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 //>// Pour plus de clarté, j'ai laissé les retours que j'ai fait précéder de //>//
Ligne 209: Ligne 235:
 > 220 listes.mon_domaine.fr ESMTP Postfix (Debian/​GNU) > 220 listes.mon_domaine.fr ESMTP Postfix (Debian/​GNU)
 EHLO 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 DATA
 > 354 End data with <​CR><​LF>​.<​CR><​LF>​ > 354 End data with <​CR><​LF>​.<​CR><​LF>​
Ligne 218: Ligne 249:
 > Connection closed by foreign host. > Connection closed by foreign host.
 </​code>​ </​code>​
-Il ne reste plus+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 ===== 
 + 
 +Si vous avez envie d'​installer un serveur IMAP, la configuration avec **procmail** est un peu ardue. Vous pouvez [[:​tutoriel:​comment_installer_un_paquet|installer]] et utiliser **[[apt>​maildrop|maildrop]]** à la place. 
 Dans ''​main.cf'',​ il faudra alors modifier la ligne Dans ''​main.cf'',​ il faudra alors modifier la ligne
   mailbox_command = procmail -a "​$EXTENSION"​   mailbox_command = procmail -a "​$EXTENSION"​
Ligne 229: Ligne 264:
  
 ===== Bridage SMTP ===== ===== Bridage SMTP =====
- ont décidé de bloquer le port 25 en sortie (dans le sens "​Abonné -> Internet"​),​ utilisé par défaut par le protocole ​SMTPavec ​une Freebox, vous pouvez débloquer l'​envoi par le port 25 dans l'​interface de gestion :+ 
 +Pour lutter contre le SPAM engendré par les machines zombies (machines infectées par des virus servant de relais aux spammeurs), la plupart des FAI ont décidé de bloquer le port 25 en sortie (dans le sens "​Abonné -> Internet"​),​ utilisé par défaut par le protocole ​SMTP. Dans ce cas, le port 25 n'est ouvert que pour le serveur SMTP de votre FAI ( du type smtp.monprovider.com). 
 +Ceci empêche la mise en place d'un serveur SMTP chez soi (en tous cas pour l'​envoi vers Internet sans passer par le relais SMTP du provider). 
 +Ceci empêche également l'​envoi depuis votre ligne ADSL vers votre serveur hébergé sur Internet (de type Dedibox, OVH, etc.) 
 + 
 +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//.
  
-Chez Neuf, ce +Chez Neuf, ce filtrage est aussi actif. Pour changer les paramètres,​ allez dans l'​interface de gestion de votre Neuf Box, Puis dans //Réseau → Filtrage//, décochez la case //Autoriser l'​envoi de courriels uniquement par l'​intermédiaire des serveurs mail du groupe SFR//. 
 D'une manière générale, regardez les options de votre Box pour désactiver ce filtrage. Chez certains fournisseurs d'​accès à internet, la fonctionnalité n'est pas « débridable ». Une solution autre que de passer par le smtp de votre provider, est de ne pas passer par le port 25 pour contourner le filtrage mais ceci vous oblige donc a passer par un relais sous votre controle… D'une manière générale, regardez les options de votre Box pour désactiver ce filtrage. Chez certains fournisseurs d'​accès à internet, la fonctionnalité n'est pas « débridable ». Une solution autre que de passer par le smtp de votre provider, est de ne pas passer par le port 25 pour contourner le filtrage mais ceci vous oblige donc a passer par un relais sous votre controle…
 +
 +Pour modifier le port d'​Émission de votre serveur, dans /​etc/​postfix/​main.cf,​ modifier RELAYHOST comme ceci:
 +''​relayhost = [serveursmtp]:​port'' ​
 +( 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 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
Ligne 239: Ligne 284:
   587     ​inet ​   n       ​- ​      ​y ​      ​- ​      ​- ​      smtpd   587     ​inet ​   n       ​- ​      ​y ​      ​- ​      ​- ​      smtpd
         -o smtpd_proxy_ehlo=no         -o smtpd_proxy_ehlo=no
-        -o coehlo=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         -o content_filter=dksign:​[127.0.0.1]:​12028
 ===== État de la queue des messages ===== ===== État de la queue des messages =====
Ligne 245: Ligne 295:
 La commande suivante permet de connaître le status des messages : La commande suivante permet de connaître le status des messages :
 <​code>/​usr/​bin/​mailq</​code>​ <​code>/​usr/​bin/​mailq</​code>​
-mplacé ​par l'​identifiant correspondant au message.+ 
 +Pour plus de détails, on peut également consulter le fichier **/​var/​log/​mail.log** 
 + 
 +Pour supprimer un message de la queue : 
 +<​code>​postsuper -d queue_id</​code>​ 
 +où queue_id doit être remplacé ​par l'​identifiant correspondant au message.
  
 Pour supprimer tous les messages de la queue : Pour supprimer tous les messages de la queue :
-<​code>​postsupeaux ​: [[utilisateurs:​Phetu]],​ [[utilisateurs:​stephaneguedon|Stéphane Guedon]].//+<​code>​postsuper -d ALL</​code>​ 
 + 
 +=====Voir aussi===== 
 + 
 +  * [[http://​www.postfix.org/​|Site officiel]]. 
 +  * [[https://​postfix.traduc.org/​|Documentation de Postfix en français (non maintenue!)]]. 
 +  * 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]]. 
 +  * [[:​postfix_systeme_satellite| Système satellite pour Postfix]] 
 +---- 
 + 
 +//​Contributeurs principaux ​: [[utilisateurs:​Phetu]],​ [[utilisateurs:​stephaneguedon|Stéphane Guedon]].//
  • postfix.txt
  • Dernière modification: Le 06/10/2023, 14:14
  • par 193.32.126.227