Projet

Général

Profil

Postfix » Historique » Version 79

Patrice Nadeau, 2018-04-15 15:13

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