1 <!doctype html public "-//W3C//DTD HTML 4.01 Transitional//EN" 2 "https://www.w3.org/TR/html4/loose.dtd"> 3 4 <html> 5 6 <head> 7 8 <title>Postfix Backwards-Compatibility Safety Net</title> 9 10 <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 11 <link rel='stylesheet' type='text/css' href='postfix-doc.css'> 12 13 </head> 14 15 <body> 16 17 <h1><img src="postfix-logo.jpg" width="203" height="98" ALT="">Postfix 18 Backwards-Compatibility Safety Net</h1> 19 20 <hr> 21 22 <h2>Purpose of this document </h2> 23 24 <p> Postfix 3.0 introduces a safety net that runs Postfix programs 25 with backwards-compatible default settings after an upgrade. The 26 safety net will log a warning whenever a "new" default setting could 27 have an negative effect on your mail flow. </p> 28 29 <p>This document provides information on the following topics: </p> 30 31 <ul> 32 33 <li> <p> <a href="#overview">Detailed descriptions</a> of Postfix 34 backwards-compatibility warnings. 35 36 <li> <p> What backwards-compatible settings you may have to make 37 permanent in <a href="postconf.5.html">main.cf</a> or <a href="master.5.html">master.cf</a>. </p> 38 39 <li> <p> <a href="#turnoff">How to turn off</a> Postfix 40 backwards-compatibility warnings. </p> 41 42 </ul> 43 44 <h2> <a name="overview"> Overview </a> </h2> 45 46 <p> With backwards compatibility turned on, Postfix logs a message 47 whenever a backwards-compatible default setting may be required for 48 continuity of service. Based on this logging the system administrator 49 can decide if any backwards-compatible settings need to be made 50 permanent in main.cf or master.cf, before <a href="#turnoff">turning 51 off the backwards-compatibility safety net</a> as described at the 52 end of this document. </p> 53 54 <p> Logged with <a href="postconf.5.html#compatibility_level">compatibility_level</a> < 1: </p> 55 56 <ul> 57 58 <li> <p> <a href="#append_dot_mydomain"> Using backwards-compatible 59 default setting append_dot_mydomain=yes </a> </p> 60 61 <li> <p> <a href="#chroot"> Using backwards-compatible default setting 62 chroot=y</a> </p> 63 64 <li><p> <a href="#relay_restrictions"> Using backwards-compatible 65 default setting "smtpd_relay_restrictions = (empty)"</a> </p> 66 67 <li> <p> <a href="#smtputf8_enable"> Using backwards-compatible 68 default setting smtputf8_enable=no</a> </p> 69 70 </ul> 71 72 <p> Logged with <a href="postconf.5.html#compatibility_level">compatibility_level</a> < 2: </p> 73 74 <ul> 75 76 <li> <p> <a href="#mynetworks_style"> Using backwards-compatible 77 default setting mynetworks_style=subnet </a> </p> 78 79 <li> <p> <a href="#relay_domains"> Using backwards-compatible default 80 setting relay_domains=$mydestination </a> </p> 81 82 </ul> 83 84 <p> Logged with <a href="postconf.5.html#compatibility_level">compatibility_level</a> < 3.6: </p> 85 86 <ul> 87 88 <li> <p> <a href="#smtpd_digest"> Using backwards-compatible 89 default setting smtpd_tls_fingerprint_digest=md5</a> </p> 90 91 <li> <p> <a href="#smtp_digest"> Using backwards-compatible 92 default setting smtp_tls_fingerprint_digest=md5</a> </p> 93 94 <li> <p> <a href="#smtp_digest"> Using backwards-compatible 95 default setting lmtp_tls_fingerprint_digest=md5</a> </p> 96 97 <li> <p> <a href="#relay_before_rcpt"> Using backwards-compatible 98 default setting smtpd_relay_before_recipient_restrictions=no</a> </p> 99 100 <li> <p> <a href="#respectful_logging"> Using backwards-compatible 101 default setting respectful_logging=no</a> </p> 102 103 </ul> 104 105 <p> Logged with <a href="postconf.5.html#compatibility_level">compatibility_level</a> < 3.11: </p> 106 107 <ul> 108 109 <li> <p> <a href="#tlsrpt_reused"> using backwards-compatible default 110 setting smtp_tlsrpt_skip_reused_handshakes=yes</a> </p> 111 112 <li> <p> <a href="#xxx_tls_level"> using backwards-compatible default 113 setting <i>xxx</i>_security_level=(empty)</a> </p> 114 115 </ul> 116 117 <p> 118 119 <p> If such a message is logged in the context of a legitimate 120 request, the system administrator should make the backwards-compatible 121 setting permanent in <a href="postconf.5.html">main.cf</a> or <a href="master.5.html">master.cf</a>, as detailed in the 122 sections that follow. </p> 123 124 <p> When no more backwards-compatible settings need to be made 125 permanent, the system administrator should <a href="#turnoff">turn 126 off the backwards-compatibility safety net</a> as described at the 127 end of this document. </p> 128 129 <h2> <a name="append_dot_mydomain"> Using backwards-compatible default 130 setting append_dot_mydomain=yes</a> </h2> 131 132 <p> The <a href="postconf.5.html#append_dot_mydomain">append_dot_mydomain</a> default value has changed from "yes" 133 to "no". This could result in unexpected non-delivery of email after 134 Postfix is updated from an older version. The backwards-compatibility 135 safety net is designed to prevent such surprises. </p> 136 137 <p> As long as the <a href="postconf.5.html#append_dot_mydomain">append_dot_mydomain</a> parameter is left unspecified 138 at 139 its implicit default value, and the <a href="postconf.5.html#compatibility_level">compatibility_level</a> setting is 140 less than 1, Postfix may log one of the following messages:</p> 141 142 <ul> 143 144 <li> <p> Messages about missing "localhost" in <a href="postconf.5.html#mydestination">mydestination</a> or 145 other address class: </p> 146 147 <blockquote> 148 <pre> 149 postfix/trivial-rewrite[14777]: using backwards-compatible 150 default setting <a href="postconf.5.html#append_dot_mydomain">append_dot_mydomain</a>=yes to rewrite 151 "localhost" to "localhost.example.com"; please add 152 "localhost" to <a href="postconf.5.html#mydestination">mydestination</a> or other address class 153 </pre> 154 </blockquote> 155 156 <p> If Postfix logs the above message, add "localhost" to 157 <a href="postconf.5.html#mydestination">mydestination</a> (or <a href="postconf.5.html#virtual_alias_domains">virtual_alias_domains</a>, <a href="postconf.5.html#virtual_mailbox_domains">virtual_mailbox_domains</a>, 158 or <a href="postconf.5.html#relay_domains">relay_domains</a>) and execute the command "<b>postfix reload</b>". 159 160 <li> <p> Messages about incomplete domains in email addresses: </p> 161 162 <blockquote> 163 <pre> 164 postfix/trivial-rewrite[25835]: using backwards-compatible 165 default setting <a href="postconf.5.html#append_dot_mydomain">append_dot_mydomain</a>=yes to rewrite "foo" to 166 "foo.example.com" 167 </pre> 168 </blockquote> 169 170 <p> If Postfix logs the above message for domains different from 171 "localhost", and the sender cannot be changed to use complete domain 172 names in email addresses, then the system administrator should make 173 the backwards-compatible setting "<a href="postconf.5.html#append_dot_mydomain">append_dot_mydomain</a> = yes" permanent 174 in <a href="postconf.5.html">main.cf</a>: </p> 175 176 <blockquote> 177 <pre> 178 # <b>postconf <a href="postconf.5.html#append_dot_mydomain">append_dot_mydomain</a>=yes</b> 179 # <b>postfix reload</b> 180 </pre> 181 </blockquote> 182 183 </ul> 184 185 <h2> <a name="chroot"> Using backwards-compatible default 186 setting chroot=y</a> </h2> 187 188 <p> The <a href="master.5.html">master.cf</a> chroot default value has changed from "y" (yes) 189 to "n" (no). The new default avoids the need for copies of system 190 files under the Postfix queue directory. However, sites with strict 191 security requirements may want to keep the chroot feature enabled 192 after updating Postfix from an older version. The backwards-compatibility 193 safety net is designed allow the administrator to choose if they 194 want to keep the old behavior. </p> 195 196 <p> As long as a <a href="master.5.html">master.cf</a> chroot field is left unspecified at its 197 implicit default value, and the <a href="postconf.5.html#compatibility_level">compatibility_level</a> setting 198 is less than 1, Postfix may log the following message while it 199 reads the <a href="master.5.html">master.cf</a> file: </p> 200 201 <blockquote> 202 <pre> 203 postfix/master[27664]: /etc/postfix/<a href="master.5.html">master.cf</a>: line 72: using 204 backwards-compatible default setting chroot=y 205 </pre> 206 </blockquote> 207 208 <p> If this service should remain chrooted, then the system 209 administrator should make the backwards-compatible setting "chroot 210 = y" permanent in <a href="master.5.html">master.cf</a>. For example, to update the chroot 211 setting for the "smtp inet" service: </p> 212 213 <blockquote> 214 <pre> 215 # <b>postconf -F smtp/inet/chroot=y</b> 216 # <b>postfix reload</b> 217 </pre> 218 </blockquote> 219 220 <h2> <a name="relay_restrictions"> Using backwards-compatible default 221 setting smtpd_relay_restrictions = (empty)</a> </h2> 222 223 <p> The <a href="postconf.5.html#smtpd_relay_restrictions">smtpd_relay_restrictions</a> feature was introduced with Postfix 224 version 2.10, as a safety mechanism for configuration errors in 225 <a href="postconf.5.html#smtpd_recipient_restrictions">smtpd_recipient_restrictions</a> that could make Postfix an open relay. 226 </p> 227 228 <p> The <a href="postconf.5.html#smtpd_relay_restrictions">smtpd_relay_restrictions</a> implicit default setting forbids 229 mail to remote destinations from clients that don't match 230 <a href="postconf.5.html#permit_mynetworks">permit_mynetworks</a> or <a href="postconf.5.html#permit_sasl_authenticated">permit_sasl_authenticated</a>. This could result 231 in unexpected 'Relay access denied' errors after Postfix is updated 232 from an older Postfix version. The backwards-compatibility safety 233 net is designed to prevent such surprises. </p> 234 235 <p> When the <a href="postconf.5.html#compatibility_level">compatibility_level</a> less than 1, and the 236 <a href="postconf.5.html#smtpd_relay_restrictions">smtpd_relay_restrictions</a> parameter is left unspecified at its 237 implicit default 238 setting, Postfix may log the following message: </p> 239 240 <blockquote> 241 <pre> 242 postfix/smtpd[38463]: using backwards-compatible default setting 243 "<a href="postconf.5.html#smtpd_relay_restrictions">smtpd_relay_restrictions</a> = (empty)" to avoid "Relay access 244 denied" error for recipient "user (a] example.com" from client 245 "host.example.net[10.0.0.2]" 246 </pre> 247 </blockquote> 248 249 <p> If this request should not be blocked, then the system 250 administrator should make the backwards-compatible setting 251 "<a href="postconf.5.html#smtpd_relay_restrictions">smtpd_relay_restrictions</a>=" (i.e. empty) permanent in <a href="postconf.5.html">main.cf</a>: 252 253 <blockquote> 254 <pre> 255 # <b>postconf <a href="postconf.5.html#smtpd_relay_restrictions">smtpd_relay_restrictions</a>=</b> 256 # <b>postfix reload</b> 257 </pre> 258 </blockquote> 259 260 <h2> <a name="smtputf8_enable"> Using backwards-compatible default 261 setting smtputf8_enable=no</a> </h2> 262 263 <p> The <a href="postconf.5.html#smtputf8_enable">smtputf8_enable</a> default value has changed from "no" to "yes". 264 With the new "yes" setting, the Postfix SMTP server rejects non-ASCII 265 addresses from clients that don't request SMTPUTF8 support, after 266 Postfix is updated from an older version. The backwards-compatibility 267 safety net is designed to prevent such surprises. </p> 268 269 <p> As long as the <a href="postconf.5.html#smtputf8_enable">smtputf8_enable</a> parameter is left unspecified 270 at its implicit 271 default value, and the <a href="postconf.5.html#compatibility_level">compatibility_level</a> setting is 272 less than 1, Postfix logs a warning each time an SMTP command uses a 273 non-ASCII address localpart without requesting SMTPUTF8 support: </p> 274 275 <blockquote> 276 <pre> 277 postfix/smtpd[27560]: using backwards-compatible default setting 278 <a href="postconf.5.html#smtputf8_enable">smtputf8_enable</a>=no to accept non-ASCII sender address 279 "??@example.org" from localhost[127.0.0.1] 280 </pre> 281 </blockquote> 282 283 <blockquote> 284 <pre> 285 postfix/smtpd[27560]: using backwards-compatible default setting 286 <a href="postconf.5.html#smtputf8_enable">smtputf8_enable</a>=no to accept non-ASCII recipient address 287 "??@example.com" from localhost[127.0.0.1] 288 </pre> 289 </blockquote> 290 291 <p> If the address should not be rejected, and the client cannot 292 be updated to use SMTPUTF8, then the system administrator should 293 make the backwards-compatible setting "<a href="postconf.5.html#smtputf8_enable">smtputf8_enable</a> = no" permanent 294 in <a href="postconf.5.html">main.cf</a>: 295 296 <blockquote> 297 <pre> 298 # <b>postconf <a href="postconf.5.html#smtputf8_enable">smtputf8_enable</a>=no</b> 299 # <b>postfix reload</b> 300 </pre> 301 </blockquote> 302 303 <h2> <a name="mynetworks_style"> Using backwards-compatible default 304 setting mynetworks_style=subnet</a> </h2> 305 306 <p> The <a href="postconf.5.html#mynetworks_style">mynetworks_style</a> default value has changed from "subnet" 307 to "host". This parameter is used to implement the "<a href="postconf.5.html#permit_mynetworks">permit_mynetworks</a>" 308 feature. The change could cause unexpected 'access denied' errors after 309 Postfix is updated from an older version. The backwards-compatibility 310 safety net is designed to prevent such surprises. </p> 311 312 <p> As long as the <a href="postconf.5.html#mynetworks">mynetworks</a> and <a href="postconf.5.html#mynetworks_style">mynetworks_style</a> parameters are 313 left unspecified at their implicit default values, and the 314 <a href="postconf.5.html#compatibility_level">compatibility_level</a> 315 setting is less than 2, the Postfix SMTP server may log one of the 316 following messages: </p> 317 318 <blockquote> 319 <pre> 320 postfix/smtpd[17375]: using backwards-compatible default setting 321 <a href="postconf.5.html#mynetworks_style">mynetworks_style</a>=subnet to permit request from client 322 "foo.example.com[10.1.1.1]" 323 </pre> 324 </blockquote> 325 326 <blockquote> 327 <pre> 328 postfix/postscreen[24982]: using backwards-compatible default 329 setting <a href="postconf.5.html#mynetworks_style">mynetworks_style</a>=subnet to permit request from client 330 "10.1.1.1" 331 </pre> 332 </blockquote> 333 334 <p> If the client request should not be rejected, then the system 335 administrator should make the backwards-compatible setting 336 "<a href="postconf.5.html#mynetworks_style">mynetworks_style</a> = subnet" permanent in <a href="postconf.5.html">main.cf</a>: </p> 337 338 <blockquote> 339 <pre> 340 # <b>postconf <a href="postconf.5.html#mynetworks_style">mynetworks_style</a>=subnet</b> 341 # <b>postfix reload</b> 342 </pre> 343 </blockquote> 344 345 <h2><a name="relay_domains"> Using backwards-compatible default 346 setting relay_domains=$mydestination </a> </h2> 347 348 <p> The <a href="postconf.5.html#relay_domains">relay_domains</a> default value has changed from "$<a href="postconf.5.html#mydestination">mydestination</a>" 349 to the empty value. This could result in unexpected 'Relay access 350 denied' errors or ETRN errors after Postfix is updated from an older 351 version. The backwards-compatibility safety net is designed to 352 prevent such surprises. </p> 353 354 <p> As long as the <a href="postconf.5.html#relay_domains">relay_domains</a> parameter is left unspecified at 355 its implicit 356 default value, and the <a href="postconf.5.html#compatibility_level">compatibility_level</a> setting is less than 2, 357 Postfix may log one of the following messages. </p> 358 359 <ul> 360 361 <li> <p> Messages about accepting mail for a remote domain:</p> 362 363 <blockquote> 364 <pre> 365 postfix/smtpd[19052]: using backwards-compatible default setting 366 <a href="postconf.5.html#relay_domains">relay_domains</a>=$<a href="postconf.5.html#mydestination">mydestination</a> to accept mail for domain 367 "foo.example.com" 368 </pre> 369 </blockquote> 370 371 <blockquote> 372 <pre> 373 postfix/smtpd[19052]: using backwards-compatible default setting 374 <a href="postconf.5.html#relay_domains">relay_domains</a>=$<a href="postconf.5.html#mydestination">mydestination</a> to accept mail for address 375 "user (a] foo.example.com" 376 </pre> 377 </blockquote> 378 379 <li> <p> Messages about providing ETRN service for a remote domain:</p> 380 381 <blockquote> 382 <pre> 383 postfix/smtpd[19138]: using backwards-compatible default setting 384 <a href="postconf.5.html#relay_domains">relay_domains</a>=$<a href="postconf.5.html#mydestination">mydestination</a> to flush mail for domain 385 "bar.example.com" 386 </pre> 387 </blockquote> 388 389 <blockquote> 390 <pre> 391 postfix/smtp[13945]: using backwards-compatible default setting 392 <a href="postconf.5.html#relay_domains">relay_domains</a>=$<a href="postconf.5.html#mydestination">mydestination</a> to update fast-flush logfile for 393 domain "bar.example.com" 394 </pre> 395 </blockquote> 396 397 </ul> 398 399 <p> If Postfix should continue to accept mail for that domain or 400 continue to provide ETRN service for that domain, then the system 401 administrator should make the backwards-compatible setting 402 "<a href="postconf.5.html#relay_domains">relay_domains</a> = $<a href="postconf.5.html#mydestination">mydestination</a>" permanent in <a href="postconf.5.html">main.cf</a>: </p> 403 404 <blockquote> 405 <pre> 406 # <b>postconf '<a href="postconf.5.html#relay_domains">relay_domains</a>=$<a href="postconf.5.html#mydestination">mydestination</a>'</b> 407 # <b>postfix reload</b> 408 </pre> 409 </blockquote> 410 411 <p> Note: quotes are required as indicated above. </p> 412 413 <p> Instead of $<a href="postconf.5.html#mydestination">mydestination</a>, it may be better to specify an 414 explicit list of domain names. </p> 415 416 <h2> <a name="smtpd_digest"> Using backwards-compatible 417 default setting smtpd_tls_fingerprint_digest=md5</a> </h2> 418 419 <p> The <a href="postconf.5.html#smtpd_tls_fingerprint_digest">smtpd_tls_fingerprint_digest</a> default value has changed from 420 "md5" to "sha256". With the new "sha256" setting, the Postfix SMTP 421 server avoids using the deprecated "md5" algorithm and computes a more 422 secure digest of the client certificate. </p> 423 424 <p> If you're using the default "md5" setting, or even an explicit 425 "sha1" (also deprecated) setting, you should consider switching to 426 "sha256". This will require updating any associated lookup table keys 427 with the "sha256" digests of the expected client certificate or public 428 key. </p> 429 430 <p> As long as the <a href="postconf.5.html#smtpd_tls_fingerprint_digest">smtpd_tls_fingerprint_digest</a> parameter is left 431 unspecified at its 432 implicit default value, and the <a href="postconf.5.html#compatibility_level">compatibility_level</a> setting is less than 433 3.6, Postfix logs a warning each time a client certificate or public key 434 fingerprint is (potentially) used for access control: </p> 435 436 <blockquote> 437 <pre> 438 postfix/smtpd[27560]: using backwards-compatible default setting 439 <a href="postconf.5.html#smtpd_tls_fingerprint_digest">smtpd_tls_fingerprint_digest</a>=md5 to compute certificate fingerprints 440 </pre> 441 </blockquote> 442 443 <p> Since any client certificate fingerprints are passed in policy service 444 lookups, and Postfix doesn't know whether the fingerprint will be used, the 445 warning may also be logged when policy lookups are performed for connections 446 that used a client certificate, even if the policy service does not in fact 447 examine the client certificate. To reduce the noise somewhat, such warnings 448 are issued at most once per <a href="smtpd.8.html">smtpd(8)</a> process instance. </p> 449 450 <p> If you prefer to stick with "md5", you can suppress the warnings by 451 making that setting explicit. After addressing any other compatibility 452 warnings, you can <a href="#turnoff">update</a> your compatibility level. 453 </p> 454 455 <blockquote> 456 <pre> 457 # <b>postconf <a href="postconf.5.html#smtpd_tls_fingerprint_digest">smtpd_tls_fingerprint_digest</a>=md5</b> 458 # <b>postfix reload</b> 459 </pre> 460 </blockquote> 461 462 <h2> <a name="smtp_digest"> Using backwards-compatible 463 default setting smtp_tls_fingerprint_digest=md5</a> </h2> 464 465 <p> The <a href="postconf.5.html#smtp_tls_fingerprint_digest">smtp_tls_fingerprint_digest</a> and <a href="postconf.5.html#lmtp_tls_fingerprint_digest">lmtp_tls_fingerprint_digest</a> 466 default values have changed from "md5" to "sha256". With the new 467 "sha256" setting, the Postfix SMTP and LMTP client avoids using the 468 deprecated "md5" algorithm and computes a more secure digest of the 469 server certificate. </p> 470 471 <p> If you're using the default "md5" setting, or even an explicit 472 "sha1" (also deprecated) setting, you should consider switching to 473 "sha256". This will require updating any "fingerprint" security level 474 policies in the TLS policy table to specify matching "sha256" digests of 475 the expected server certificates or public keys. </p> 476 477 <p> As long as the <a href="postconf.5.html#smtp_tls_fingerprint_digest">smtp_tls_fingerprint_digest</a> (or LMTP equivalent) 478 parameter is left unspecified at its implicit default value, and 479 the 480 <a href="postconf.5.html#compatibility_level">compatibility_level</a> setting is less than 3.6, Postfix logs a warning each 481 time the "fingerprint" security level is used to specify matching "md5" 482 digests of trusted server certificates or public keys: </p> 483 484 <blockquote> 485 <pre> 486 postfix/smtp[27560]: using backwards-compatible default setting 487 <a href="postconf.5.html#smtp_tls_fingerprint_digest">smtp_tls_fingerprint_digest</a>=md5 to compute certificate fingerprints 488 </pre> 489 </blockquote> 490 491 <p> If you prefer to stick with "md5", you can suppress the warnings by 492 making that setting explicit. After addressing any other compatibility 493 warnings, you can <a href="#turnoff">update</a> your compatibility level. 494 </p> 495 496 <blockquote> 497 <pre> 498 # <b>postconf '<a href="postconf.5.html#smtp_tls_fingerprint_digest">smtp_tls_fingerprint_digest</a> = md5' \ 499 '<a href="postconf.5.html#lmtp_tls_fingerprint_digest">lmtp_tls_fingerprint_digest</a> = md5' </b> 500 # <b>postfix reload</b> 501 </pre> 502 </blockquote> 503 504 <h2> <a name="relay_before_rcpt"> Using backwards-compatible 505 default setting smtpd_relay_before_recipient_restrictions=no</a> </h2> 506 507 <p> The <a href="postconf.5.html#smtpd_relay_before_recipient_restrictions">smtpd_relay_before_recipient_restrictions</a> feature was 508 introduced in Postfix version 3.6, to evaluate <a href="postconf.5.html#smtpd_relay_restrictions">smtpd_relay_restrictions</a> 509 before <a href="postconf.5.html#smtpd_recipient_restrictions">smtpd_recipient_restrictions</a>. Historically, <a href="postconf.5.html#smtpd_relay_restrictions">smtpd_relay_restrictions</a> 510 was evaluated after <a href="postconf.5.html#smtpd_recipient_restrictions">smtpd_recipient_restrictions</a>, contradicting 511 documented behavior. </p> 512 513 <blockquote> <p> Background: <a href="postconf.5.html#smtpd_relay_restrictions">smtpd_relay_restrictions</a> is 514 primarily designed to enforce a mail relaying policy, while 515 <a href="postconf.5.html#smtpd_recipient_restrictions">smtpd_recipient_restrictions</a> is primarily designed to enforce spam 516 blocking policy. Both are evaluated while replying to the RCPT TO 517 command, and both support the same features. </p> </blockquote> 518 519 <p> To maintain compatibility with earlier versions, Postfix will 520 keep evaluating <a href="postconf.5.html#smtpd_recipient_restrictions">smtpd_recipient_restrictions</a> before 521 <a href="postconf.5.html#smtpd_relay_restrictions">smtpd_relay_restrictions</a>, as long as the <a href="postconf.5.html#compatibility_level">compatibility_level</a> is 522 less than 3.6, and the <a href="postconf.5.html#smtpd_relay_before_recipient_restrictions">smtpd_relay_before_recipient_restrictions</a> 523 parameter is left unspecified at its implicit default setting. As 524 a reminder, 525 Postfix may log the following message: </p> 526 527 <blockquote> 528 <pre> 529 postfix/smtpd[54696]: using backwards-compatible default setting 530 <a href="postconf.5.html#smtpd_relay_before_recipient_restrictions">smtpd_relay_before_recipient_restrictions</a>=no to reject recipient 531 "user (a] example.com" from client "host.example.net[10.0.0.2]" 532 </pre> 533 </blockquote> 534 535 <p> If Postfix should keep evaluating <a href="postconf.5.html#smtpd_recipient_restrictions">smtpd_recipient_restrictions</a> 536 before <a href="postconf.5.html#smtpd_relay_restrictions">smtpd_relay_restrictions</a>, then the system 537 administrator should make the backwards-compatible setting 538 "<a href="postconf.5.html#smtpd_relay_before_recipient_restrictions">smtpd_relay_before_recipient_restrictions</a>=no" permanent in <a href="postconf.5.html">main.cf</a>: </p> 539 540 <blockquote> 541 <pre> 542 # <b> postconf <a href="postconf.5.html#smtpd_relay_before_recipient_restrictions">smtpd_relay_before_recipient_restrictions</a>=no </b> 543 # <b> postfix reload </b> 544 </pre> 545 </blockquote> 546 547 <h2> <a name="respectful_logging"> Using backwards-compatible 548 default setting respectful_logging=no</a> </h2> 549 550 <p> Postfix version 3.6 deprecates configuration parameter names and 551 logging that suggest white is better than black. Instead it prefers 552 'allowlist, 'denylist', and variations of those words. While the renamed 553 configuration parameters have backwards-compatible default values, 554 the changes in logging could affect logfile analysis tools. </p> 555 556 <p> To avoid breaking existing logfile analysis tools, Postfix will keep 557 logging the deprecated form, as long as the <a href="postconf.5.html#respectful_logging">respectful_logging</a> parameter 558 is left unspecified at its implicit default value, and the 559 <a href="postconf.5.html#compatibility_level">compatibility_level</a> 560 setting is less than 3.6. As a reminder, Postfix may log the following 561 when a remote SMTP client is allowlisted or denylisted: </p> 562 563 <blockquote> 564 <pre> 565 postfix/postscreen[22642]: Using backwards-compatible default setting 566 <a href="postconf.5.html#respectful_logging">respectful_logging</a>=no for client [<i>address</i>]:<i>port</i> 567 </pre> 568 </blockquote> 569 570 <p> If Postfix should keep logging the deprecated form, then the 571 system administrator should make the backwards-compatible setting 572 "<a href="postconf.5.html#respectful_logging">respectful_logging</a> = no" permanent in <a href="postconf.5.html">main.cf</a>. 573 574 <blockquote> 575 <pre> 576 # <b>postconf "<a href="postconf.5.html#respectful_logging">respectful_logging</a> = no"</b> 577 # <b>postfix reload</b> 578 </pre> 579 </blockquote> 580 581 <h2> <a name="tlsrpt_reused"> Using backwards-compatible 582 default setting smtp_tlsrpt_skip_reused_handshakes=yes</a> </h2> 583 584 <p> Postfix version 3.11 changes the default value for 585 <a href="postconf.5.html#smtp_tlsrpt_skip_reused_handshakes">smtp_tlsrpt_skip_reused_handshakes</a> from "yes" to "no". The 586 backwards-compatibility safety net is designed to prevent an 587 unexpected change in reporting behavior when Postfix is updated 588 from an older version. </p> 589 590 <p> As long as the <a href="postconf.5.html#smtp_tlsrpt_skip_reused_handshakes">smtp_tlsrpt_skip_reused_handshakes</a> parameter is 591 left unspecified at its implicit default value, and the <a href="postconf.5.html#compatibility_level">compatibility_level</a> 592 setting is less than 3.11, Postfix will log a reminder that it is 593 using the backwards-compatible default: </p> 594 595 <blockquote> 596 <pre> 597 postfix/smtp[388157] using backwards-compatible default setting 598 <a href="postconf.5.html#smtp_tlsrpt_skip_reused_handshakes">smtp_tlsrpt_skip_reused_handshakes</a>=yes 599 </pre> 600 </blockquote> 601 602 <p> To keep the old default setting, the system administrator should 603 make the backwards-compatible setting "<a href="postconf.5.html#smtp_tlsrpt_skip_reused_handshakes">smtp_tlsrpt_skip_reused_handshakes</a> 604 = yes" permanent in <a href="postconf.5.html">main.cf</a>: 605 606 <blockquote> 607 <pre> 608 # <b>postconf <a href="postconf.5.html#smtp_tlsrpt_skip_reused_handshakes">smtp_tlsrpt_skip_reused_handshakes</a>=yes</b> 609 # <b>postfix reload</b> 610 </pre> 611 </blockquote> 612 613 <h2> <a name="xxx_tls_level"> Using backwards-compatible 614 default setting <i>xxx</i>_security_level=(empty)</a> </h2> 615 616 <p> When built with TLS support, Postfix version 3.11 changes the 617 default SMTP client TLS 618 security level from "empty" to "may". The backwards-compatibility 619 safety net is designed to prevent an unexpected change in mail 620 sending behavior when Postfix is updated from an older version. 621 </p> 622 623 <p> There is no equivalent change for Postfix server TLS security 624 levels, because changing the level alone is not sufficient. Server-side 625 TLS requires that at least one private key and one public-key 626 certificate chain are configured. </p> 627 628 <p> As long as a TLS security level parameter is left unspecified 629 at its implicit default value, and the <a href="postconf.5.html#compatibility_level">compatibility_level</a> setting 630 is less than 3.11, Postfix will log one of the following reminders 631 that it is using the backwards-compatible default: </p> 632 633 <blockquote> 634 <pre> 635 postfix/smtp[...] using backwards-compatible default setting 636 <a href="postconf.5.html#smtp_tls_security_level">smtp_tls_security_level</a>=(empty) 637 </pre> 638 </blockquote> 639 640 <blockquote> 641 <pre> 642 postfix/tlsproxy[...] using backwards-compatible default setting 643 <a href="postconf.5.html#tlsproxy_client_security_level">tlsproxy_client_security_level</a>=(empty) 644 </pre> 645 </blockquote> 646 647 <p> To keep the old default setting, the system administrator should 648 make the backwards-compatible empty setting permanent in <a href="postconf.5.html">main.cf</a>: </p> 649 650 <blockquote> 651 <pre> 652 # <b>postconf <i>xxx</i>_security_level=</b> 653 # <b>postfix reload</b> 654 </pre> 655 </blockquote> 656 657 <p> where <i>xxx</i> is taken from the above compatibility message. </p> 658 659 <h2> <a name="turnoff">Turning off the backwards-compatibility safety net</a> </h2> 660 661 <p> Backwards compatibility is turned off by updating the 662 <a href="postconf.5.html#compatibility_level">compatibility_level</a> setting in <a href="postconf.5.html">main.cf</a>. </p> 663 664 <blockquote> 665 <pre> 666 # <b>postconf <a href="postconf.5.html#compatibility_level">compatibility_level</a>=<i>N</i></b> 667 # <b>postfix reload</b> 668 </pre> 669 </blockquote> 670 671 <p> For <i>N</i> specify the number that is logged in your <a href="postfix.1.html">postfix(1)</a> 672 warning message: </p> 673 674 <blockquote> 675 <pre> 676 warning: To disable backwards compatibility use "postconf <a href="postconf.5.html#compatibility_level">compatibility_level</a>=<i>N</i>" and "postfix reload" 677 </pre> 678 </blockquote> 679 680 <p> Sites that don't care about backwards compatibility may set 681 "<a href="postconf.5.html#compatibility_level">compatibility_level</a> = 9999" at their own risk. </p> 682 683 <p> Starting with Postfix version 3.6, the compatibility level in 684 the above warning message is the Postfix version that introduced 685 the last incompatible change. The level is formatted as 686 <i>major.minor.patch</i>, where <i>patch</i> is usually omitted and 687 defaults to zero. Earlier compatibility levels are 0, 1 and 2. </p> 688 689 <p> NOTE: Postfix 3.6 also introduces support for the "<level", 690 "<=level", and other operators to compare compatibility levels. 691 With the standard operators "<", "<=", etc., compatibility 692 level "3.10" would be smaller than "3.9" which is undesirable. </p> 693 694 </body> 695 696 </html> 697