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 | ``` |