Projet

Général

Profil

Actions

Postfix » Historique » Révision 65

« Précédent | Révision 65/79 (diff) | Suivant »
Patrice Nadeau, 2016-08-21 08:16


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.


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

zypper install postfix perl-Mail-SP
wget http://download.opensuse.org/repositories/devel:/languages:/perl/openSUSE_Leap_42.1/noarch/postfix-policyd-spf-perl-2.010-3.1.noarch.rpm
rpm -Uhv postfix-policyd-spf-perl-2.010-3.1.noarch.rpm
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

h2. Configuration de base

Si les courriels doivent sortir via un relais sur un autre serveur SMTP, modifier le fichier /etc/postfix/main.cf :

Inscrire votre serveur SMTP de sortie

relayhost = smtp_server

Spécifier toutes les interfaces

inet_interfaces = all

Choisir une des les lignes suivantes

# DNS server : 
mydestination = $myhostname, localhost.$mydomain, $mydomain
# DNS forwarder pfSense :
mydestination = $myhostname, localhost.$mydomain

Permettre aux machines du réseau local, l'utilisation du serveur

smtpd_client_restrictions = permit_mynetworks

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

smtpd_recipient_restrictions =
check_sender_access hash: /etc/postfix/sender_access

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 :

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

Relancer :

postmap /etc/postfix/sender_access
postfix reload

h3. Utilisation de services de « blacklist » internet :

Avant d'utiliser ses services, vérifier si l'usager envisagé est permis :

Modifier le fichier /etc/postfix/main.cf :

smtpd_recipient_restrictions =
permit_mynetworks,
reject_unauth_destination,
reject_rbl_client zen.spamhaus.org,
reject_rbl_client b.barracudacentral.org,
permit

Relire la configuration

systemctl reload postix

h3. Utilisation des enregistrements SPF lors de la réception de courriel

Modifier le fichier /etc/postfix/main.cf et ajouter à la suite de la ligne smtpd_recipient_restrictions :

check_policy_service unix:private/policy

Modifier le fichier_/etc/postfix/master.cf_ eta jouter la ligne :

policy unix - n n - 0 spawn user=nobody argv=/usr/bin/perl /usr/lib/policyd-spf-perl

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 :

h2. TLS

Site internet pour vérifier la configuration TLS :

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.

h3. Préalable

Dans le fichier /etc/postfix/master.cf, enlever le commentaire au début de la ligne

tlsmgr unix - - n 1000? 1 tlsmgr

Relire la configuration

systemctl reload postfix

h3. De Postfix vers un autre serveur SMTP

Dans le fichier /etc/postfix/mainc.cf

Utilise l'encryption si disponible

smtp_tls_security_level = may

Ajoute les messages TLS au journal

smtp_tls_loglevel = 1

Relire la configuration

systemctl reload postfix

h3. D'un client vers Postfix

Voir #54

Si un certificat externe n'est pas disponible, en généré un local :

cd /etc/postfix
openssl req -new -outform PEM -out smtpd.cert -newkey rsa:2048 -nodes -keyout smtpd.key -keyform PEM -days 365 -x509

Dans le fichier /etc/postfix/main./cf

Utilise l'encryption si disponible

smtpd_tls_security_level = may

Ajoute les messages TLs au journal

smtpd_tls_loglevel = 1

Fichiers du certificat

smtpd_tls_key_file = /etc/postfix/smtpd.key
smtpd_tls_cert_file = /etc/postfix/smtpd.cert

Relire la configuration

systemctl reload postfix.service

Si le serveur est disponible à partir d'internet, on peux faire un test avec https://starttls.info/

h2. Domaines supplémentaires

Voir #55

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

disable_dns_lookups = yes

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

postmap /etc/postfix/relay

Mis à jour par Patrice Nadeau il y a environ 8 ans · 65 révisions