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