Projet

Général

Profil

Postfix » Historique » Version 75

Patrice Nadeau, 2017-09-04 07:18

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