From 320af90614cfbe61c70d74f1a4e7725b30a3d010 Mon Sep 17 00:00:00 2001
From: Wietse Venema
Date: Tue, 16 Feb 2021 00:00:00 -0500
Subject: [PATCH] postfix-3.6-20210216
---
postfix/HISTORY | 18 +++
.../README_FILES/ADDRESS_VERIFICATION_README | 16 +--
postfix/README_FILES/OVERVIEW | 6 +-
postfix/README_FILES/POSTSCREEN_README | 118 ++++++++--------
postfix/README_FILES/SMTPD_ACCESS_README | 12 +-
postfix/README_FILES/SMTPD_POLICY_README | 16 +--
postfix/README_FILES/STRESS_README | 2 +-
postfix/html/ADDRESS_VERIFICATION_README.html | 8 +-
postfix/html/OVERVIEW.html | 6 +-
postfix/html/POSTSCREEN_README.html | 127 +++++++++---------
postfix/html/SMTPD_ACCESS_README.html | 12 +-
postfix/html/SMTPD_POLICY_README.html | 16 +--
postfix/html/STRESS_README.html | 2 +-
postfix/html/cidr_table.5.html | 4 +-
postfix/html/dnsblog.8.html | 24 ++--
postfix/html/postconf.5.html | 94 ++++++-------
postfix/html/postfix-manuals.html | 2 +-
postfix/html/postfix.1.html | 2 +-
postfix/html/postscreen.8.html | 26 ++--
postfix/html/tlsproxy.8.html | 2 +-
postfix/html/verify.8.html | 2 +-
postfix/man/man1/postfix.1 | 2 +-
postfix/man/man5/cidr_table.5 | 4 +-
postfix/man/man5/postconf.5 | 94 ++++++-------
postfix/man/man8/dnsblog.8 | 10 +-
postfix/man/man8/postscreen.8 | 26 ++--
postfix/man/man8/tlsproxy.8 | 4 +-
postfix/man/man8/verify.8 | 2 +-
.../proto/ADDRESS_VERIFICATION_README.html | 8 +-
postfix/proto/OVERVIEW.html | 6 +-
postfix/proto/POSTSCREEN_README.html | 127 +++++++++---------
postfix/proto/SMTPD_ACCESS_README.html | 12 +-
postfix/proto/SMTPD_POLICY_README.html | 16 +--
postfix/proto/STRESS_README.html | 2 +-
postfix/proto/cidr_table | 4 +-
postfix/proto/postconf.proto | 94 ++++++-------
postfix/src/dns/dns_lookup.c | 2 +-
postfix/src/dnsblog/dnsblog.c | 10 +-
postfix/src/global/mail_version.h | 2 +-
postfix/src/global/server_acl.c | 2 +-
postfix/src/postfix/postfix.c | 2 +-
postfix/src/postscreen/postscreen.c | 44 +++---
postfix/src/postscreen/postscreen.h | 2 +-
postfix/src/postscreen/postscreen_dnsbl.c | 4 +-
postfix/src/postscreen/postscreen_early.c | 16 +--
postfix/src/postscreen/postscreen_misc.c | 6 +-
postfix/src/postscreen/postscreen_smtpd.c | 8 +-
postfix/src/postscreen/postscreen_tests.c | 2 +-
postfix/src/proxymap/proxymap.c | 2 +-
postfix/src/smtpd/smtpd.c | 2 +-
postfix/src/smtpd/smtpd_check.c | 50 +++----
postfix/src/smtpd/smtpd_dnswl.in | 18 +--
postfix/src/smtpd/smtpd_dnswl.ref | 18 +--
postfix/src/tlsproxy/tlsproxy.c | 6 +-
postfix/src/verify/verify.c | 2 +-
55 files changed, 570 insertions(+), 554 deletions(-)
diff --git a/postfix/HISTORY b/postfix/HISTORY
index 486df5dcc..0bbda4290 100644
--- a/postfix/HISTORY
+++ b/postfix/HISTORY
@@ -25398,3 +25398,21 @@ Apologies for any names omitted.
Documentation: added a jq example to the postsuper(1) manpage.
File: postsuper/postsuper.c.
+
+20210216
+
+ Documentation: replaced white/blacklist with allow/denylist,
+ except in parameter names and lopging. Those will need a
+ compatibilty safety net to avoid breaking log analysis tools.
+ proto/ADDRESS_VERIFICATION_README.html, proto/cidr_table,
+ proto/OVERVIEW.html, proto/postconf.proto,
+ proto/POSTSCREEN_README.html, proto/SMTPD_ACCESS_README.html,
+ proto/SMTPD_POLICY_README.html, proto/STRESS_README.html,
+ dns/dns_lookup.c, dnsblog/dnsblog.c, global/server_acl.c,
+ postfix/postfix.c, postscreen/postscreen.c,
+ postscreen/postscreen_dnsbl.c, postscreen/postscreen_early.c,
+ postscreen/postscreen.h, postscreen/postscreen_misc.c,
+ postscreen/postscreen_smtpd.c, postscreen/postscreen_tests.c,
+ proxymap/proxymap.c, smtpd/smtpd.c, smtpd/smtpd_check.c,
+ smtpd/smtpd_dnswl.in, smtpd/smtpd_dnswl.ref, tlsproxy/tlsproxy.c,
+ verify/verify.c.
diff --git a/postfix/README_FILES/ADDRESS_VERIFICATION_README b/postfix/README_FILES/ADDRESS_VERIFICATION_README
index f21058c61..12b785d73 100644
--- a/postfix/README_FILES/ADDRESS_VERIFICATION_README
+++ b/postfix/README_FILES/ADDRESS_VERIFICATION_README
@@ -6,7 +6,7 @@ WWAARRNNIINNGG
Recipient address verification may cause an increased load on down-stream
servers in the case of a dictionary attack or a flood of backscatter bounces.
-Sender address verification may cause your site to be blacklisted by some
+Sender address verification may cause your site to be denylisted by some
providers. See also the "Limitations" section below for more.
WWhhaatt PPoossttffiixx aaddddrreessss vveerriiffiiccaattiioonn ccaann ddoo ffoorr yyoouu
@@ -89,11 +89,11 @@ LLiimmiittaattiioonnss ooff aaddddrreessss vveerriiffi
mail for a remote address can bounce AFTER a preferred MTA accepts the
recipient address, or AFTER a preferred MTA accepts the message content.
- * Some sites may blacklist you when you are probing them too often (a probe
- is an SMTP session that does not deliver mail), or when you are probing
- them too often for a non-existent address. This is one reason why you
- should use sender address verification sparingly, if at all, when your site
- receives lots of email.
+ * Some sites may denylist you when you are probing them too often (a probe is
+ an SMTP session that does not deliver mail), or when you are probing them
+ too often for a non-existent address. This is one reason why you should use
+ sender address verification sparingly, if at all, when your site receives
+ lots of email.
* Normally, address verification probe messages follow the same path as
regular mail. However, some sites send mail to the Internet via an
@@ -260,11 +260,11 @@ be blocked:
This is also a good way to populate your cache with address verification
results before you start to actually reject mail.
-The sender_access restriction is needed to whitelist domains or addresses that
+The sender_access restriction is needed to allowlist domains or addresses that
are known to be OK. Although Postfix will not mark a known-to-be-good address
as bad after a probe fails, it is better to be safe than sorry.
-NOTE: You will have to whitelist sites such as securityfocus.com and other
+NOTE: You will have to allowlist sites such as securityfocus.com and other
sites that operate mailing lists that use a different sender address for each
posting (VERP). Such addresses pollute the address verification cache quickly,
and generate unnecessary sender verification probes.
diff --git a/postfix/README_FILES/OVERVIEW b/postfix/README_FILES/OVERVIEW
index 87f3ea7ae..e4344a116 100644
--- a/postfix/README_FILES/OVERVIEW
+++ b/postfix/README_FILES/OVERVIEW
@@ -367,12 +367,12 @@ queues.
While postscreen(8) keeps the zombies away, more smtpd(8) processes remain
available for legitimate clients.
- postscreen(8) maintains a temporary whitelist for clients that pass its
- tests; by allowing whitelisted clients to skip tests, postscreen(8)
+ postscreen(8) maintains a temporary allowlist for clients that pass its
+ tests; by allowing allowlisted clients to skip tests, postscreen(8)
minimizes its impact on legitimate email traffic.
The postscreen(8) server is available with Postfix 2.8 and later. To keep
- the implementation simple, postscreen(8) delegates DNS white/blacklist
+ the implementation simple, postscreen(8) delegates DNS allow/denylist
lookups to dnsblog(8) server processes, and delegates TLS encryption/
decryption to tlsproxy(8) server processes. This delegation is invisible to
the remote SMTP client, and is not shown in the diagram below.
diff --git a/postfix/README_FILES/POSTSCREEN_README b/postfix/README_FILES/POSTSCREEN_README
index 78da5dd88..7ad4d087e 100644
--- a/postfix/README_FILES/POSTSCREEN_README
+++ b/postfix/README_FILES/POSTSCREEN_README
@@ -20,8 +20,8 @@ port 587 which requires client authentication. Alternatively, a site could set
up a dedicated, non-postscreen, "port 25" server that provides submission
service and client authentication, but no MX service.
-postscreen(8) maintains a temporary whitelist for clients that pass its tests;
-by allowing whitelisted clients to skip tests, postscreen(8) minimizes its
+postscreen(8) maintains a temporary allowlist for clients that pass its tests;
+by allowing allowlisted clients to skip tests, postscreen(8) minimizes its
impact on legitimate email traffic.
postscreen(8) is part of a multi-layer defense.
@@ -70,17 +70,17 @@ not receiving email.
The main challenge for postscreen(8) is to make an is-a-zombie decision based
on a single measurement. This is necessary because many zombies try to fly
under the radar and avoid spamming the same site repeatedly. Once postscreen(8)
-decides that a client is not-a-zombie, it whitelists the client temporarily to
+decides that a client is not-a-zombie, it allowlists the client temporarily to
avoid further delays for legitimate mail.
Zombies have challenges too: they have only a limited amount of time to deliver
-spam before their IP address becomes blacklisted. To speed up spam deliveries,
+spam before their IP address becomes denylisted. To speed up spam deliveries,
zombies make compromises in their SMTP protocol implementation. For example,
they speak before their turn, or they ignore responses from SMTP servers and
continue sending mail even when the server tells them to go away.
postscreen(8) uses a variety of measurements to recognize zombies. First,
-postscreen(8) determines if the remote SMTP client IP address is blacklisted.
+postscreen(8) determines if the remote SMTP client IP address is denylisted.
Second, postscreen(8) looks for protocol compromises that are made to speed up
delivery. These are good indicators for making is-a-zombie decisions based on
single measurements.
@@ -95,8 +95,8 @@ GGeenneerraall ooppeerraattiioonn
For each connection from an SMTP client, postscreen(8) performs a number of
tests in the order as described below. Some tests introduce a delay of a few
-seconds. postscreen(8) maintains a temporary whitelist for clients that pass
-its tests; by allowing whitelisted clients to skip tests, postscreen(8)
+seconds. postscreen(8) maintains a temporary allowlist for clients that pass
+its tests; by allowing allowlisted clients to skip tests, postscreen(8)
minimizes its impact on legitimate email traffic.
By default, postscreen(8) hands off all connections to a Postfix SMTP server
@@ -114,18 +114,18 @@ clients.
QQuuiicckk tteessttss bbeeffoorree eevveerryytthhiinngg eellssee
Before engaging in SMTP-level tests. postscreen(8) queries a number of local
-black and whitelists. These tests speed up the handling of known clients.
+deny and allowlists. These tests speed up the handling of known clients.
- * Permanent white/blacklist test
- * Temporary whitelist test
+ * Permanent allow/denylist test
+ * Temporary allowlist test
* MX Policy test
-PPeerrmmaanneenntt wwhhiittee//bbllaacckklliisstt tteesstt
+PPeerrmmaanneenntt aallllooww//ddeennyylliisstt tteesstt
The postscreen_access_list parameter (default: permit_mynetworks) specifies a
permanent access list for SMTP client IP addresses. Typically one would specify
-something that whitelists local networks, followed by a CIDR table for
-selective white- and blacklisting.
+something that allowlists local networks, followed by a CIDR table for
+selective allow- and denylisting.
Example:
@@ -135,7 +135,7 @@ Example:
/etc/postfix/postscreen_access.cidr:
# Rules are evaluated in the order as specified.
- # Blacklist 192.168.* except 192.168.0.1.
+ # Denylist 192.168.* except 192.168.0.1.
192.168.0.1 permit
192.168.0.0/16 reject
@@ -146,7 +146,7 @@ with the client address and port number as:
WWHHIITTEELLIISSTTEEDD [address]:port
-The whitelist action is not configurable: immediately hand off the connection
+The allowlist action is not configurable: immediately hand off the connection
to a Postfix SMTP server process.
When the SMTP client address matches a "reject" action, postscreen(8) logs this
@@ -157,36 +157,36 @@ with the client address and port number as:
The postscreen_blacklist_action parameter specifies the action that is taken
next. See "When tests fail before the 220 SMTP server greeting" below.
-TTeemmppoorraarryy wwhhiitteelliisstt tteesstt
+TTeemmppoorraarryy aalllloowwlliisstt tteesstt
-The postscreen(8) daemon maintains a temporary whitelist for SMTP client IP
+The postscreen(8) daemon maintains a temporary allowlist for SMTP client IP
addresses that have passed all the tests described below. The
postscreen_cache_map parameter specifies the location of the temporary
-whitelist. The temporary whitelist is not used for SMTP client addresses that
+allowlist. The temporary allowlist is not used for SMTP client addresses that
appear on the permanent access list.
-By default the temporary whitelist is not shared with other postscreen(8)
-daemons. See Sharing the temporary whitelist below for alternatives.
+By default the temporary allowlist is not shared with other postscreen(8)
+daemons. See Sharing the temporary allowlist below for alternatives.
-When the SMTP client address appears on the temporary whitelist, postscreen(8)
+When the SMTP client address appears on the temporary allowlist, postscreen(8)
logs this with the client address and port number as:
PPAASSSS OOLLDD [address]:port
The action is not configurable: immediately hand off the connection to a
Postfix SMTP server process. The client is excluded from further tests until
-its temporary whitelist entry expires, as controlled with the postscreen_*_ttl
+its temporary allowlist entry expires, as controlled with the postscreen_*_ttl
parameters. Expired entries are silently renewed if possible.
MMXX PPoolliiccyy tteesstt
When the remote SMTP client is not on the static access list or temporary
-whitelist, postscreen(8) can implement a number of whitelist tests, before it
-grants the client a temporary whitelist status that allows it to talk to a
+allowlist, postscreen(8) can implement a number of allowlist tests, before it
+grants the client a temporary allowlist status that allows it to talk to a
Postfix SMTP server process.
When postscreen(8) is configured to monitor all primary and backup MX
-addresses, it can refuse to whitelist clients that connect to a backup MX
+addresses, it can refuse to allowlist clients that connect to a backup MX
address only (an old spammer trick to take advantage of backup MX hosts with
weaker anti-spam policies than primary MX hosts).
@@ -202,24 +202,24 @@ weaker anti-spam policies than primary MX hosts).
Second, configure Postfix to listen on the new IP address (this step is
needed when you have specified inet_interfaces in main.cf).
- * Then, configure postscreen(8) to deny the temporary whitelist status on the
+ * Then, configure postscreen(8) to deny the temporary allowlist status on the
backup MX address(es). An example for Wietse's server is:
/etc/postfix/main.cf:
postscreen_whitelist_interfaces = !168.100.189.8 static:all
- Translation: allow clients to obtain the temporary whitelist status on all
+ Translation: allow clients to obtain the temporary allowlist status on all
server IP addresses except 168.100.189.8, which is a backup MX address.
-When a non-whitelisted client connects the backup MX address, postscreen(8)
+When a non-allowlisted client connects the backup MX address, postscreen(8)
logs this with the client address and port number as:
CCOONNNNEECCTT ffrroomm [address]:port ttoo [[116688..110000..118899..88]]::2255
WWHHIITTEELLIISSTT VVEETTOO [address]:port
Translation: the client at [address]:port connected to the backup MX address
-168.100.189.8 while it was not whitelisted. The client will not be granted the
-temporary whitelist status, even if passes all the whitelist tests described
+168.100.189.8 while it was not allowlisted. The client will not be granted the
+temporary allowlist status, even if passes all the allowlist tests described
below.
TTeessttss bbeeffoorree tthhee 222200 SSMMTTPP sseerrvveerr ggrreeeettiinngg
@@ -229,13 +229,13 @@ The postscreen_greet_wait parameter specifies a short time interval before the
parallel.
When a good client passes these tests, and no "deep protocol tests" are
-configured, postscreen(8) adds the client to the temporary whitelist and hands
+configured, postscreen(8) adds the client to the temporary allowlist and hands
off the "live" connection to a Postfix SMTP server process. The client can then
continue as if postscreen(8) never even existed (except of course for the short
postscreen_greet_wait delay).
* Pregreet test
- * DNS White/blacklist test
+ * DNS Allow/denylist test
* When tests fail before the 220 SMTP server greeting
PPrreeggrreeeett tteesstt
@@ -256,8 +256,8 @@ network testing tools, either exclude them from all tests with the
postscreen_access_list feature or else specify an empty teaser banner:
/etc/postfix/main.cf:
- # Exclude broken clients by whitelisting. Clients in mynetworks
- # should always be whitelisted.
+ # Exclude broken clients by allowlisting. Clients in mynetworks
+ # should always be allowlisted.
postscreen_access_list = permit_mynetworks,
cidr:/etc/postfix/postscreen_access.cidr
@@ -265,7 +265,7 @@ postscreen_access_list feature or else specify an empty teaser banner:
192.168.254.0/24 permit
/etc/postfix/main.cf:
- # Disable the teaser banner (try whitelisting first if you can).
+ # Disable the teaser banner (try allowlisting first if you can).
postscreen_greet_banner =
When an SMTP client sends a command before the postscreen_greet_wait time has
@@ -282,11 +282,11 @@ return and \n for newline).
The postscreen_greet_action parameter specifies the action that is taken next.
See "When tests fail before the 220 SMTP server greeting" below.
-DDNNSS WWhhiittee//bbllaacckklliisstt tteesstt
+DDNNSS AAllllooww//ddeennyylliisstt tteesstt
The postscreen_dnsbl_sites parameter (default: empty) specifies a list of DNS
blocklist servers with optional filters and weight factors (positive weights
-for blacklisting, negative for whitelisting). These servers will be queried in
+for denylisting, negative for allowlisting). These servers will be queried in
parallel with the reverse client IP address. This test is disabled by default.
CAUTION: when postscreen rejects mail, its SMTP reply contains the DNSBL
@@ -308,7 +308,7 @@ tests fail before the 220 SMTP server greeting" below.
WWhheenn tteessttss ffaaiill bbeeffoorree tthhee 222200 SSMMTTPP sseerrvveerr ggrreeeettiinngg
-When the client address matches the permanent blacklist, or when the client
+When the client address matches the permanent denylist, or when the client
fails the pregreet or DNSBL tests, the action is specified with
postscreen_blacklist_action, postscreen_greet_action, or
postscreen_dnsbl_action, respectively.
@@ -526,14 +526,14 @@ control these limits.
WWhheenn aallll tteessttss ssuucccceeeedd
-When a new SMTP client passes all tests (i.e. it is not whitelisted via some
+When a new SMTP client passes all tests (i.e. it is not allowlisted via some
mechanism), postscreen(8) logs this as:
PPAASSSS NNEEWW [address]:port
Where [address]:port are the client IP address and port. Then, postscreen(8)
-creates a temporary whitelist entry that excludes the client IP address from
-further tests until the temporary whitelist entry expires, as controlled with
+creates a temporary allowlist entry that excludes the client IP address from
+further tests until the temporary allowlist entry expires, as controlled with
the postscreen_*_ttl parameters.
When no "deep protocol tests" are configured, postscreen(8) hands off the
@@ -558,7 +558,7 @@ systems.
* postscreen(8) TLS configuration
* Blocking mail with postscreen(8)
* Turning off postscreen(8)
- * Sharing the temporary whitelist
+ * Sharing the temporary allowlist
TTuurrnniinngg oonn ppoossttssccrreeeenn((88)) wwiitthhoouutt bblloocckkiinngg mmaaiill
@@ -572,8 +572,8 @@ mail:
broken SMTP implementations):
/etc/postfix/main.cf:
- # Exclude broken clients by whitelisting. Clients in mynetworks
- # should always be whitelisted.
+ # Exclude broken clients by allowlisting. Clients in mynetworks
+ # should always be allowlisted.
postscreen_access_list = permit_mynetworks,
cidr:/etc/postfix/postscreen_access.cidr
@@ -655,7 +655,7 @@ Notes:
ppoossttssccrreeeenn((88)) TTLLSS ccoonnffiigguurraattiioonn
postscreen(8) TLS support is available for remote SMTP clients that aren't
-whitelisted, including clients that need to renew their temporary whitelist
+allowlisted, including clients that need to renew their temporary allowlist
status. When a remote SMTP client requests TLS service, postscreen(8) invisibly
hands off the connection to a tlsproxy(8) process. Then, tlsproxy(8) encrypts
and decrypts the traffic between postscreen(8) and the remote SMTP client. One
@@ -697,13 +697,13 @@ more of:
their turn, and to log the helo/sender/recipient information. This stops
over half of all known-to-be illegitimate connections to Wietse's mail
server. It is backup protection for zombies that haven't yet been
- blacklisted.
+ denylisted.
* You can also enable "deep protocol tests", but these are more intrusive
than the pregreet or DNSBL tests.
When a good client passes the "deep protocol tests", postscreen(8) adds the
- client to the temporary whitelist but it cannot hand off the "live"
+ client to the temporary allowlist but it cannot hand off the "live"
connection to a Postfix SMTP server process in the middle of the session.
Instead, postscreen(8) defers mail delivery attempts with a 4XX status,
logs the helo/sender/recipient information, and waits for the client to
@@ -719,10 +719,10 @@ more of:
after all.
Unfortunately, some senders will retry requests from different IP
- addresses, and may never get whitelisted. For this reason, Wietse stopped
+ addresses, and may never get allowlisted. For this reason, Wietse stopped
using "deep protocol tests" on his own internet-facing mail server.
- * There is also support for permanent blacklisting and whitelisting; see the
+ * There is also support for permanent denylisting and allowlisting; see the
description of the postscreen_access_list parameter for details.
TTuurrnniinngg ooffff ppoossttssccrreeeenn((88))
@@ -765,18 +765,18 @@ processes:
6. Read the new configuration with "postfix reload".
-SShhaarriinngg tthhee tteemmppoorraarryy wwhhiitteelliisstt
+SShhaarriinngg tthhee tteemmppoorraarryy aalllloowwlliisstt
-By default, the temporary whitelist is not shared between multiple postscreen
+By default, the temporary allowlist is not shared between multiple postscreen
(8) daemons. To enable sharing, choose one of the following options:
- * A non-persistent memcache: temporary whitelist can be shared between
+ * A non-persistent memcache: temporary allowlist can be shared between
postscreen(8) daemons on the same host or different hosts. Disable cache
cleanup (postscreen_cache_cleanup_interval = 0) in all postscreen(8)
daemons because memcache: has no first-next API (but see example 4 below
for memcache: with persistent backup). This requires Postfix 2.9 or later.
- # Example 1: non-persistent memcache: whitelist.
+ # Example 1: non-persistent memcache: allowlist.
/etc/postfix/main.cf:
postscreen_cache_map = memcache:/etc/postfix/postscreen_cache
postscreen_cache_cleanup_interval = 0
@@ -785,32 +785,32 @@ By default, the temporary whitelist is not shared between multiple postscreen
memcache = inet:127.0.0.1:11211
key_format = postscreen:%s
- * A persistent lmdb: temporary whitelist can be shared between postscreen(8)
+ * A persistent lmdb: temporary allowlist can be shared between postscreen(8)
daemons that run under the same master(8) daemon, or under different master
(8) daemons on the same host. Disable cache cleanup
(postscreen_cache_cleanup_interval = 0) in all postscreen(8) daemons except
one that is responsible for cache cleanup. This requires Postfix 2.11 or
later.
- # Example 2: persistent lmdb: whitelist.
+ # Example 2: persistent lmdb: allowlist.
/etc/postfix/main.cf:
postscreen_cache_map = lmdb:$data_directory/postscreen_cache
# See note 1 below.
# postscreen_cache_cleanup_interval = 0
- * Other kinds of persistent temporary whitelist can be shared only between
+ * Other kinds of persistent temporary allowlist can be shared only between
postscreen(8) daemons that run under the same master(8) daemon. In this
- case, temporary whitelist access must be shared through the proxymap(8)
+ case, temporary allowlist access must be shared through the proxymap(8)
daemon. This requires Postfix 2.9 or later.
- # Example 3: proxied btree: whitelist.
+ # Example 3: proxied btree: allowlist.
/etc/postfix/main.cf:
postscreen_cache_map =
proxy:btree:/var/lib/postfix/postscreen_cache
# See note 1 below.
# postscreen_cache_cleanup_interval = 0
- # Example 4: proxied btree: whitelist with memcache: accelerator.
+ # Example 4: proxied btree: allowlist with memcache: accelerator.
/etc/postfix/main.cf:
postscreen_cache_map = memcache:/etc/postfix/postscreen_cache
proxy_write_maps =
diff --git a/postfix/README_FILES/SMTPD_ACCESS_README b/postfix/README_FILES/SMTPD_ACCESS_README
index 230204a7f..a4d7c208a 100644
--- a/postfix/README_FILES/SMTPD_ACCESS_README
+++ b/postfix/README_FILES/SMTPD_ACCESS_README
@@ -23,7 +23,7 @@ RReellaayy ccoonnttrrooll,, jjuunnkk mmaaiill ccoonnttr
In a distant past, the Internet was a friendly environment. Mail servers
happily forwarded mail on behalf of anyone towards any destination. On today's
Internet, spammers abuse servers that forward mail from arbitrary systems, and
-abused systems end up on anti-spammer blacklists. See, for example, the
+abused systems end up on anti-spammer denylists. See, for example, the
information on http://www.mail-abuse.org/ and other websites.
By default, Postfix has a moderately restrictive approach to mail relaying.
@@ -50,11 +50,11 @@ email.
Protocol-oriented access controls become less useful over time as spammers
and worm writers learn to read RFC documents.
- * Blacklist oriented: some SMTP server access controls query blacklists with
+ * Denylist oriented: some SMTP server access controls query denylists with
known to be bad sites such as open mail relays, open web proxies, and home
computers that have been compromised and that are under remote control by
- criminals. The effectiveness of these blacklists depends on how complete
- and how up to date they are.
+ criminals. The effectiveness of these denylists depends on how complete and
+ how up to date they are.
* Threshold oriented: some SMTP server access controls attempt to raise the
bar by either making the client do more work (greylisting) or by asking for
@@ -160,7 +160,7 @@ Each restriction list is evaluated from left to right until some restriction
produces a result of PERMIT, REJECT or DEFER (try again later). The end of each
list is equivalent to a PERMIT result. By placing a PERMIT restriction before a
REJECT restriction you can make exceptions for specific clients or users. This
-is called whitelisting; the fourth example above allows mail from local
+is called allowlisting; the fourth example above allows mail from local
networks but otherwise rejects mail to arbitrary destinations.
The table below summarizes the purpose of each SMTP access restriction list.
@@ -248,7 +248,7 @@ Benefits of delayed restriction evaluation, and of restriction mixing:
logging only the client hostname and IP address and not knowing whose mail
was being blocked.
- * Mixing is needed for complex whitelisting policies. For example, in order
+ * Mixing is needed for complex allowlisting policies. For example, in order
to reject local sender addresses in mail from non-local clients, you need
to be able to mix restrictions on client information with restrictions on
sender information in the same restriction list. Without this ability, many
diff --git a/postfix/README_FILES/SMTPD_POLICY_README b/postfix/README_FILES/SMTPD_POLICY_README
index 0c96c760a..6386b0ec5 100644
--- a/postfix/README_FILES/SMTPD_POLICY_README
+++ b/postfix/README_FILES/SMTPD_POLICY_README
@@ -516,7 +516,7 @@ If you turn on greylisting for all mail you may want to make exceptions for
mailing lists that use one-time sender addresses, because each message will be
delayed due to greylisting, and the one-time sender addresses can pollute your
greylist database relatively quickly. Instead of making exceptions, you can
-automatically whitelist clients that survive greylisting repeatedly; this
+automatically allowlist clients that survive greylisting repeatedly; this
avoids most of the delays and most of the database pollution problem.
1 /etc/postfix/main.cf:
@@ -578,11 +578,11 @@ $database_name="/var/mta/greylist.db";
$greylist_delay=60;
#
-# Auto-whitelist threshold. Specify 0 to disable, or the number of
+# Auto-allowlist threshold. Specify 0 to disable, or the number of
# successful "come backs" after which a client is no longer subject
# to greylisting.
#
-$auto_whitelist_threshold = 10;
+$auto_allowlist_threshold = 10;
#
# Demo SMTPD access policy routine. The result is an action just like
@@ -595,10 +595,10 @@ sub smtpd_access_policy {
# Open the database on the fly.
open_database() unless $database_obj;
- # Search the auto-whitelist.
- if ($auto_whitelist_threshold > 0) {
+ # Search the auto-allowlist.
+ if ($auto_allowlist_threshold > 0) {
$count = read_database($attr{"client_address"});
- if ($count > $auto_whitelist_threshold) {
+ if ($count > $auto_allowlist_threshold) {
return "dunno";
}
}
@@ -627,8 +627,8 @@ sub smtpd_access_policy {
#
syslog $syslog_priority, "request age %d", $now - $time_stamp if $verbose;
if ($now - $time_stamp > $greylist_delay) {
- # Update the auto-whitelist.
- if ($auto_whitelist_threshold > 0) {
+ # Update the auto-allowlist.
+ if ($auto_allowlist_threshold > 0) {
update_database($attr{"client_address"}, $count + 1);
}
return "dunno";
diff --git a/postfix/README_FILES/STRESS_README b/postfix/README_FILES/STRESS_README
index bae6ad172..79d113a55 100644
--- a/postfix/README_FILES/STRESS_README
+++ b/postfix/README_FILES/STRESS_README
@@ -259,7 +259,7 @@ to Postfix.
maps. The Postfix SMTP server will reject mail and disconnect without
waiting for the remote SMTP client to send a QUIT command.
- * To hang up connections from blacklisted zombies, you can set specific
+ * To hang up connections from denylisted zombies, you can set specific
Postfix SMTP server reject codes for specific RBLs, and for individual
responses from specific RBLs. We'll use zen.spamhaus.org as an example; by
the time you read this document, details may have changed. Right now, their
diff --git a/postfix/html/ADDRESS_VERIFICATION_README.html b/postfix/html/ADDRESS_VERIFICATION_README.html
index f64439ab8..25c6a2b59 100644
--- a/postfix/html/ADDRESS_VERIFICATION_README.html
+++ b/postfix/html/ADDRESS_VERIFICATION_README.html
@@ -22,7 +22,7 @@
Recipient address verification may cause an increased load on
down-stream servers in the case of a dictionary attack or a flood
of backscatter bounces. Sender address verification may cause your
-site to be blacklisted by some providers. See also the "Limitations" section below for more.
@@ -211,7 +211,7 @@ address is deliverable. In reality, mail for a remote address can
bounce AFTER a preferred MTA accepts the recipient address, or AFTER
a preferred MTA accepts the message content.
- Some sites may blacklist you when you are probing them
+
Some sites may denylist you when you are probing them
too often (a probe is an SMTP session that does not deliver mail),
or when you are probing them too often for a non-existent address.
This is one reason why you should use sender address verification
@@ -413,12 +413,12 @@ you can see what mail would be blocked:
This is also a good way to populate your cache with address
verification results before you start to actually reject mail.
- The sender_access restriction is needed to whitelist domains
+
The sender_access restriction is needed to allowlist domains
or addresses that are known to be OK. Although Postfix will not
mark a known-to-be-good address as bad after a probe fails, it is
better to be safe than sorry.
- NOTE: You will have to whitelist sites such as securityfocus.com
+
NOTE: You will have to allowlist sites such as securityfocus.com
and other sites that operate mailing lists that use a different
sender address for each posting (VERP). Such addresses pollute
the address verification cache quickly, and generate unnecessary
diff --git a/postfix/html/OVERVIEW.html b/postfix/html/OVERVIEW.html
index 0319e8af8..ba25fdc7b 100644
--- a/postfix/html/OVERVIEW.html
+++ b/postfix/html/OVERVIEW.html
@@ -737,14 +737,14 @@ those numbers were 92% and 95%, respectively. While smtpd(8) processes remain available
for legitimate clients.
- postscreen(8) maintains a temporary whitelist for clients that
-pass its tests; by allowing whitelisted clients to skip tests,
+
postscreen(8) maintains a temporary allowlist for clients that
+pass its tests; by allowing allowlisted clients to skip tests,
postscreen(8) minimizes its impact on legitimate email traffic.
The postscreen(8) server is available with Postfix 2.8 and
later. To keep the implementation simple, postscreen(8) delegates
-DNS white/blacklist lookups to dnsblog(8) server processes, and
+DNS allow/denylist lookups to dnsblog(8) server processes, and
delegates TLS encryption/decryption to tlsproxy(8) server processes.
This delegation is invisible to the remote SMTP client, and is not
shown in the diagram below.
diff --git a/postfix/html/POSTSCREEN_README.html b/postfix/html/POSTSCREEN_README.html
index 18ec8eda6..b169740b2 100644
--- a/postfix/html/POSTSCREEN_README.html
+++ b/postfix/html/POSTSCREEN_README.html
@@ -36,8 +36,8 @@ requires client authentication. Alternatively, a site could set up
a dedicated, non-postscreen, "port 25" server that provides submission
service and client authentication, but no MX service.
- postscreen(8) maintains a temporary whitelist for clients that
-pass its tests; by allowing whitelisted clients to skip tests,
+
postscreen(8) maintains a temporary allowlist for clients that
+pass its tests; by allowing allowlisted clients to skip tests,
postscreen(8) minimizes its impact on legitimate email traffic.
@@ -110,11 +110,11 @@ spending most of its resources not receiving email.
decision based on a single measurement. This is necessary because
many zombies try to fly under the radar and avoid spamming the same
site repeatedly. Once postscreen(8) decides that a client is
-not-a-zombie, it whitelists the client temporarily to avoid further
+not-a-zombie, it allowlists the client temporarily to avoid further
delays for legitimate mail.
Zombies have challenges too: they have only a limited amount
-of time to deliver spam before their IP address becomes blacklisted.
+of time to deliver spam before their IP address becomes denylisted.
To speed up spam deliveries, zombies make compromises in their SMTP
protocol implementation. For example, they speak before their turn,
or they ignore responses from SMTP servers and continue sending
@@ -122,7 +122,7 @@ mail even when the server tells them to go away.
postscreen(8) uses a variety of measurements to recognize
zombies. First, postscreen(8) determines if the remote SMTP client
-IP address is blacklisted. Second, postscreen(8) looks for protocol
+IP address is denylisted. Second, postscreen(8) looks for protocol
compromises that are made to speed up delivery. These are good
indicators for making is-a-zombie decisions based on single
measurements.
@@ -138,8 +138,8 @@ and that is the problem that postscreen(8) is fo
For each connection from an SMTP client, postscreen(8) performs
a number of tests
in the order as described below. Some tests introduce a delay of
-a few seconds. postscreen(8) maintains a temporary whitelist for
-clients that pass its tests; by allowing whitelisted clients to
+a few seconds. postscreen(8) maintains a temporary allowlist for
+clients that pass its tests; by allowing allowlisted clients to
skip tests, postscreen(8) minimizes its impact on legitimate email
traffic.
@@ -158,25 +158,25 @@ overhead for legitimate clients.
Before engaging in SMTP-level tests. postscreen(8) queries a
-number of local black and whitelists. These tests speed up the
+number of local deny and allowlists. These tests speed up the
handling of known clients.
-
+
The postscreen_access_list parameter (default: permit_mynetworks)
specifies a permanent access list for SMTP client IP addresses. Typically
-one would specify something that whitelists local networks, followed
-by a CIDR table for selective white- and blacklisting.
+one would specify something that allowlists local networks, followed
+by a CIDR table for selective allow- and denylisting.
Example:
@@ -187,7 +187,7 @@ by a CIDR table for selective white- and blacklisting.
/etc/postfix/postscreen_access.cidr:
# Rules are evaluated in the order as specified.
- # Blacklist 192.168.* except 192.168.0.1.
+ # Denylist 192.168.* except 192.168.0.1.
192.168.0.1 permit
192.168.0.0/16 reject
@@ -203,7 +203,7 @@ details.
WHITELISTED [address]:port
- The whitelist action is not configurable: immediately hand off the
+
The allowlist action is not configurable: immediately hand off the
connection to a Postfix SMTP server process.
When the SMTP client address matches a "reject" action,
@@ -218,21 +218,21 @@ connection to a Postfix SMTP server process.
that is taken next. See "When tests
fail before the 220 SMTP server greeting" below.
-
+
The postscreen(8) daemon maintains a temporary
-whitelist for SMTP client IP addresses that have passed all
+allowlist for SMTP client IP addresses that have passed all
the tests described below. The postscreen_cache_map parameter
-specifies the location of the temporary whitelist. The
-temporary whitelist is not used for SMTP client addresses
+specifies the location of the temporary allowlist. The
+temporary allowlist is not used for SMTP client addresses
that appear on the permanent access list.
- By default the temporary whitelist is not shared with other
+
By default the temporary allowlist is not shared with other
postscreen(8) daemons. See Sharing
-the temporary whitelist below for alternatives.
+the temporary allowlist below for alternatives.
When the SMTP client address appears on the temporary
-whitelist, postscreen(8) logs this with the client address and port
+allowlist, postscreen(8) logs this with the client address and port
number as:
@@ -241,19 +241,19 @@ number as:
The action is not configurable: immediately hand off the
connection to a Postfix SMTP server process. The client is
-excluded from further tests until its temporary whitelist
+excluded from further tests until its temporary allowlist
entry expires, as controlled with the postscreen_*_ttl
parameters. Expired entries are silently renewed if possible.
When the remote SMTP client is not on the static access list
-or temporary whitelist, postscreen(8) can implement a number of
-whitelist tests, before it grants the client a temporary whitelist
+or temporary allowlist, postscreen(8) can implement a number of
+allowlist tests, before it grants the client a temporary allowlist
status that allows it to talk to a Postfix SMTP server process.
When postscreen(8) is configured to monitor all primary and
-backup MX addresses, it can refuse to whitelist clients that connect
+backup MX addresses, it can refuse to allowlist clients that connect
to a backup MX address only (an old spammer trick to take advantage
of backup MX hosts with weaker anti-spam policies than primary MX
hosts).
@@ -274,7 +274,7 @@ files and "refresh" the network protocol stack.
(this step is needed when you have specified inet_interfaces in
main.cf).
-
Then, configure postscreen(8) to deny the temporary whitelist
+
Then, configure postscreen(8) to deny the temporary allowlist
status on the backup MX address(es). An example for Wietse's
server is:
@@ -283,13 +283,13 @@ server is:
postscreen_whitelist_interfaces = !168.100.189.8 static:all
- Translation: allow clients to obtain the temporary whitelist
+
Translation: allow clients to obtain the temporary allowlist
status on all server IP addresses except 168.100.189.8, which is a
backup MX address.
- When a non-whitelisted client connects the backup MX address,
+
When a non-allowlisted client connects the backup MX address,
postscreen(8) logs this with the client address and port number as:
@@ -299,9 +299,9 @@ backup MX address.
Translation: the client at [address]:port connected to
-the backup MX address 168.100.189.8 while it was not whitelisted.
-The client will not be granted the temporary whitelist status, even
-if passes all the whitelist tests described below.
+the backup MX address 168.100.189.8 while it was not allowlisted.
+The client will not be granted the temporary allowlist status, even
+if passes all the allowlist tests described below.
@@ -311,7 +311,7 @@ interval before the "220 text..." server greeting, where
When a good client passes these tests, and no "deep protocol tests" are configured, postscreen(8)
-adds the client to the temporary whitelist and hands off the "live"
+adds the client to the temporary allowlist and hands off the "live"
connection to a Postfix SMTP server process. The client can then
continue as if postscreen(8) never even existed (except of course
for the short postscreen_greet_wait delay).
@@ -320,7 +320,7 @@ for the short postscreen_greet_w
Pregreet test
- DNS White/blacklist test
+ DNS Allow/denylist test
When tests fail before the 220 SMTP server greeting
@@ -348,8 +348,8 @@ an empty teaser banner:
/etc/postfix/main.cf:
- # Exclude broken clients by whitelisting. Clients in mynetworks
- # should always be whitelisted.
+ # Exclude broken clients by allowlisting. Clients in mynetworks
+ # should always be allowlisted.
postscreen_access_list = permit_mynetworks,
cidr:/etc/postfix/postscreen_access.cidr
@@ -359,7 +359,7 @@ an empty teaser banner:
/etc/postfix/main.cf:
- # Disable the teaser banner (try whitelisting first if you can).
+ # Disable the teaser banner (try allowlisting first if you can).
postscreen_greet_banner =
@@ -382,11 +382,11 @@ and \n for newline).
is taken next. See "When tests fail
before the 220 SMTP server greeting" below.
-
+
The postscreen_dnsbl_sites parameter (default: empty) specifies
a list of DNS blocklist servers with optional filters and weight
-factors (positive weights for blacklisting, negative for whitelisting).
+factors (positive weights for denylisting, negative for allowlisting).
These servers will be queried in parallel with the reverse client
IP address. This test is disabled by default.
@@ -416,7 +416,7 @@ before the 220 SMTP server greeting
" below.
- When the client address matches the permanent blacklist, or
+
When the client address matches the permanent denylist, or
when the client fails the pregreet or DNSBL tests, the action is
specified with postscreen_blacklist_action, postscreen_greet_action,
or postscreen_dnsbl_action, respectively.
@@ -736,7 +736,7 @@ parameters control these limits.
- When a new SMTP client passes all tests (i.e. it is not whitelisted
+
When a new SMTP client passes all tests (i.e. it is not allowlisted
via some mechanism), postscreen(8) logs this as:
@@ -745,8 +745,8 @@ via some mechanism), postscreen(8) logs this as:
Where [address]:port are the client IP address and port.
Then, postscreen(8)
-creates a temporary whitelist entry that excludes the client IP
-address from further tests until the temporary whitelist entry
+creates a temporary allowlist entry that excludes the client IP
+address from further tests until the temporary allowlist entry
expires, as controlled with the postscreen_*_ttl parameters.
When no "deep protocol tests" are
@@ -783,7 +783,7 @@ mail
Turning off postscreen(8)
- Sharing the temporary whitelist
+ Sharing the temporary allowlist
@@ -803,8 +803,8 @@ tend to have broken SMTP implementations):
/etc/postfix/main.cf:
- # Exclude broken clients by whitelisting. Clients in mynetworks
- # should always be whitelisted.
+ # Exclude broken clients by allowlisting. Clients in mynetworks
+ # should always be allowlisted.
postscreen_access_list = permit_mynetworks,
cidr:/etc/postfix/postscreen_access.cidr
@@ -921,8 +921,8 @@ work reliably on all systems.
postscreen(8) TLS support is available for remote SMTP clients
-that aren't whitelisted, including clients that need to renew their
-temporary whitelist status. When a remote SMTP client requests TLS
+that aren't allowlisted, including clients that need to renew their
+temporary allowlist status. When a remote SMTP client requests TLS
service, postscreen(8) invisibly hands off the connection to a
tlsproxy(8) process. Then, tlsproxy(8) encrypts and decrypts the
traffic between postscreen(8) and the remote SMTP client. One
@@ -976,7 +976,7 @@ Postfix SMTP servers dramatically.
clients that talk before their turn, and to log the helo/sender/recipient
information. This stops over half of all known-to-be illegitimate
connections to Wietse's mail server. It is backup protection for
-zombies that haven't yet been blacklisted.
+zombies that haven't yet been denylisted.
You can also enable "deep protocol
tests", but these are more intrusive than the pregreet or DNSBL
@@ -984,7 +984,7 @@ tests.
When a good client passes the "deep
protocol tests", postscreen(8) adds the client to the temporary
-whitelist but it cannot hand off the "live" connection to a Postfix
+allowlist but it cannot hand off the "live" connection to a Postfix
SMTP server process in the middle of the session. Instead, postscreen(8)
defers mail delivery attempts with a 4XX status, logs the
helo/sender/recipient information, and waits for the client to
@@ -1000,12 +1000,12 @@ tests
" is that some "good" clients don't return after the 4XX
reply; these clients were not so good after all.
Unfortunately, some senders will retry requests from different
-IP addresses, and may never get whitelisted. For this reason,
+IP addresses, and may never get allowlisted. For this reason,
Wietse stopped using "deep protocol tests"
on his own internet-facing mail server.
- There is also support for permanent blacklisting and
-whitelisting; see the description of the postscreen_access_list
+
There is also support for permanent denylisting and
+allowlisting; see the description of the postscreen_access_list
parameter for details.
@@ -1070,15 +1070,15 @@ may follow.
-
+
- By default, the temporary whitelist is not shared between
+
By default, the temporary allowlist is not shared between
multiple postscreen(8) daemons. To enable sharing, choose one
of the following options:
--
A non-persistent memcache: temporary whitelist can be shared
+
-
A non-persistent memcache: temporary allowlist can be shared
between postscreen(8) daemons on the same host or different
hosts. Disable cache cleanup (postscreen_cache_cleanup_interval
= 0) in all postscreen(8) daemons because memcache: has no
@@ -1086,7 +1086,7 @@ of the following options:
persistent backup). This requires Postfix 2.9 or later.
- # Example 1: non-persistent memcache: whitelist.
+ # Example 1: non-persistent memcache: allowlist.
/etc/postfix/main.cf:
postscreen_cache_map = memcache:/etc/postfix/postscreen_cache
postscreen_cache_cleanup_interval = 0
@@ -1097,7 +1097,7 @@ of the following options:
-
- A persistent lmdb: temporary whitelist can be shared between
+ A persistent lmdb: temporary allowlist can be shared between
postscreen(8) daemons that run under the same master(8) daemon,
or under different master(8) daemons on the same host. Disable
cache cleanup (postscreen_cache_cleanup_interval = 0) in all
@@ -1105,28 +1105,28 @@ of the following options:
cleanup. This requires Postfix 2.11 or later.
- # Example 2: persistent lmdb: whitelist.
+ # Example 2: persistent lmdb: allowlist.
/etc/postfix/main.cf:
postscreen_cache_map = lmdb:$data_directory/postscreen_cache
# See note 1 below.
# postscreen_cache_cleanup_interval = 0
- -
Other kinds of persistent temporary whitelist can be shared
+
-
Other kinds of persistent temporary allowlist can be shared
only between postscreen(8) daemons that run under the same
- master(8) daemon. In this case, temporary whitelist access must
+ master(8) daemon. In this case, temporary allowlist access must
be shared through the proxymap(8) daemon. This requires Postfix
2.9 or later.
- # Example 3: proxied btree: whitelist.
+ # Example 3: proxied btree: allowlist.
/etc/postfix/main.cf:
postscreen_cache_map =
proxy:btree:/var/lib/postfix/postscreen_cache
# See note 1 below.
# postscreen_cache_cleanup_interval = 0
- # Example 4: proxied btree: whitelist with memcache: accelerator.
+ # Example 4: proxied btree: allowlist with memcache: accelerator.
/etc/postfix/main.cf:
postscreen_cache_map = memcache:/etc/postfix/postscreen_cache
proxy_write_maps =
@@ -1189,4 +1189,3 @@ POP, IMAP, NNTP, and FTP over TLS.