Projet

Général

Profil

Postfix » Historique » Version 55

Patrice Nadeau, 2016-06-09 18:24

1 13 Patrice Nadeau
h1. Postfix
2 1 Patrice Nadeau
3 12 Patrice Nadeau
> Issue : #16
4
5 4 Patrice Nadeau
http://www.postfix.org
6 1 Patrice Nadeau
7
Logiciel de courrier électronique permettant, le transfert de courrier électronique (Message Transfert Agent).
8
9
Souvent installé de base pour l’envoie des message du serveur à une adresse externe. 
10 14 Patrice Nadeau
11
----
12
13
{{toc}}
14
15 5 Patrice Nadeau
Si le serveur doit envoyer et recevoir des messages de et vers l’Internet, les items suivant sont obligatoire :
16
* Domaine : Un nom de domaine enregistrer et sa gestion disponible
17 1 Patrice Nadeau
* MX records : pour permettre la réception de courriel.
18 5 Patrice Nadeau
* SPF records : pour permettre l’envoie de messages sans être bannis par les « reverse lookup ».
19 1 Patrice Nadeau
20 21 Patrice Nadeau
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).
21 1 Patrice Nadeau
22
Les fichiers de configuration sont :
23 5 Patrice Nadeau
* _/etc/postfix/master.cf_
24
* _/etc/postfix/main.cf_
25
26 13 Patrice Nadeau
h2. Installation
27 5 Patrice Nadeau
28
<pre><code class="bash">
29 50 Patrice Nadeau
zypper install postfix perl-Mail-SP
30
wget http://download.opensuse.org/repositories/devel:/languages:/perl/openSUSE_Leap_42.1/noarch/postfix-policyd-spf-perl-2.010-3.1.noarch.rpm
31
rpm -Uhv postfix-policyd-spf-perl-2.010-3.1.noarch.rpm
32 15 Patrice Nadeau
systemctl enable postfix
33
systemctl start postfix
34 17 Patrice Nadeau
# Ouvrir dans le pare-feu seulement si le serveur doit recevoir des courriels
35 22 Patrice Nadeau
yast firewall services add service=service:smtp zone=EXT
36 5 Patrice Nadeau
</code></pre>
37
38 42 Patrice Nadeau
h2. Configuration de base
39 5 Patrice Nadeau
40 21 Patrice Nadeau
Si les courriels doivent sortir via un relais sur un autre serveur SMTP, modifier le fichier _/etc/postfix/main.cf_ :
41 5 Patrice Nadeau
<pre><code class="bash">
42
# Inscrire votre serveur SMTP de sortie
43
relayhost = smtp_server
44
# Spécifier toutes les interfaces
45
inet_interfaces = all
46 55 Patrice Nadeau
# DNS server : 
47
mydestination = $myhostname, localhost.$mydomain, $mydomain
48
# DNS forwarder pfSense :
49
mydestination = $myhostname, localhost.$mydomain
50 5 Patrice Nadeau
# Permettre aux machines du réseau local, l'utilisation du serveur
51
smtpd_client_restrictions = permit_mynetworks
52
</code></pre>
53
> La ligne myhostname DOIT être la même que l’enregistrement DNS de type MX sur internet pour ce domaine.
54 1 Patrice Nadeau
55 13 Patrice Nadeau
h2. Création de «blacklist» et de «whitelist».
56 1 Patrice Nadeau
57 6 Patrice Nadeau
Informations provenant de : http://www.postfix.org/RESTRICTION_CLASS_README.html
58 1 Patrice Nadeau
59 6 Patrice Nadeau
Fichier _/etc/postfix/main.cf_
60
<pre><code class="bash">
61
smtpd_recipient_restrictions =
62
check_sender_access hash: /etc/postfix/sender_access
63
</code></pre>
64 1 Patrice Nadeau
65 6 Patrice Nadeau
Créer un fichier _/etc/postfix/sender_access_.
66
Placer à l’intérieur, l’adresse de courriel, le nom de domaine ou l’adresse IP avec l’une des options :
67
* OK
68
* REJECT
69 1 Patrice Nadeau
70 6 Patrice Nadeau
Modifier le fichier _/etc/postfix/sender_access_ :
71
<pre><code class="bash">
72
# myfriend.com OK
73
# myennemies.com REJECT
74
# myfriend@example.com OK
75
# junk@spam.com REJECT
76
# marketing@ REJECT
77
# theboss@ OK
78
# deals.marketing.com REJECT
79
# somedomain.com OK
80
101.15.251.176 REJECT
81
</code></pre>
82
83 7 Patrice Nadeau
Relancer :
84
<pre><code class="bash">
85
postmap /etc/postfix/sender_access
86
postfix reload
87
</code></pre>
88
89 13 Patrice Nadeau
h3. Utilisation de services de « blacklist » internet :
90 7 Patrice Nadeau
91
Modifier le fichier _/etc/postfix/main.cf_ :
92
<pre><code class="bash">
93 29 Patrice Nadeau
smtpd_recipient_restrictions = reject_rbl_client zen.spamhaus.org, reject_rhsbl_helo dbl.spamhaus.org, reject_rhsbl_sender dbl.spamhaus.org
94
</code></pre>
95
96
Relire la configuration
97
<pre><code class="bash">
98
systemctl reload postix
99 7 Patrice Nadeau
</code></pre>
100 6 Patrice Nadeau
101 54 Patrice Nadeau
h3. Utilisation des enregistrements SPF lors de la réception de courriel
102 51 Patrice Nadeau
103
Modifier le fichier _/etc/postfix/main.cf_ et ajouter *à la suite* de la ligne _smtpd_recipient_restrictions_ :
104
<pre><code class="bash">
105
check_policy_service unix:private/policy
106
</code></pre>
107
108 52 Patrice Nadeau
Modifier le fichier_/etc/postfix/master.cf_ eta jouter la ligne :
109
<pre><code class="bash">
110
policy    unix  -       n       n       -       0       spawn user=nobody argv=/usr/bin/perl /usr/lib/policyd-spf-perl
111
</code></pre>
112
113 13 Patrice Nadeau
h3. Alias
114 10 Patrice Nadeau
115 20 Patrice Nadeau
Usagers systèmes devant être redirigé vers des comptes utilisateurs réel.
116 10 Patrice Nadeau
117 20 Patrice Nadeau
Les ajouter dans le fichier _/etc/postfix/aliases_
118
119
Lancer la commande _newaliases_ pour activer les changements.
120
121 10 Patrice Nadeau
122 13 Patrice Nadeau
h3. Options courantes
123 11 Patrice Nadeau
124
Dans _main.cf_ : 
125
* *message_size_limit* :
126
127 13 Patrice Nadeau
h2. Entrés DNS
128 6 Patrice Nadeau
129 13 Patrice Nadeau
h3. A record
130 6 Patrice Nadeau
131 13 Patrice Nadeau
h3. MX record
132 6 Patrice Nadeau
133 13 Patrice Nadeau
h3. SPF record
134 6 Patrice Nadeau
135 2 Patrice Nadeau
Ajouter ceux du fournisseur internet (le fournisseur et et tous ses abonnées pourront "se faire passer" pour le domaine)
136
137 13 Patrice Nadeau
h2. Test 
138 2 Patrice Nadeau
139 13 Patrice Nadeau
h3. SPF
140 3 Patrice Nadeau
141
Envoyer un courriel à une des adresses suivantes : 
142
* check-auth@verifier.port25.com 
143 6 Patrice Nadeau
* check-auth2@verifier.port25.com
144 8 Patrice Nadeau
145 43 Patrice Nadeau
h2. TLS
146 19 Patrice Nadeau
147
Site internet pour vérifier la configuration TLS :
148
* Envoie : https://www.checktls.com/perl/TestSender.pl
149
* Réception : https://www.checktls.com/perl/TestReceiver.pl
150
151 37 Patrice Nadeau
2 paramètres sont utilisés :
152
* *smtp_tls_security_level* : En envoie vers un autre serveur SMTP
153
* *smtpd_tls_security_level* : En réception d'un client
154
155
Les valeurs suivantes peuvent être utilisées :
156
* *none* : TLs n'est pas utilisé
157 45 Patrice Nadeau
* *may* : TLS est utilisé/annoncé au client distant mais n'est pas obligatoire (Opportunistic)
158 37 Patrice Nadeau
* *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.
159
160 43 Patrice Nadeau
h3. De Postfix vers un autre serveur SMTP
161 31 Patrice Nadeau
162 35 Patrice Nadeau
Dans le fichier _/etc/postfix/mainc.cf_
163 1 Patrice Nadeau
<pre><code class="bash">
164 35 Patrice Nadeau
# Utilise l'encryption si disponible
165
smtp_tls_security_level = may
166 45 Patrice Nadeau
# Ajoute les messages TLS au journal
167 35 Patrice Nadeau
smtp_tls_loglevel = 1
168
</code></pre>
169 1 Patrice Nadeau
170 47 Patrice Nadeau
Dans le fichier _/etc/postfix/master.cf_, enlever le commentaire au début de la ligne
171
<pre><code class="bash">
172
tlsmgr    unix  -       -       n       1000?   1       tlsmgr
173
</code></pre>
174
175 35 Patrice Nadeau
Relire la configuration
176
<pre><code class="bash">
177
systemctl reload postfix
178 31 Patrice Nadeau
</code></pre>
179 30 Patrice Nadeau
180 43 Patrice Nadeau
h3. D'un client vers Postfix
181 36 Patrice Nadeau
182 37 Patrice Nadeau
> Voir #54
183
184 40 Patrice Nadeau
Si un certificat externe n'est pas disponible, en généré un local :
185 38 Patrice Nadeau
<pre><code class="bash">
186
cd /etc/postfix
187
openssl req -new -outform PEM -out smtpd.cert -newkey rsa:2048 -nodes -keyout smtpd.key -keyform PEM -days 365 -x509
188
</code></pre>
189
190 36 Patrice Nadeau
Dans le fichier _/etc/postfix/main./cf_
191 32 Patrice Nadeau
<pre><code class="bash">
192
# Utilise l'encryption si disponible
193 1 Patrice Nadeau
smtp_tls_security_level = may
194
# Ajoute les messages TLs au journal
195
smtp_tls_loglevel = 1
196 41 Patrice Nadeau
# Fichiers du certificat
197 38 Patrice Nadeau
smtpd_tls_key_file = /etc/postfix/smtpd.key
198
smtpd_tls_cert_file = /etc/postfix/smtpd.cert
199 1 Patrice Nadeau
</code></pre>
200 37 Patrice Nadeau
201
Relire la configuration
202
<pre><code class="bash">
203
systemctl reload postfix
204
</code></pre>
205 32 Patrice Nadeau
206 46 Patrice Nadeau
Si le serveur est disponible à partir d'internet, on peux faire un test avec https://starttls.info/
207
208 44 Patrice Nadeau
h2. Domaines supplémentaires
209
210
> Voir #55
211
212 13 Patrice Nadeau
h2. Dépannage
213 8 Patrice Nadeau
214
La commande *mailq* permet de voir les requêtes en attentes.
215 18 Patrice Nadeau
216 23 Patrice Nadeau
h3. Messages ne s'envoient pas
217
218 26 Patrice Nadeau
> Vu sur une nouvelle installation openSUSE 13.2
219
220 27 Patrice Nadeau
La commande _postqueue -p_ affiche : *address resolver failure*
221
222 26 Patrice Nadeau
Modififer le fichier */etc/postfix/main.cf*
223
<pre><code class="bash">
224
disable_dns_lookups = yes
225
</code></pre>
226 25 Patrice Nadeau
227 23 Patrice Nadeau
h3. Messages *error: open database /etc/postfix/relay.db: No such file or directory*
228
229
> Vu sur une nouvelle installation openSUSE 13.2
230
231
Exécuter la commande
232
<pre><code class="bash">
233
postmap /etc/postfix/relay
234 18 Patrice Nadeau
</code></pre>