Projet

Général

Profil

Postfix » Historique » Version 70

Patrice Nadeau, 2016-08-21 08:56

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