Projet

Général

Profil

Postfix » Historique » Version 64

Patrice Nadeau, 2016-08-21 08:15

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