Projet

Général

Profil

Postfix » Historique » Révision 37

Révision 36 (Patrice Nadeau, 2015-08-10 14:54) → Révision 37/79 (Patrice Nadeau, 2015-08-10 14:57)

h1. Postfix 

 > Issue : #16 

 http://www.postfix.org 

 Logiciel de courrier électronique permettant, le transfert de courrier électronique (Message Transfert Agent). 

 Souvent installé de base pour l’envoie des message du serveur à une adresse externe.  

 ---- 

 {{toc}} 

 Si le serveur doit envoyer et recevoir des messages de et vers l’Internet, les items suivant sont obligatoire : 
 * Domaine : Un nom de domaine enregistrer et sa gestion disponible 
 * MX records : pour permettre la réception de courriel. 
 * SPF records : pour permettre l’envoie de messages sans être bannis par les « reverse lookup ». 

 Un serveur de relais (SMTP) externe seras nécessaire pour envoyer des courriels vers l’Internet si le port 25 est bloqué en entré (la majorité des cas). 

 Les fichiers de configuration sont : 
 * _/etc/postfix/master.cf_ 
 * _/etc/postfix/main.cf_ 

 h2. Installation 

 <pre><code class="bash"> 
 zypper install postfix 
 systemctl enable postfix 
 systemctl start postfix 
 # Ouvrir dans le pare-feu seulement si le serveur doit recevoir des courriels 
 yast firewall services add service=service:smtp zone=EXT 
 </code></pre> 

 h2. Configuration 

 Si les courriels doivent sortir via un relais sur un autre serveur SMTP, modifier le fichier _/etc/postfix/main.cf_ : 
 <pre><code class="bash"> 
 # Inscrire votre serveur SMTP de sortie 
 relayhost = smtp_server 
 # Spécifier toutes les interfaces 
 inet_interfaces = all 
 # A la ligne mydestination, ajouter 
 $mydomain 
 # Permettre aux machines du réseau local, l'utilisation du serveur 
 smtpd_client_restrictions = permit_mynetworks 
 </code></pre> 
 > La ligne myhostname DOIT être la même que l’enregistrement DNS de type MX sur internet pour ce domaine. 

 h2. Création de «blacklist» et de «whitelist». 

 Informations provenant de : http://www.postfix.org/RESTRICTION_CLASS_README.html 

 Fichier _/etc/postfix/main.cf_ 
 <pre><code class="bash"> 
 smtpd_recipient_restrictions = 
 check_sender_access hash: /etc/postfix/sender_access 
 </code></pre> 

 Créer un fichier _/etc/postfix/sender_access_. 
 Placer à l’intérieur, l’adresse de courriel, le nom de domaine ou l’adresse IP avec l’une des options : 
 * OK 
 * REJECT 

 Modifier le fichier _/etc/postfix/sender_access_ : 
 <pre><code class="bash"> 
 # myfriend.com OK 
 # myennemies.com REJECT 
 # myfriend@example.com OK 
 # junk@spam.com REJECT 
 # marketing@ REJECT 
 # theboss@ OK 
 # deals.marketing.com REJECT 
 # somedomain.com OK 
 101.15.251.176 REJECT 
 </code></pre> 

 Relancer : 
 <pre><code class="bash"> 
 postmap /etc/postfix/sender_access 
 postfix reload 
 </code></pre> 

 h3. Utilisation de services de « blacklist » internet : 

 Modifier le fichier _/etc/postfix/main.cf_ : 
 <pre><code class="bash"> 
 smtpd_recipient_restrictions = reject_rbl_client zen.spamhaus.org, reject_rhsbl_helo dbl.spamhaus.org, reject_rhsbl_sender dbl.spamhaus.org 
 </code></pre> 

 Relire la configuration 
 <pre><code class="bash"> 
 systemctl reload postix 
 </code></pre> 

 h3. Alias 

 Usagers systèmes devant être redirigé vers des comptes utilisateurs réel. 

 Les ajouter dans le fichier _/etc/postfix/aliases_ 

 Lancer la commande _newaliases_ pour activer les changements. 


 h3. Options courantes 

 Dans _main.cf_ :  
 * *message_size_limit* : 

 h2. Entrés DNS 

 h3. A record 

 h3. MX record 

 h3. SPF record 

 Ajouter ceux du fournisseur internet (le fournisseur et et tous ses abonnées pourront "se faire passer" pour le domaine) 

 h2. Test  

 h3. SPF 

 Envoyer un courriel à une des adresses suivantes :  
 * check-auth@verifier.port25.com  
 * check-auth2@verifier.port25.com 

 h3. TLS 

 Site internet pour vérifier la configuration TLS : 
 * Envoie : https://www.checktls.com/perl/TestSender.pl 
 * Réception : https://www.checktls.com/perl/TestReceiver.pl 

 2 paramètres sont utilisés : 
 * *smtp_tls_security_level* : En envoie vers un autre serveur SMTP 
 * *smtpd_tls_security_level* : En réception d'un client 

 Les valeurs suivantes peuvent être utilisées : 
 * *none* : TLs n'est pas utilisé 
 * *may* : TLS est utilisé annoncé au client distant mais n'est pas obligatoire (Opportunistic) 
 * *encrypt* : TLS DOIT être utilisé. Selon le "RFC 2487":http://tools.ietf.org/html/rfc2487, cette option ne devrait pas être utilisée avec des serveur publiques. 

 

 h4. De Postfix vers un autre serveur SMTP 

 Dans le fichier _/etc/postfix/mainc.cf_ 
 <pre><code class="bash"> 
 # Utilise l'encryption si disponible 
 smtp_tls_security_level = may 
 # Ajoute les messages TLs au journal 
 smtp_tls_loglevel = 1 
 </code></pre> 

 Relire la configuration 
 <pre><code class="bash"> 
 systemctl reload postfix 
 </code></pre> 

 

 h4. D'un client vers Postfix 

 > Voir #54 

 Dans le fichier _/etc/postfix/main./cf_ 
 <pre><code class="bash"> 
 # Utilise l'encryption si disponible 
 smtp_tls_security_level = may 
 # Ajoute les messages TLs au journal 
 smtp_tls_loglevel = 1 
 </code></pre> 

 Relire la configuration Les valeurs suivante peuvent être utiliser 
 <pre><code class="bash"> * *none* : TLs n'est pas utilisé 
 systemctl reload postfix * *may* : TLS est utilisé annoncé au client distant mais n'est pas obligatoire (Opportunistic) 
 </code></pre> 


 * *encrypt* : TLS DOIT être utilisé. Selon le "RFC 2487":http://tools.ietf.org/html/rfc2487, cette option ne devrait pas être utilisée avec des serveur publiques. 
 > Voir #54 

 h2. Dépannage 

 La commande *mailq* permet de voir les requêtes en attentes. 

 h3. Messages ne s'envoient pas 

 > Vu sur une nouvelle installation openSUSE 13.2 

 La commande _postqueue -p_ affiche : *address resolver failure* 

 Modififer le fichier */etc/postfix/main.cf* 
 <pre><code class="bash"> 
 disable_dns_lookups = yes 
 </code></pre> 

 h3. Messages *error: open database /etc/postfix/relay.db: No such file or directory* 

 > Vu sur une nouvelle installation openSUSE 13.2 

 Exécuter la commande 
 <pre><code class="bash"> 
 postmap /etc/postfix/relay 
 </code></pre>