Projet

Général

Profil

Postfix » Historique » Version 73

Patrice Nadeau, 2016-08-21 09:09

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