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.

What Postfix address verification can do for you

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

    Quick tests before everything else

    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.

    -

    Permanent white/blacklist test

    +

    Permanent allow/denylist test

    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.

    -

    Temporary whitelist test

    +

    Temporary allowlist test

    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.

    MX Policy test

    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.

    Tests before the 220 SMTP server greeting

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

    -

    DNS White/blacklist test

    +

    DNS Allow/denylist test

    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 tests fail before the 220 SMTP server greeting

    -

    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 all tests succeed

    -

    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 configuration

    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.

    -

    Sharing the temporary whitelist

    +

    Sharing the temporary allowlist

    -

    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. 

      - diff --git a/postfix/html/SMTPD_ACCESS_README.html b/postfix/html/SMTPD_ACCESS_README.html index c43afe987..1ac3d57c2 100644 --- a/postfix/html/SMTPD_ACCESS_README.html +++ b/postfix/html/SMTPD_ACCESS_README.html @@ -55,7 +55,7 @@ policies 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 information 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 @@ -87,11 +87,11 @@ SMTP client implementations. 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 known to be bad sites such as open mail +

    • 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 +effectiveness of these denylists depends on how complete and how up to date they are.

    • Threshold oriented: some SMTP server access controls attempt @@ -218,7 +218,7 @@ 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 +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 @@ -320,7 +320,7 @@ until the RCPT TO command, it can log the sender and the recipient address. This is more useful than logging only the client hostname and IP address and not knowing whose mail was being blocked.

      -
    • Mixing is needed for complex whitelisting policies. For +

    • 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 diff --git a/postfix/html/SMTPD_POLICY_README.html b/postfix/html/SMTPD_POLICY_README.html index 2e4f4128b..bc58dd45c 100644 --- a/postfix/html/SMTPD_POLICY_README.html +++ b/postfix/html/SMTPD_POLICY_README.html @@ -672,7 +672,7 @@ 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 avoids +allowlist clients that survive greylisting repeatedly; this avoids most of the delays and most of the database pollution problem.

      @@ -746,11 +746,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 @@ -763,10 +763,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"; } } @@ -795,8 +795,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/html/STRESS_README.html b/postfix/html/STRESS_README.html index 691e7a1bd..0036b28d2 100644 --- a/postfix/html/STRESS_README.html +++ b/postfix/html/STRESS_README.html @@ -354,7 +354,7 @@ such as SMTP access 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 +

    • 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, diff --git a/postfix/html/cidr_table.5.html b/postfix/html/cidr_table.5.html index 113cd8dc3..e4569cfeb 100644 --- a/postfix/html/cidr_table.5.html +++ b/postfix/html/cidr_table.5.html @@ -103,8 +103,8 @@ CIDR_TABLE(5) CIDR_TABLE(5) smtpd_client_restrictions = ... cidr:/etc/postfix/client.cidr ... /etc/postfix/client.cidr: - # Rule order matters. Put more specific whitelist entries - # before more general blacklist entries. + # Rule order matters. Put more specific allowlist entries + # before more general denylist entries. 192.168.1.1 OK 192.168.0.0/16 REJECT 2001:db8::1 OK diff --git a/postfix/html/dnsblog.8.html b/postfix/html/dnsblog.8.html index da2aa2708..e21033323 100644 --- a/postfix/html/dnsblog.8.html +++ b/postfix/html/dnsblog.8.html @@ -7,26 +7,26 @@ DNSBLOG(8) DNSBLOG(8) NAME - dnsblog - Postfix DNS white/blacklist logger + dnsblog - Postfix DNS allow/denylist logger SYNOPSIS dnsblog [generic Postfix daemon options] DESCRIPTION - The dnsblog(8) server implements an ad-hoc DNS white/blacklist lookup + The dnsblog(8) server implements an ad-hoc DNS allow/denylist lookup service. This may eventually be replaced by an UDP client that is built directly into the postscreen(8) server. PROTOCOL - With each connection, the dnsblog(8) server receives a DNS white/black- - list domain name, an IP address, and an ID. If the IP address is - listed under the DNS white/blacklist, the dnsblog(8) server logs the - match and replies with the query arguments plus an address list with - the resulting IP addresses, separated by whitespace, and the reply TTL. - Otherwise it replies with the query arguments plus an empty address - list and the reply TTL; the reply TTL is -1 if there is no reply, or a - negative reply that contains no SOA record. Finally, the dnsblog(8) - server closes the connection. + With each connection, the dnsblog(8) server receives a DNS + allow/denylist domain name, an IP address, and an ID. If the IP + address is listed under the DNS allow/denylist, the dnsblog(8) server + logs the match and replies with the query arguments plus an address + list with the resulting IP addresses, separated by whitespace, and the + reply TTL. Otherwise it replies with the query arguments plus an empty + address list and the reply TTL; the reply TTL is -1 if there is no + reply, or a negative reply that contains no SOA record. Finally, the + dnsblog(8) server closes the connection. DIAGNOSTICS Problems and transactions are logged to syslogd(8) or postlogd(8). @@ -48,7 +48,7 @@ DNSBLOG(8) DNSBLOG(8) request before it is terminated by a built-in watchdog timer. postscreen_dnsbl_sites (empty) - Optional list of DNS white/blacklist domains, filters and weight + Optional list of DNS allow/denylist domains, filters and weight factors. ipc_timeout (3600s) diff --git a/postfix/html/postconf.5.html b/postfix/html/postconf.5.html index cb63ebe65..415d15a9b 100644 --- a/postfix/html/postconf.5.html +++ b/postfix/html/postconf.5.html @@ -2510,7 +2510,7 @@ See reject_unkn

      $rbl_class
      -
      The blacklisted entity type: Client host, Helo command, Sender +
      The denylisted entity type: Client host, Helo command, Sender address, or Recipient address.
      $rbl_code
      @@ -2523,16 +2523,16 @@ by an
      RFC 3463 enhanced status
      $rbl_domain
      -
      The RBL domain where $rbl_what is blacklisted.
      +
      The RBL domain where $rbl_what is denylisted.
      $rbl_reason
      -
      The reason why $rbl_what is blacklisted, or an empty string.
      +
      The reason why $rbl_what is denylisted, or an empty string.
      $rbl_what
      -
      The entity that is blacklisted (an IP address, a hostname, a domain -name, or an email address whose domain was blacklisted).
      +
      The entity that is denylisted (an IP address, a hostname, a domain +name, or an email address whose domain was denylisted).
      $recipient
      @@ -3041,7 +3041,7 @@ This feature is available in Postfix 3.1 and later. (default: dnsblog)

      The name of the dnsblog(8) service entry in master.cf. This -service performs DNS white/blacklist lookups.

      +service performs DNS allow/denylist lookups.

      This feature is available in Postfix 2.8 and later.

      @@ -7056,7 +7056,7 @@ by default.

    • The milter_header_checks mechanism could also be used for -whitelisting. For example it could be used to skip heavy content +allowlisting. For example it could be used to skip heavy content inspection for DKIM-signed mail from known friendly domains.

      This feature is available in Postfix 2.7, and as an optional @@ -7977,7 +7977,7 @@ and enabled instances are processed in reverse order.

      postscreen_access_list (default: permit_mynetworks)
      -

      Permanent white/blacklist for remote SMTP client IP addresses. +

      Permanent allow/denylist for remote SMTP client IP addresses. postscreen(8) searches this list immediately after a remote SMTP client connects. Specify a comma- or whitespace-separated list of commands (in upper or lower case) or lookup tables. The search stops @@ -7985,7 +7985,7 @@ upon the first command that fires for the client IP address.

      -
      permit_mynetworks
      Whitelist the client and +
      permit_mynetworks
      Allowlist the client and terminate the search if the client IP address matches $mynetworks. Do not subject the client to any before/after 220 greeting tests. Pass the connection immediately to a Postfix SMTP server process. @@ -8000,12 +8000,12 @@ To discourage the use of hash, btree, etc. tables, there is no support for substring matching like smtpd(8). Use CIDR tables instead.
      -
      permit
      Whitelist the client and terminate +
      permit
      Allowlist the client and terminate the search. Do not subject the client to any before/after 220 greeting tests. Pass the connection immediately to a Postfix SMTP server process.
      -
      reject
      Blacklist the client and terminate +
      reject
      Denylist the client and terminate the search. Subject the client to the action configured with the postscreen_blacklist_action configuration parameter.
      @@ -8030,7 +8030,7 @@ to the configured before/after 220 greeting tests.
       /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         dunno
           192.168.0.0/16      reject
       
      @@ -8112,7 +8112,7 @@ one-letter suffix that specifies the time unit). Time units: s (default: ignore)

      The action that postscreen(8) takes when a remote SMTP client is -permanently blacklisted with the postscreen_access_list parameter. +permanently denylisted with the postscreen_access_list parameter. Specify one of the following:

      @@ -8185,7 +8185,7 @@ approach see the memcache_table(5) manpage. (default: 7d)

      The amount of time that postscreen(8) will cache an expired -temporary whitelist entry before it is removed. This prevents clients +temporary allowlist entry before it is removed. This prevents clients from being logged as "NEW" just because their cache entry expired an hour ago. It also prevents the cache from filling up with clients that passed some deep protocol test once and never came back.

      @@ -8394,7 +8394,7 @@ the file is read).

      postscreen_dnsbl_sites (default: empty)
      -

      Optional list of DNS white/blacklist domains, filters and weight +

      Optional list of DNS allow/denylist domains, filters and weight factors. When the list is non-empty, the dnsblog(8) daemon will query these domains with the IP addresses of remote SMTP clients, and postscreen(8) will update an SMTP client's DNSBL score with @@ -8423,7 +8423,7 @@ or more ";"-separated numbers or number..number ranges.

      the remote SMTP client's DNSBL score by 1. Otherwise, the weight must be an integral number, and postscreen(8) adds the specified weight to the remote SMTP client's DNSBL score. Specify a negative number for -whitelisting.

      +allowlisting.

    • When one postscreen_dnsbl_sites entry produces multiple DNSBL responses, postscreen(8) applies the weight at most once. @@ -8580,7 +8580,7 @@ this test the next time the client connects.

    • -

      In either case, postscreen(8) will not whitelist the remote SMTP client +

      In either case, postscreen(8) will not allowlist the remote SMTP client IP address.

      This feature is available in Postfix 2.8.

      @@ -8800,10 +8800,10 @@ receive a 421 response.

      postscreen_pre_queue_limit (default: $default_process_limit)
      -

      The number of non-whitelisted clients that can be waiting for +

      The number of non-allowlisted clients that can be waiting for a decision whether they will receive service from a real Postfix SMTP server -process. When this queue is full, all non-whitelisted clients will +process. When this queue is full, all non-allowlisted clients will receive a 421 response.

      This feature is available in Postfix 2.8.

      @@ -8909,18 +8909,18 @@ one-letter suffix that specifies the time unit). Time units: s (default: static:all)

      A list of local postscreen(8) server IP addresses where a -non-whitelisted remote SMTP client can obtain postscreen(8)'s temporary -whitelist status. This status is required before the client can +non-allowlisted remote SMTP client can obtain postscreen(8)'s temporary +allowlist status. This status is required before the client can talk to a Postfix SMTP server process. By default, a client can -obtain postscreen(8)'s whitelist status on any local postscreen(8) +obtain postscreen(8)'s allowlist status on any local postscreen(8) server IP address.

      When postscreen(8) listens on both primary and backup MX addresses, the postscreen_whitelist_interfaces parameter can be -configured to give the temporary whitelist status only when a client -connects to a primary MX address. Once a client is whitelisted it +configured to give the temporary allowlist status only when a client +connects to a primary MX address. Once a client is allowlisted it can talk to a Postfix SMTP server on any address. Thus, clients -that connect only to backup MX addresses will never become whitelisted, +that connect only to backup MX addresses will never become allowlisted, and will never be allowed to talk to a Postfix SMTP server process.

      @@ -8948,7 +8948,7 @@ pattern.

       /etc/postfix/main.cf:
      -    # Don't whitelist connections to the backup IP address.
      +    # Don't allowlist connections to the backup IP address.
           postscreen_whitelist_interfaces = !168.100.189.8, static:all
       
      @@ -14497,7 +14497,7 @@ least significant octets. See the access(5) manual p
      Search the specified access(5) database for the IP addresses for the client hostname, and execute the corresponding action. Note: a result of "OK" is not allowed for safety reasons. Instead, use DUNNO in order -to exclude specific hosts from blacklists. This feature is available +to exclude specific hosts from denylists. This feature is available in Postfix 3.0 and later.
      check_client_mx_access type:table
      @@ -14507,7 +14507,7 @@ client hostname, and execute the corresponding action. If no MX record is found, look up A or AAAA records, just like the Postfix SMTP client would. Note: a result of "OK" is not allowed for safety reasons. Instead, use DUNNO in order -to exclude specific hosts from blacklists. This feature is available +to exclude specific hosts from denylists. This feature is available in Postfix 2.7 and later.
      check_client_ns_access type:table
      @@ -14515,7 +14515,7 @@ in Postfix 2.7 and later.
      Search the specified access(5) database for the DNS servers for the client hostname, and execute the corresponding action. Note: a result of "OK" is not allowed for safety reasons. Instead, use DUNNO -in order to exclude specific hosts from blacklists. This feature is +in order to exclude specific hosts from denylists. This feature is available in Postfix 2.7 and later.
      check_reverse_client_hostname_access type:table
      @@ -14525,7 +14525,7 @@ client hostname, parent domains, client IP address, or networks obtained by stripping least significant octets. See the access(5) manual page for details. Note: a result of "OK" is not allowed for safety reasons. Instead, use DUNNO in order to exclude specific -hosts from blacklists. This feature is available in Postfix 2.6 +hosts from denylists. This feature is available in Postfix 2.6 and later.
      check_reverse_client_hostname_a_access type:table
      @@ -14533,7 +14533,7 @@ and later.
      Search the specified access(5) database for the IP addresses for the unverified reverse client hostname, and execute the corresponding action. Note: a result of "OK" is not allowed for safety reasons. -Instead, use DUNNO in order to exclude specific hosts from blacklists. +Instead, use DUNNO in order to exclude specific hosts from denylists. This feature is available in Postfix 3.0 and later.
      check_reverse_client_hostname_mx_access type:table
      @@ -14543,7 +14543,7 @@ unverified reverse client hostname, and execute the corresponding action. If no MX record is found, look up A or AAAA records, just like the Postfix SMTP client would. Note: a result of "OK" is not allowed for safety reasons. -Instead, use DUNNO in order to exclude specific hosts from blacklists. +Instead, use DUNNO in order to exclude specific hosts from denylists. This feature is available in Postfix 2.7 and later.
      check_reverse_client_hostname_ns_access type:table
      @@ -14551,7 +14551,7 @@ This feature is available in Postfix 2.7 and later.
      Search the specified access(5) database for the DNS servers for the unverified reverse client hostname, and execute the corresponding action. Note: a result of "OK" is not allowed for safety reasons. -Instead, use DUNNO in order to exclude specific hosts from blacklists. +Instead, use DUNNO in order to exclude specific hosts from denylists. This feature is available in Postfix 2.7 and later.
      check_sasl_access type:table
      @@ -14636,7 +14636,7 @@ If no "=d.d.d.d" is specified, accept the request when the reversed client network address is listed with any A record under dnswl_domain.
      For safety, permit_dnswl_client is silently ignored when it would override reject_unauth_destination. The -result is DEFER_IF_REJECT when whitelist lookup fails. This feature +result is DEFER_IF_REJECT when allowlist lookup fails. This feature is available in Postfix 2.8 and later.
      reject_rhsbl_client rbl_domain=d.d.d.d
      @@ -14662,13 +14662,13 @@ is a number, or a pattern inside "[]" that contains one or more ";"-separated numbers or number..number ranges. If no "=d.d.d.d" is specified, accept the request when the client hostname is listed with any A record under rhswl_domain. -
      Caution: client name whitelisting is fragile, since the client +
      Caution: client name allowlisting is fragile, since the client name lookup can fail due to temporary outages. Client name -whitelisting should be used only to reduce false positives in e.g. +allowlisting should be used only to reduce false positives in e.g. DNS-based blocklists, and not for making access rule exceptions.
      For safety, permit_rhswl_client is silently ignored when it would override reject_unauth_destination. The result is DEFER_IF_REJECT -when whitelist lookup fails. This feature is available in Postfix +when allowlist lookup fails. This feature is available in Postfix 2.8 and later.
      reject_rhsbl_reverse_client rbl_domain=d.d.d.d
      @@ -14734,7 +14734,7 @@ the SMTP server reply code (default: 450).
      defer_if_permit
      Defer the request if some later restriction would result in an -explicit or implicit PERMIT action. This is useful when a blacklisting +explicit or implicit PERMIT action. This is useful when a denylisting feature fails due to a temporary problem. This feature is available in Postfix version 2.1 and later.
      @@ -15324,7 +15324,7 @@ simply skip check_helo_access by
      Search the specified access(5) database for the IP addresses for the HELO or EHLO hostname, and execute the corresponding action. Note 1: a result of "OK" is not allowed for safety reasons. Instead, -use DUNNO in order to exclude specific hosts from blacklists. Note +use DUNNO in order to exclude specific hosts from denylists. Note 2: specify "smtpd_helo_required = yes" to fully enforce this restriction (without "smtpd_helo_required = yes", a client can simply skip check_helo_a_access by not sending HELO or EHLO). This @@ -15338,7 +15338,7 @@ the HELO or EHLO hostname, and execute the corresponding action. If no MX record is found, look up A or AAAA records, just like the Postfix SMTP client would. Note 1: a result of "OK" is not allowed for safety reasons. Instead, -use DUNNO in order to exclude specific hosts from blacklists. Note +use DUNNO in order to exclude specific hosts from denylists. Note 2: specify "smtpd_helo_required = yes" to fully enforce this restriction (without "smtpd_helo_required = yes", a client can simply skip check_helo_mx_access by not sending HELO or EHLO). This @@ -15350,7 +15350,7 @@ feature is available in Postfix 2.1 and later.
      Search the specified access(5) database for the DNS servers for the HELO or EHLO hostname, and execute the corresponding action. Note 1: a result of "OK" is not allowed for safety reasons. Instead, -use DUNNO in order to exclude specific hosts from blacklists. Note +use DUNNO in order to exclude specific hosts from denylists. Note 2: specify "smtpd_helo_required = yes" to fully enforce this restriction (without "smtpd_helo_required = yes", a client can simply skip check_helo_ns_access by not sending HELO or EHLO). This @@ -15918,7 +15918,7 @@ corresponding action.
      Search the specified access(5) database for the IP addresses for the RCPT TO domain, and execute the corresponding action. Note: a result of "OK" is not allowed for safety reasons. Instead, use -DUNNO in order to exclude specific hosts from blacklists. This +DUNNO in order to exclude specific hosts from denylists. This feature is available in Postfix 3.0 and later.
      check_recipient_mx_access type:table
      @@ -15928,7 +15928,7 @@ the RCPT TO domain, and execute the corresponding action. If no MX record is found, look up A or AAAA records, just like the Postfix SMTP client would. Note: a result of "OK" is not allowed for safety reasons. Instead, use -DUNNO in order to exclude specific hosts from blacklists. This +DUNNO in order to exclude specific hosts from denylists. This feature is available in Postfix 2.1 and later.
      check_recipient_ns_access type:table
      @@ -15936,7 +15936,7 @@ feature is available in Postfix 2.1 and later.
      Search the specified access(5) database for the DNS servers for the RCPT TO domain, and execute the corresponding action. Note: a result of "OK" is not allowed for safety reasons. Instead, -use DUNNO in order to exclude specific hosts from blacklists. This +use DUNNO in order to exclude specific hosts from denylists. This feature is available in Postfix 2.1 and later.
      permit_auth_destination
      @@ -16796,7 +16796,7 @@ corresponding action.
      Search the specified access(5) database for the IP addresses for the MAIL FROM domain, and execute the corresponding action. Note: a result of "OK" is not allowed for safety reasons. Instead, use -DUNNO in order to exclude specific hosts from blacklists. This +DUNNO in order to exclude specific hosts from denylists. This feature is available in Postfix 3.0 and later.
      check_sender_mx_access type:table
      @@ -16806,7 +16806,7 @@ the MAIL FROM domain, and execute the corresponding action. If no MX record is found, look up A or AAAA records, just like the Postfix SMTP client would. Note: a result of "OK" is not allowed for safety reasons. Instead, use -DUNNO in order to exclude specific hosts from blacklists. This +DUNNO in order to exclude specific hosts from denylists. This feature is available in Postfix 2.1 and later.
      check_sender_ns_access type:table
      @@ -16814,7 +16814,7 @@ feature is available in Postfix 2.1 and later.
      Search the specified access(5) database for the DNS servers for the MAIL FROM domain, and execute the corresponding action. Note: a result of "OK" is not allowed for safety reasons. Instead, -use DUNNO in order to exclude specific hosts from blacklists. This +use DUNNO in order to exclude specific hosts from denylists. This feature is available in Postfix 2.1 and later.
      reject_authenticated_sender_login_mismatch
      diff --git a/postfix/html/postfix-manuals.html b/postfix/html/postfix-manuals.html index a2650b11f..54aa8595b 100644 --- a/postfix/html/postfix-manuals.html +++ b/postfix/html/postfix-manuals.html @@ -192,7 +192,7 @@ the following convention:

    • discard(8), Postfix discard delivery agent -
    • dnsblog(8), DNS black/whitelist logger +
    • dnsblog(8), DNS allow/denylist logger
    • error(8), Postfix error delivery agent diff --git a/postfix/html/postfix.1.html b/postfix/html/postfix.1.html index 2e5b4eb2a..32c04801c 100644 --- a/postfix/html/postfix.1.html +++ b/postfix/html/postfix.1.html @@ -366,7 +366,7 @@ POSTFIX(1) POSTFIX(1) bounce(8), defer(8), trace(8), Delivery status reports cleanup(8), canonicalize and enqueue message discard(8), Postfix discard delivery agent - dnsblog(8), DNS black/whitelist logger + dnsblog(8), DNS allow/denylist logger error(8), Postfix error delivery agent flush(8), Postfix fast ETRN service local(8), Postfix local delivery agent diff --git a/postfix/html/postscreen.8.html b/postfix/html/postscreen.8.html index 4d0bade55..135a7eed0 100644 --- a/postfix/html/postscreen.8.html +++ b/postfix/html/postscreen.8.html @@ -28,9 +28,9 @@ POSTSCREEN(8) POSTSCREEN(8) "port 25" server that provides submission service and client authenti- cation, but no MX service. - postscreen(8) maintains a temporary whitelist for clients that have + postscreen(8) maintains a temporary allowlist for clients that have passed a number of tests. When an SMTP client IP address is - whitelisted, postscreen(8) hands off the connection immediately to a + allowlisted, postscreen(8) hands off the connection immediately to a Postfix SMTP server process. This minimizes the overhead for legitimate mail. @@ -152,22 +152,22 @@ POSTSCREEN(8) POSTSCREEN(8) The time limit for the proxy protocol specified with the postscreen_upstream_proxy_protocol parameter. -PERMANENT WHITE/BLACKLIST TEST +PERMANENT ALLOW/DENYLIST TEST This test is executed immediately after a remote SMTP client connects. - If a client is permanently whitelisted, the client will be handed off + If a client is permanently allowlisted, the client will be handed off immediately to a Postfix SMTP server process. postscreen_access_list (permit_mynetworks) - Permanent white/blacklist for remote SMTP client IP addresses. + Permanent allow/denylist for remote SMTP client IP addresses. postscreen_blacklist_action (ignore) The action that postscreen(8) takes when a remote SMTP client is - permanently blacklisted with the postscreen_access_list parame- + permanently denylisted with the postscreen_access_list parame- ter. MAIL EXCHANGER POLICY TESTS When postscreen(8) is configured to monitor all primary and backup MX - addresses, it can refuse to whitelist clients that connect to a backup + addresses, it can refuse to allowlist clients that connect to a backup MX address only. For small sites, this requires configuring primary and backup MX addresses on the same MTA. Larger sites would have to share the postscreen(8) cache between primary and backup MTAs, which would @@ -175,8 +175,8 @@ POSTSCREEN(8) POSTSCREEN(8) postscreen_whitelist_interfaces (static:all) A list of local postscreen(8) server IP addresses where a - non-whitelisted remote SMTP client can obtain postscreen(8)'s - temporary whitelist status. + non-allowlisted remote SMTP client can obtain postscreen(8)'s + temporary allowlist status. BEFORE 220 GREETING TESTS These tests are executed before the remote SMTP client receives the @@ -199,7 +199,7 @@ POSTSCREEN(8) POSTSCREEN(8) with when it rejects mail. postscreen_dnsbl_sites (empty) - Optional list of DNS white/blacklist domains, filters and weight + Optional list of DNS allow/denylist domains, filters and weight factors. postscreen_dnsbl_threshold (1) @@ -293,7 +293,7 @@ POSTSCREEN(8) POSTSCREEN(8) postscreen_cache_retention_time (7d) The amount of time that postscreen(8) will cache an expired tem- - porary whitelist entry before it is removed. + porary allowlist entry before it is removed. postscreen_bare_newline_ttl (30d) The amount of time that postscreen(8) will use the result from a @@ -345,7 +345,7 @@ POSTSCREEN(8) POSTSCREEN(8) real Postfix SMTP server process. postscreen_pre_queue_limit ($default_process_limit) - The number of non-whitelisted clients that can be waiting for a + The number of non-allowlisted clients that can be waiting for a decision whether they will receive service from a real Postfix SMTP server process. @@ -418,7 +418,7 @@ POSTSCREEN(8) POSTSCREEN(8) SEE ALSO smtpd(8), Postfix SMTP server tlsproxy(8), Postfix TLS proxy server - dnsblog(8), DNS black/whitelist logger + dnsblog(8), DNS allow/denylist logger postlogd(8), Postfix logging syslogd(8), system logging diff --git a/postfix/html/tlsproxy.8.html b/postfix/html/tlsproxy.8.html index 33cf5d622..1c6ec5576 100644 --- a/postfix/html/tlsproxy.8.html +++ b/postfix/html/tlsproxy.8.html @@ -15,7 +15,7 @@ TLSPROXY(8) TLSPROXY(8) DESCRIPTION The tlsproxy(8) server implements a two-way TLS proxy. It is used by the postscreen(8) server to talk SMTP-over-TLS with remote SMTP clients - that are not whitelisted (including clients whose whitelist status has + that are not allowlisted (including clients whose allowlist status has expired), and by the smtp(8) client to support TLS connection reuse, but it should also work for non-SMTP protocols. diff --git a/postfix/html/verify.8.html b/postfix/html/verify.8.html index 60c7a6220..0d17eea64 100644 --- a/postfix/html/verify.8.html +++ b/postfix/html/verify.8.html @@ -65,7 +65,7 @@ VERIFY(8) VERIFY(8) queue. Recipient 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. + to be denylisted by some providers. If the persistent database ever gets corrupted then the world comes to an end and human intervention is needed. This violates a basic Postfix diff --git a/postfix/man/man1/postfix.1 b/postfix/man/man1/postfix.1 index 38e518173..0231ee646 100644 --- a/postfix/man/man1/postfix.1 +++ b/postfix/man/man1/postfix.1 @@ -338,7 +338,7 @@ anvil(8), Postfix connection/rate limiting bounce(8), defer(8), trace(8), Delivery status reports cleanup(8), canonicalize and enqueue message discard(8), Postfix discard delivery agent -dnsblog(8), DNS black/whitelist logger +dnsblog(8), DNS allow/denylist logger error(8), Postfix error delivery agent flush(8), Postfix fast ETRN service local(8), Postfix local delivery agent diff --git a/postfix/man/man5/cidr_table.5 b/postfix/man/man5/cidr_table.5 index fae30fb96..866685878 100644 --- a/postfix/man/man5/cidr_table.5 +++ b/postfix/man/man5/cidr_table.5 @@ -118,8 +118,8 @@ this form is not required. smtpd_client_restrictions = ... cidr:/etc/postfix/client.cidr ... /etc/postfix/client.cidr: - # Rule order matters. Put more specific whitelist entries - # before more general blacklist entries. + # Rule order matters. Put more specific allowlist entries + # before more general denylist entries. 192.168.1.1 OK 192.168.0.0/16 REJECT 2001:db8::1 OK diff --git a/postfix/man/man5/postconf.5 b/postfix/man/man5/postconf.5 index 6050debf6..2e61493eb 100644 --- a/postfix/man/man5/postconf.5 +++ b/postfix/man/man5/postconf.5 @@ -1602,7 +1602,7 @@ See reject_unknown_reverse_client_hostname for more details. The hostname given in HELO or EHLO command or empty string. .br .IP "\fB$rbl_class\fR" -The blacklisted entity type: Client host, Helo command, Sender +The denylisted entity type: Client host, Helo command, Sender address, or Recipient address. .br .IP "\fB$rbl_code\fR" @@ -1613,14 +1613,14 @@ reply. With Postfix version 2.3 and later this information may be followed by an RFC 3463 enhanced status code. .br .IP "\fB$rbl_domain\fR" -The RBL domain where $rbl_what is blacklisted. +The RBL domain where $rbl_what is denylisted. .br .IP "\fB$rbl_reason\fR" -The reason why $rbl_what is blacklisted, or an empty string. +The reason why $rbl_what is denylisted, or an empty string. .br .IP "\fB$rbl_what\fR" -The entity that is blacklisted (an IP address, a hostname, a domain -name, or an email address whose domain was blacklisted). +The entity that is denylisted (an IP address, a hostname, a domain +name, or an email address whose domain was denylisted). .br .IP "\fB$recipient\fR" The recipient address or <> in case of the null address. @@ -1910,7 +1910,7 @@ A debugging aid to artificially delay DNS responses. This feature is available in Postfix 2.8. .SH dnsblog_service_name (default: dnsblog) The name of the \fBdnsblog\fR(8) service entry in master.cf. This -service performs DNS white/blacklist lookups. +service performs DNS allow/denylist lookups. .PP This feature is available in Postfix 2.8 and later. .SH dnssec_probe (default: ns:.) @@ -4348,7 +4348,7 @@ by default. .ft R .PP The milter_header_checks mechanism could also be used for -whitelisting. For example it could be used to skip heavy content +allowlisting. For example it could be used to skip heavy content inspection for DKIM\-signed mail from known friendly domains. .PP This feature is available in Postfix 2.7, and as an optional @@ -4919,13 +4919,13 @@ and enabled instances are processed in reverse order. .PP This feature is available in Postfix 2.6 and later. .SH postscreen_access_list (default: permit_mynetworks) -Permanent white/blacklist for remote SMTP client IP addresses. +Permanent allow/denylist for remote SMTP client IP addresses. \fBpostscreen\fR(8) searches this list immediately after a remote SMTP client connects. Specify a comma\- or whitespace\-separated list of commands (in upper or lower case) or lookup tables. The search stops upon the first command that fires for the client IP address. .IP "\fB permit_mynetworks \fR" -Whitelist the client and +Allowlist the client and terminate the search if the client IP address matches $mynetworks. Do not subject the client to any before/after 220 greeting tests. Pass the connection immediately to a Postfix SMTP server process. @@ -4944,13 +4944,13 @@ support for substring matching like \fBsmtpd\fR(8). Use CIDR tables instead. .br .IP "\fB permit \fR" -Whitelist the client and terminate +Allowlist the client and terminate the search. Do not subject the client to any before/after 220 greeting tests. Pass the connection immediately to a Postfix SMTP server process. .br .IP "\fB reject \fR" -Blacklist the client and terminate +Denylist the client and terminate the search. Subject the client to the action configured with the postscreen_blacklist_action configuration parameter. .br @@ -4986,7 +4986,7 @@ Example: .ft C /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 dunno 192.168.0.0/16 reject .fi @@ -5039,7 +5039,7 @@ one\-letter suffix that specifies the time unit). Time units: s This feature is available in Postfix 2.8. .SH postscreen_blacklist_action (default: ignore) The action that \fBpostscreen\fR(8) takes when a remote SMTP client is -permanently blacklisted with the postscreen_access_list parameter. +permanently denylisted with the postscreen_access_list parameter. Specify one of the following: .IP "\fBignore\fR (default)" Ignore this result. Allow other tests to complete. Repeat @@ -5088,7 +5088,7 @@ approach see the \fBmemcache_table\fR(5) manpage. This feature is available in Postfix 2.8. .SH postscreen_cache_retention_time (default: 7d) The amount of time that \fBpostscreen\fR(8) will cache an expired -temporary whitelist entry before it is removed. This prevents clients +temporary allowlist entry before it is removed. This prevents clients from being logged as "NEW" just because their cache entry expired an hour ago. It also prevents the cache from filling up with clients that passed some deep protocol test once and never came back. @@ -5227,7 +5227,7 @@ Example: .PP This feature is available in Postfix 2.8. .SH postscreen_dnsbl_sites (default: empty) -Optional list of DNS white/blacklist domains, filters and weight +Optional list of DNS allow/denylist domains, filters and weight factors. When the list is non\-empty, the \fBdnsblog\fR(8) daemon will query these domains with the IP addresses of remote SMTP clients, and \fBpostscreen\fR(8) will update an SMTP client's DNSBL score with @@ -5254,7 +5254,7 @@ When no "*weight" is specified, \fBpostscreen\fR(8) increments the remote SMTP client's DNSBL score by 1. Otherwise, the weight must be an integral number, and \fBpostscreen\fR(8) adds the specified weight to the remote SMTP client's DNSBL score. Specify a negative number for -whitelisting. +allowlisting. .IP \(bu When one postscreen_dnsbl_sites entry produces multiple DNSBL responses, \fBpostscreen\fR(8) applies the weight at most once. @@ -5361,7 +5361,7 @@ this test the next time the client connects. .br .br .PP -In either case, \fBpostscreen\fR(8) will not whitelist the remote SMTP client +In either case, \fBpostscreen\fR(8) will not allowlist the remote SMTP client IP address. .PP This feature is available in Postfix 2.8. @@ -5497,10 +5497,10 @@ receive a 421 response. .PP This feature is available in Postfix 2.8. .SH postscreen_pre_queue_limit (default: $default_process_limit) -The number of non\-whitelisted clients that can be waiting for +The number of non\-allowlisted clients that can be waiting for a decision whether they will receive service from a real Postfix SMTP server -process. When this queue is full, all non\-whitelisted clients will +process. When this queue is full, all non\-allowlisted clients will receive a 421 response. .PP This feature is available in Postfix 2.8. @@ -5558,18 +5558,18 @@ one\-letter suffix that specifies the time unit). Time units: s This feature is available in Postfix 2.8. .SH postscreen_whitelist_interfaces (default: static:all) A list of local \fBpostscreen\fR(8) server IP addresses where a -non\-whitelisted remote SMTP client can obtain \fBpostscreen\fR(8)'s temporary -whitelist status. This status is required before the client can +non\-allowlisted remote SMTP client can obtain \fBpostscreen\fR(8)'s temporary +allowlist status. This status is required before the client can talk to a Postfix SMTP server process. By default, a client can -obtain \fBpostscreen\fR(8)'s whitelist status on any local \fBpostscreen\fR(8) +obtain \fBpostscreen\fR(8)'s allowlist status on any local \fBpostscreen\fR(8) server IP address. .PP When \fBpostscreen\fR(8) listens on both primary and backup MX addresses, the postscreen_whitelist_interfaces parameter can be -configured to give the temporary whitelist status only when a client -connects to a primary MX address. Once a client is whitelisted it +configured to give the temporary allowlist status only when a client +connects to a primary MX address. Once a client is allowlisted it can talk to a Postfix SMTP server on any address. Thus, clients -that connect only to backup MX addresses will never become whitelisted, +that connect only to backup MX addresses will never become allowlisted, and will never be allowed to talk to a Postfix SMTP server process. .PP Specify a list of network addresses or network/netmask patterns, @@ -5598,7 +5598,7 @@ Example: .na .ft C /etc/postfix/main.cf: - # Don't whitelist connections to the backup IP address. + # Don't allowlist connections to the backup IP address. postscreen_whitelist_interfaces = !168.100.189.8, static:all .fi .ad @@ -9761,7 +9761,7 @@ least significant octets. See the \fBaccess\fR(5) manual page for details. Search the specified \fBaccess\fR(5) database for the IP addresses for the client hostname, and execute the corresponding action. Note: a result of "OK" is not allowed for safety reasons. Instead, use DUNNO in order -to exclude specific hosts from blacklists. This feature is available +to exclude specific hosts from denylists. This feature is available in Postfix 3.0 and later. .br .IP "\fBcheck_client_mx_access \fItype:table\fR\fR" @@ -9770,14 +9770,14 @@ client hostname, and execute the corresponding action. If no MX record is found, look up A or AAAA records, just like the Postfix SMTP client would. Note: a result of "OK" is not allowed for safety reasons. Instead, use DUNNO in order -to exclude specific hosts from blacklists. This feature is available +to exclude specific hosts from denylists. This feature is available in Postfix 2.7 and later. .br .IP "\fBcheck_client_ns_access \fItype:table\fR\fR" Search the specified \fBaccess\fR(5) database for the DNS servers for the client hostname, and execute the corresponding action. Note: a result of "OK" is not allowed for safety reasons. Instead, use DUNNO -in order to exclude specific hosts from blacklists. This feature is +in order to exclude specific hosts from denylists. This feature is available in Postfix 2.7 and later. .br .IP "\fBcheck_reverse_client_hostname_access \fItype:table\fR\fR" @@ -9786,14 +9786,14 @@ client hostname, parent domains, client IP address, or networks obtained by stripping least significant octets. See the \fBaccess\fR(5) manual page for details. Note: a result of "OK" is not allowed for safety reasons. Instead, use DUNNO in order to exclude specific -hosts from blacklists. This feature is available in Postfix 2.6 +hosts from denylists. This feature is available in Postfix 2.6 and later. .br .IP "\fBcheck_reverse_client_hostname_a_access \fItype:table\fR\fR" Search the specified \fBaccess\fR(5) database for the IP addresses for the unverified reverse client hostname, and execute the corresponding action. Note: a result of "OK" is not allowed for safety reasons. -Instead, use DUNNO in order to exclude specific hosts from blacklists. +Instead, use DUNNO in order to exclude specific hosts from denylists. This feature is available in Postfix 3.0 and later. .br .IP "\fBcheck_reverse_client_hostname_mx_access \fItype:table\fR\fR" @@ -9802,14 +9802,14 @@ unverified reverse client hostname, and execute the corresponding action. If no MX record is found, look up A or AAAA records, just like the Postfix SMTP client would. Note: a result of "OK" is not allowed for safety reasons. -Instead, use DUNNO in order to exclude specific hosts from blacklists. +Instead, use DUNNO in order to exclude specific hosts from denylists. This feature is available in Postfix 2.7 and later. .br .IP "\fBcheck_reverse_client_hostname_ns_access \fItype:table\fR\fR" Search the specified \fBaccess\fR(5) database for the DNS servers for the unverified reverse client hostname, and execute the corresponding action. Note: a result of "OK" is not allowed for safety reasons. -Instead, use DUNNO in order to exclude specific hosts from blacklists. +Instead, use DUNNO in order to exclude specific hosts from denylists. This feature is available in Postfix 2.7 and later. .br .IP "\fBcheck_sasl_access \fItype:table\fR\fR" @@ -9889,7 +9889,7 @@ reversed client network address is listed with any A record under .br For safety, permit_dnswl_client is silently ignored when it would override reject_unauth_destination. The -result is DEFER_IF_REJECT when whitelist lookup fails. This feature +result is DEFER_IF_REJECT when allowlist lookup fails. This feature is available in Postfix 2.8 and later. .br .IP "\fBreject_rhsbl_client \fIrbl_domain=d.d.d.d\fR\fR" @@ -9914,14 +9914,14 @@ is a number, or a pattern inside "[]" that contains one or more "\fI=d.d.d.d\fR" is specified, accept the request when the client hostname is listed with any A record under \fIrhswl_domain\fR. .br -Caution: client name whitelisting is fragile, since the client +Caution: client name allowlisting is fragile, since the client name lookup can fail due to temporary outages. Client name -whitelisting should be used only to reduce false positives in e.g. +allowlisting should be used only to reduce false positives in e.g. DNS\-based blocklists, and not for making access rule exceptions. .br For safety, permit_rhswl_client is silently ignored when it would override reject_unauth_destination. The result is DEFER_IF_REJECT -when whitelist lookup fails. This feature is available in Postfix +when allowlist lookup fails. This feature is available in Postfix 2.8 and later. .br .IP "\fBreject_rhsbl_reverse_client \fIrbl_domain=d.d.d.d\fR\fR" @@ -9987,7 +9987,7 @@ the SMTP server reply code (default: 450). .br .IP "\fBdefer_if_permit\fR" Defer the request if some later restriction would result in an -explicit or implicit PERMIT action. This is useful when a blacklisting +explicit or implicit PERMIT action. This is useful when a denylisting feature fails due to a temporary problem. This feature is available in Postfix version 2.1 and later. .br @@ -10429,7 +10429,7 @@ simply skip check_helo_access by not sending HELO or EHLO). Search the specified \fBaccess\fR(5) database for the IP addresses for the HELO or EHLO hostname, and execute the corresponding action. Note 1: a result of "OK" is not allowed for safety reasons. Instead, -use DUNNO in order to exclude specific hosts from blacklists. Note +use DUNNO in order to exclude specific hosts from denylists. Note 2: specify "smtpd_helo_required = yes" to fully enforce this restriction (without "smtpd_helo_required = yes", a client can simply skip check_helo_a_access by not sending HELO or EHLO). This @@ -10441,7 +10441,7 @@ the HELO or EHLO hostname, and execute the corresponding action. If no MX record is found, look up A or AAAA records, just like the Postfix SMTP client would. Note 1: a result of "OK" is not allowed for safety reasons. Instead, -use DUNNO in order to exclude specific hosts from blacklists. Note +use DUNNO in order to exclude specific hosts from denylists. Note 2: specify "smtpd_helo_required = yes" to fully enforce this restriction (without "smtpd_helo_required = yes", a client can simply skip check_helo_mx_access by not sending HELO or EHLO). This @@ -10451,7 +10451,7 @@ feature is available in Postfix 2.1 and later. Search the specified \fBaccess\fR(5) database for the DNS servers for the HELO or EHLO hostname, and execute the corresponding action. Note 1: a result of "OK" is not allowed for safety reasons. Instead, -use DUNNO in order to exclude specific hosts from blacklists. Note +use DUNNO in order to exclude specific hosts from denylists. Note 2: specify "smtpd_helo_required = yes" to fully enforce this restriction (without "smtpd_helo_required = yes", a client can simply skip check_helo_ns_access by not sending HELO or EHLO). This @@ -10835,7 +10835,7 @@ corresponding action. Search the specified \fBaccess\fR(5) database for the IP addresses for the RCPT TO domain, and execute the corresponding action. Note: a result of "OK" is not allowed for safety reasons. Instead, use -DUNNO in order to exclude specific hosts from blacklists. This +DUNNO in order to exclude specific hosts from denylists. This feature is available in Postfix 3.0 and later. .br .IP "\fBcheck_recipient_mx_access \fItype:table\fR\fR" @@ -10844,14 +10844,14 @@ the RCPT TO domain, and execute the corresponding action. If no MX record is found, look up A or AAAA records, just like the Postfix SMTP client would. Note: a result of "OK" is not allowed for safety reasons. Instead, use -DUNNO in order to exclude specific hosts from blacklists. This +DUNNO in order to exclude specific hosts from denylists. This feature is available in Postfix 2.1 and later. .br .IP "\fBcheck_recipient_ns_access \fItype:table\fR\fR" Search the specified \fBaccess\fR(5) database for the DNS servers for the RCPT TO domain, and execute the corresponding action. Note: a result of "OK" is not allowed for safety reasons. Instead, -use DUNNO in order to exclude specific hosts from blacklists. This +use DUNNO in order to exclude specific hosts from denylists. This feature is available in Postfix 2.1 and later. .br .IP "\fBpermit_auth_destination\fR" @@ -11518,7 +11518,7 @@ corresponding action. Search the specified \fBaccess\fR(5) database for the IP addresses for the MAIL FROM domain, and execute the corresponding action. Note: a result of "OK" is not allowed for safety reasons. Instead, use -DUNNO in order to exclude specific hosts from blacklists. This +DUNNO in order to exclude specific hosts from denylists. This feature is available in Postfix 3.0 and later. .br .IP "\fBcheck_sender_mx_access \fItype:table\fR\fR" @@ -11527,14 +11527,14 @@ the MAIL FROM domain, and execute the corresponding action. If no MX record is found, look up A or AAAA records, just like the Postfix SMTP client would. Note: a result of "OK" is not allowed for safety reasons. Instead, use -DUNNO in order to exclude specific hosts from blacklists. This +DUNNO in order to exclude specific hosts from denylists. This feature is available in Postfix 2.1 and later. .br .IP "\fBcheck_sender_ns_access \fItype:table\fR\fR" Search the specified \fBaccess\fR(5) database for the DNS servers for the MAIL FROM domain, and execute the corresponding action. Note: a result of "OK" is not allowed for safety reasons. Instead, -use DUNNO in order to exclude specific hosts from blacklists. This +use DUNNO in order to exclude specific hosts from denylists. This feature is available in Postfix 2.1 and later. .br .IP "\fBreject_authenticated_sender_login_mismatch\fR" diff --git a/postfix/man/man8/dnsblog.8 b/postfix/man/man8/dnsblog.8 index 809e4efe5..bf555489e 100644 --- a/postfix/man/man8/dnsblog.8 +++ b/postfix/man/man8/dnsblog.8 @@ -4,7 +4,7 @@ .SH NAME dnsblog \- -Postfix DNS white/blacklist logger +Postfix DNS allow/denylist logger .SH "SYNOPSIS" .na .nf @@ -13,7 +13,7 @@ Postfix DNS white/blacklist logger .ad .fi The \fBdnsblog\fR(8) server implements an ad\-hoc DNS -white/blacklist lookup service. This may eventually be +allow/denylist lookup service. This may eventually be replaced by an UDP client that is built directly into the \fBpostscreen\fR(8) server. .SH "PROTOCOL" @@ -22,8 +22,8 @@ replaced by an UDP client that is built directly into the .ad .fi With each connection, the \fBdnsblog\fR(8) server receives -a DNS white/blacklist domain name, an IP address, and an ID. -If the IP address is listed under the DNS white/blacklist, the +a DNS allow/denylist domain name, an IP address, and an ID. +If the IP address is listed under the DNS allow/denylist, the \fBdnsblog\fR(8) server logs the match and replies with the query arguments plus an address list with the resulting IP addresses, separated by whitespace, and the reply TTL. @@ -55,7 +55,7 @@ configuration files. How much time a Postfix daemon process may take to handle a request before it is terminated by a built\-in watchdog timer. .IP "\fBpostscreen_dnsbl_sites (empty)\fR" -Optional list of DNS white/blacklist domains, filters and weight +Optional list of DNS allow/denylist domains, filters and weight factors. .IP "\fBipc_timeout (3600s)\fR" The time limit for sending or receiving information over an internal diff --git a/postfix/man/man8/postscreen.8 b/postfix/man/man8/postscreen.8 index 4d7075700..145b29479 100644 --- a/postfix/man/man8/postscreen.8 +++ b/postfix/man/man8/postscreen.8 @@ -29,9 +29,9 @@ Alternatively, a site could set up a dedicated, non\-postscreen, "port 25" server that provides \fBsubmission\fR service and client authentication, but no MX service. -\fBpostscreen\fR(8) maintains a temporary whitelist for +\fBpostscreen\fR(8) maintains a temporary allowlist for clients that have passed a number of tests. When an SMTP -client IP address is whitelisted, \fBpostscreen\fR(8) hands +client IP address is allowlisted, \fBpostscreen\fR(8) hands off the connection immediately to a Postfix SMTP server process. This minimizes the overhead for legitimate mail. @@ -169,27 +169,27 @@ proxy agent. .IP "\fBpostscreen_upstream_proxy_timeout (5s)\fR" The time limit for the proxy protocol specified with the postscreen_upstream_proxy_protocol parameter. -.SH "PERMANENT WHITE/BLACKLIST TEST" +.SH "PERMANENT ALLOW/DENYLIST TEST" .na .nf .ad .fi This test is executed immediately after a remote SMTP client -connects. If a client is permanently whitelisted, the client +connects. If a client is permanently allowlisted, the client will be handed off immediately to a Postfix SMTP server process. .IP "\fBpostscreen_access_list (permit_mynetworks)\fR" -Permanent white/blacklist for remote SMTP client IP addresses. +Permanent allow/denylist for remote SMTP client IP addresses. .IP "\fBpostscreen_blacklist_action (ignore)\fR" The action that \fBpostscreen\fR(8) takes when a remote SMTP client is -permanently blacklisted with the postscreen_access_list parameter. +permanently denylisted with the postscreen_access_list parameter. .SH "MAIL EXCHANGER POLICY TESTS" .na .nf .ad .fi When \fBpostscreen\fR(8) is configured to monitor all primary -and backup MX addresses, it can refuse to whitelist clients +and backup MX addresses, it can refuse to allowlist clients that connect to a backup MX address only. For small sites, this requires configuring primary and backup MX addresses on the same MTA. Larger sites would have to share the @@ -197,8 +197,8 @@ on the same MTA. Larger sites would have to share the which would introduce a common point of failure. .IP "\fBpostscreen_whitelist_interfaces (static:all)\fR" A list of local \fBpostscreen\fR(8) server IP addresses where a -non\-whitelisted remote SMTP client can obtain \fBpostscreen\fR(8)'s temporary -whitelist status. +non\-allowlisted remote SMTP client can obtain \fBpostscreen\fR(8)'s temporary +allowlist status. .SH "BEFORE 220 GREETING TESTS" .na .nf @@ -221,7 +221,7 @@ A mapping from actual DNSBL domain name which includes a secret password, to the DNSBL domain name that postscreen will reply with when it rejects mail. .IP "\fBpostscreen_dnsbl_sites (empty)\fR" -Optional list of DNS white/blacklist domains, filters and weight +Optional list of DNS allow/denylist domains, filters and weight factors. .IP "\fBpostscreen_dnsbl_threshold (1)\fR" The inclusive lower bound for blocking a remote SMTP client, based on @@ -306,7 +306,7 @@ The amount of time between \fBpostscreen\fR(8) cache cleanup runs. Persistent storage for the \fBpostscreen\fR(8) server decisions. .IP "\fBpostscreen_cache_retention_time (7d)\fR" The amount of time that \fBpostscreen\fR(8) will cache an expired -temporary whitelist entry before it is removed. +temporary allowlist entry before it is removed. .IP "\fBpostscreen_bare_newline_ttl (30d)\fR" The amount of time that \fBpostscreen\fR(8) will use the result from a successful "bare newline" SMTP protocol test. @@ -349,7 +349,7 @@ built\-in SMTP protocol engine. The number of clients that can be waiting for service from a real Postfix SMTP server process. .IP "\fBpostscreen_pre_queue_limit ($default_process_limit)\fR" -The number of non\-whitelisted clients that can be waiting for +The number of non\-allowlisted clients that can be waiting for a decision whether they will receive service from a real Postfix SMTP server process. @@ -420,7 +420,7 @@ The email address form that will be used in non\-debug logging .nf smtpd(8), Postfix SMTP server tlsproxy(8), Postfix TLS proxy server -dnsblog(8), DNS black/whitelist logger +dnsblog(8), DNS allow/denylist logger postlogd(8), Postfix logging syslogd(8), system logging .SH "README FILES" diff --git a/postfix/man/man8/tlsproxy.8 b/postfix/man/man8/tlsproxy.8 index c2e53bf1f..bec3f8588 100644 --- a/postfix/man/man8/tlsproxy.8 +++ b/postfix/man/man8/tlsproxy.8 @@ -14,8 +14,8 @@ Postfix TLS proxy .fi The \fBtlsproxy\fR(8) server implements a two\-way TLS proxy. It is used by the \fBpostscreen\fR(8) server to talk SMTP\-over\-TLS -with remote SMTP clients that are not whitelisted (including -clients whose whitelist status has expired), and by the +with remote SMTP clients that are not allowlisted (including +clients whose allowlist status has expired), and by the \fBsmtp\fR(8) client to support TLS connection reuse, but it should also work for non\-SMTP protocols. diff --git a/postfix/man/man8/verify.8 b/postfix/man/man8/verify.8 index 4c1fab027..7aece00de 100644 --- a/postfix/man/man8/verify.8 +++ b/postfix/man/man8/verify.8 @@ -76,7 +76,7 @@ Recipient 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. +denylisted by some providers. If the persistent database ever gets corrupted then the world comes to an end and human intervention is needed. This violates diff --git a/postfix/proto/ADDRESS_VERIFICATION_README.html b/postfix/proto/ADDRESS_VERIFICATION_README.html index 5d28edc86..388fbc0fc 100644 --- a/postfix/proto/ADDRESS_VERIFICATION_README.html +++ b/postfix/proto/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.

      What Postfix address verification can do for you

      @@ -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/proto/OVERVIEW.html b/postfix/proto/OVERVIEW.html index 7746dad43..a71527264 100644 --- a/postfix/proto/OVERVIEW.html +++ b/postfix/proto/OVERVIEW.html @@ -737,14 +737,14 @@ those numbers were 92% and 95%, respectively. 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) 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/proto/POSTSCREEN_README.html b/postfix/proto/POSTSCREEN_README.html index 09b49e062..f92dae743 100644 --- a/postfix/proto/POSTSCREEN_README.html +++ b/postfix/proto/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 focused on.

      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.

      Quick tests before everything else

      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.

      -

      Permanent white/blacklist test

      +

      Permanent allow/denylist test

      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 @@ postscreen(8) logs this with the client address and port number as: 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 @@ postscreen(8) logs this with the client address and port number as: that is taken next. See "When tests fail before the 220 SMTP server greeting" below.

    -

    Temporary whitelist test

    +

    Temporary allowlist test

    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.

    MX Policy test

    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 @@ postscreen(8) logs this with the client address and port number as:

    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.

    Tests before the 220 SMTP server greeting

    @@ -311,7 +311,7 @@ postscreen(8) can run a number of tests in 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 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_wait delay).

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

    -

    DNS White/blacklist test

    +

    DNS Allow/denylist test

    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 tests fail before the 220 SMTP server greeting

    -

    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 all tests succeed

    -

    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 configuration

    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.

    -

    Sharing the temporary whitelist

    +

    Sharing the temporary allowlist

    -

    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. 

      - diff --git a/postfix/proto/SMTPD_ACCESS_README.html b/postfix/proto/SMTPD_ACCESS_README.html index b839d237c..ee6916504 100644 --- a/postfix/proto/SMTPD_ACCESS_README.html +++ b/postfix/proto/SMTPD_ACCESS_README.html @@ -55,7 +55,7 @@ policies 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 information 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 @@ -87,11 +87,11 @@ SMTP client implementations. 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 known to be bad sites such as open mail +

    • 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 +effectiveness of these denylists depends on how complete and how up to date they are.

    • Threshold oriented: some SMTP server access controls attempt @@ -218,7 +218,7 @@ 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 +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 @@ -320,7 +320,7 @@ until the RCPT TO command, it can log the sender and the recipient address. This is more useful than logging only the client hostname and IP address and not knowing whose mail was being blocked.

      -
    • Mixing is needed for complex whitelisting policies. For +

    • 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 diff --git a/postfix/proto/SMTPD_POLICY_README.html b/postfix/proto/SMTPD_POLICY_README.html index 5c18ecbe0..da886ab70 100644 --- a/postfix/proto/SMTPD_POLICY_README.html +++ b/postfix/proto/SMTPD_POLICY_README.html @@ -672,7 +672,7 @@ 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 avoids +allowlist clients that survive greylisting repeatedly; this avoids most of the delays and most of the database pollution problem.

      @@ -746,11 +746,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 @@ -763,10 +763,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"; } } @@ -795,8 +795,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/proto/STRESS_README.html b/postfix/proto/STRESS_README.html index 83d5255ed..26b7b0ecd 100644 --- a/postfix/proto/STRESS_README.html +++ b/postfix/proto/STRESS_README.html @@ -354,7 +354,7 @@ such as SMTP access 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 +

    • 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, diff --git a/postfix/proto/cidr_table b/postfix/proto/cidr_table index 91ac7e716..81964a764 100644 --- a/postfix/proto/cidr_table +++ b/postfix/proto/cidr_table @@ -104,8 +104,8 @@ # smtpd_client_restrictions = ... cidr:/etc/postfix/client.cidr ... # # /etc/postfix/client.cidr: -# # Rule order matters. Put more specific whitelist entries -# # before more general blacklist entries. +# # Rule order matters. Put more specific allowlist entries +# # before more general denylist entries. # 192.168.1.1 OK # 192.168.0.0/16 REJECT # 2001:db8::1 OK diff --git a/postfix/proto/postconf.proto b/postfix/proto/postconf.proto index 1f50b82b8..7c988f22d 100644 --- a/postfix/proto/postconf.proto +++ b/postfix/proto/postconf.proto @@ -1166,7 +1166,7 @@ See reject_unknown_reverse_client_hostname for more details.

      $rbl_class
      -
      The blacklisted entity type: Client host, Helo command, Sender +
      The denylisted entity type: Client host, Helo command, Sender address, or Recipient address.
      $rbl_code
      @@ -1179,16 +1179,16 @@ by an RFC 3463 enhanced status code.
      $rbl_domain
      -
      The RBL domain where $rbl_what is blacklisted.
      +
      The RBL domain where $rbl_what is denylisted.
      $rbl_reason
      -
      The reason why $rbl_what is blacklisted, or an empty string.
      +
      The reason why $rbl_what is denylisted, or an empty string.
      $rbl_what
      -
      The entity that is blacklisted (an IP address, a hostname, a domain -name, or an email address whose domain was blacklisted).
      +
      The entity that is denylisted (an IP address, a hostname, a domain +name, or an email address whose domain was denylisted).
      $recipient
      @@ -5151,7 +5151,7 @@ least significant octets. See the access(5) manual page for details.
      Search the specified access(5) database for the IP addresses for the client hostname, and execute the corresponding action. Note: a result of "OK" is not allowed for safety reasons. Instead, use DUNNO in order -to exclude specific hosts from blacklists. This feature is available +to exclude specific hosts from denylists. This feature is available in Postfix 3.0 and later.
      check_client_mx_access type:table
      @@ -5161,7 +5161,7 @@ client hostname, and execute the corresponding action. If no MX record is found, look up A or AAAA records, just like the Postfix SMTP client would. Note: a result of "OK" is not allowed for safety reasons. Instead, use DUNNO in order -to exclude specific hosts from blacklists. This feature is available +to exclude specific hosts from denylists. This feature is available in Postfix 2.7 and later.
      check_client_ns_access type:table
      @@ -5169,7 +5169,7 @@ in Postfix 2.7 and later.
      Search the specified access(5) database for the DNS servers for the client hostname, and execute the corresponding action. Note: a result of "OK" is not allowed for safety reasons. Instead, use DUNNO -in order to exclude specific hosts from blacklists. This feature is +in order to exclude specific hosts from denylists. This feature is available in Postfix 2.7 and later.
      check_reverse_client_hostname_access type:table
      @@ -5179,7 +5179,7 @@ client hostname, parent domains, client IP address, or networks obtained by stripping least significant octets. See the access(5) manual page for details. Note: a result of "OK" is not allowed for safety reasons. Instead, use DUNNO in order to exclude specific -hosts from blacklists. This feature is available in Postfix 2.6 +hosts from denylists. This feature is available in Postfix 2.6 and later.
      check_reverse_client_hostname_a_access type:table
      @@ -5187,7 +5187,7 @@ and later.
      Search the specified access(5) database for the IP addresses for the unverified reverse client hostname, and execute the corresponding action. Note: a result of "OK" is not allowed for safety reasons. -Instead, use DUNNO in order to exclude specific hosts from blacklists. +Instead, use DUNNO in order to exclude specific hosts from denylists. This feature is available in Postfix 3.0 and later.
      check_reverse_client_hostname_mx_access type:table
      @@ -5197,7 +5197,7 @@ unverified reverse client hostname, and execute the corresponding action. If no MX record is found, look up A or AAAA records, just like the Postfix SMTP client would. Note: a result of "OK" is not allowed for safety reasons. -Instead, use DUNNO in order to exclude specific hosts from blacklists. +Instead, use DUNNO in order to exclude specific hosts from denylists. This feature is available in Postfix 2.7 and later.
      check_reverse_client_hostname_ns_access type:table
      @@ -5205,7 +5205,7 @@ This feature is available in Postfix 2.7 and later.
      Search the specified access(5) database for the DNS servers for the unverified reverse client hostname, and execute the corresponding action. Note: a result of "OK" is not allowed for safety reasons. -Instead, use DUNNO in order to exclude specific hosts from blacklists. +Instead, use DUNNO in order to exclude specific hosts from denylists. This feature is available in Postfix 2.7 and later.
      check_sasl_access type:table
      @@ -5291,7 +5291,7 @@ If no "=d.d.d.d" is specified, accept the request when the reversed client network address is listed with any A record under dnswl_domain.
      For safety, permit_dnswl_client is silently ignored when it would override reject_unauth_destination. The -result is DEFER_IF_REJECT when whitelist lookup fails. This feature +result is DEFER_IF_REJECT when allowlist lookup fails. This feature is available in Postfix 2.8 and later.
      reject_rhsbl_client rbl_domain=d.d.d.d
      @@ -5317,13 +5317,13 @@ is a number, or a pattern inside "[]" that contains one or more ";"-separated numbers or number..number ranges. If no "=d.d.d.d" is specified, accept the request when the client hostname is listed with any A record under rhswl_domain. -
      Caution: client name whitelisting is fragile, since the client +
      Caution: client name allowlisting is fragile, since the client name lookup can fail due to temporary outages. Client name -whitelisting should be used only to reduce false positives in e.g. +allowlisting should be used only to reduce false positives in e.g. DNS-based blocklists, and not for making access rule exceptions.
      For safety, permit_rhswl_client is silently ignored when it would override reject_unauth_destination. The result is DEFER_IF_REJECT -when whitelist lookup fails. This feature is available in Postfix +when allowlist lookup fails. This feature is available in Postfix 2.8 and later.
      reject_rhsbl_reverse_client rbl_domain=d.d.d.d
      @@ -5402,7 +5402,7 @@ the SMTP server reply code (default: 450).
      defer_if_permit
      Defer the request if some later restriction would result in an -explicit or implicit PERMIT action. This is useful when a blacklisting +explicit or implicit PERMIT action. This is useful when a denylisting feature fails due to a temporary problem. This feature is available in Postfix version 2.1 and later.
      @@ -5754,7 +5754,7 @@ simply skip check_helo_access by not sending HELO or EHLO).
      Search the specified access(5) database for the IP addresses for the HELO or EHLO hostname, and execute the corresponding action. Note 1: a result of "OK" is not allowed for safety reasons. Instead, -use DUNNO in order to exclude specific hosts from blacklists. Note +use DUNNO in order to exclude specific hosts from denylists. Note 2: specify "smtpd_helo_required = yes" to fully enforce this restriction (without "smtpd_helo_required = yes", a client can simply skip check_helo_a_access by not sending HELO or EHLO). This @@ -5768,7 +5768,7 @@ the HELO or EHLO hostname, and execute the corresponding action. If no MX record is found, look up A or AAAA records, just like the Postfix SMTP client would. Note 1: a result of "OK" is not allowed for safety reasons. Instead, -use DUNNO in order to exclude specific hosts from blacklists. Note +use DUNNO in order to exclude specific hosts from denylists. Note 2: specify "smtpd_helo_required = yes" to fully enforce this restriction (without "smtpd_helo_required = yes", a client can simply skip check_helo_mx_access by not sending HELO or EHLO). This @@ -5780,7 +5780,7 @@ feature is available in Postfix 2.1 and later.
      Search the specified access(5) database for the DNS servers for the HELO or EHLO hostname, and execute the corresponding action. Note 1: a result of "OK" is not allowed for safety reasons. Instead, -use DUNNO in order to exclude specific hosts from blacklists. Note +use DUNNO in order to exclude specific hosts from denylists. Note 2: specify "smtpd_helo_required = yes" to fully enforce this restriction (without "smtpd_helo_required = yes", a client can simply skip check_helo_ns_access by not sending HELO or EHLO). This @@ -6047,7 +6047,7 @@ corresponding action.
      Search the specified access(5) database for the IP addresses for the RCPT TO domain, and execute the corresponding action. Note: a result of "OK" is not allowed for safety reasons. Instead, use -DUNNO in order to exclude specific hosts from blacklists. This +DUNNO in order to exclude specific hosts from denylists. This feature is available in Postfix 3.0 and later.
      check_recipient_mx_access type:table
      @@ -6057,7 +6057,7 @@ the RCPT TO domain, and execute the corresponding action. If no MX record is found, look up A or AAAA records, just like the Postfix SMTP client would. Note: a result of "OK" is not allowed for safety reasons. Instead, use -DUNNO in order to exclude specific hosts from blacklists. This +DUNNO in order to exclude specific hosts from denylists. This feature is available in Postfix 2.1 and later.
      check_recipient_ns_access type:table
      @@ -6065,7 +6065,7 @@ feature is available in Postfix 2.1 and later.
      Search the specified access(5) database for the DNS servers for the RCPT TO domain, and execute the corresponding action. Note: a result of "OK" is not allowed for safety reasons. Instead, -use DUNNO in order to exclude specific hosts from blacklists. This +use DUNNO in order to exclude specific hosts from denylists. This feature is available in Postfix 2.1 and later.
      permit_auth_destination
      @@ -6560,7 +6560,7 @@ corresponding action.
      Search the specified access(5) database for the IP addresses for the MAIL FROM domain, and execute the corresponding action. Note: a result of "OK" is not allowed for safety reasons. Instead, use -DUNNO in order to exclude specific hosts from blacklists. This +DUNNO in order to exclude specific hosts from denylists. This feature is available in Postfix 3.0 and later.
      check_sender_mx_access type:table
      @@ -6570,7 +6570,7 @@ the MAIL FROM domain, and execute the corresponding action. If no MX record is found, look up A or AAAA records, just like the Postfix SMTP client would. Note: a result of "OK" is not allowed for safety reasons. Instead, use -DUNNO in order to exclude specific hosts from blacklists. This +DUNNO in order to exclude specific hosts from denylists. This feature is available in Postfix 2.1 and later.
      check_sender_ns_access type:table
      @@ -6578,7 +6578,7 @@ feature is available in Postfix 2.1 and later.
      Search the specified access(5) database for the DNS servers for the MAIL FROM domain, and execute the corresponding action. Note: a result of "OK" is not allowed for safety reasons. Instead, -use DUNNO in order to exclude specific hosts from blacklists. This +use DUNNO in order to exclude specific hosts from denylists. This feature is available in Postfix 2.1 and later.
      reject_authenticated_sender_login_mismatch
      @@ -14028,7 +14028,7 @@ by default.

    • The milter_header_checks mechanism could also be used for -whitelisting. For example it could be used to skip heavy content +allowlisting. For example it could be used to skip heavy content inspection for DKIM-signed mail from known friendly domains.

      This feature is available in Postfix 2.7, and as an optional @@ -14065,10 +14065,10 @@ receive a 421 response.

      %PARAM postscreen_pre_queue_limit $default_process_limit -

      The number of non-whitelisted clients that can be waiting for +

      The number of non-allowlisted clients that can be waiting for a decision whether they will receive service from a real Postfix SMTP server -process. When this queue is full, all non-whitelisted clients will +process. When this queue is full, all non-allowlisted clients will receive a 421 response.

      This feature is available in Postfix 2.8.

      @@ -14089,7 +14089,7 @@ one-letter suffix that specifies the time unit). Time units: s %PARAM postscreen_cache_retention_time 7d

      The amount of time that postscreen(8) will cache an expired -temporary whitelist entry before it is removed. This prevents clients +temporary allowlist entry before it is removed. This prevents clients from being logged as "NEW" just because their cache entry expired an hour ago. It also prevents the cache from filling up with clients that passed some deep protocol test once and never came back.

      @@ -14135,7 +14135,7 @@ one-letter suffix that specifies the time unit).

      %PARAM postscreen_dnsbl_sites -

      Optional list of DNS white/blacklist domains, filters and weight +

      Optional list of DNS allow/denylist domains, filters and weight factors. When the list is non-empty, the dnsblog(8) daemon will query these domains with the IP addresses of remote SMTP clients, and postscreen(8) will update an SMTP client's DNSBL score with @@ -14164,7 +14164,7 @@ or more ";"-separated numbers or number..number ranges.

      the remote SMTP client's DNSBL score by 1. Otherwise, the weight must be an integral number, and postscreen(8) adds the specified weight to the remote SMTP client's DNSBL score. Specify a negative number for -whitelisting.

      +allowlisting.

    • When one postscreen_dnsbl_sites entry produces multiple DNSBL responses, postscreen(8) applies the weight at most once. @@ -14250,7 +14250,7 @@ this test the next time the client connects. -

      In either case, postscreen(8) will not whitelist the remote SMTP client +

      In either case, postscreen(8) will not allowlist the remote SMTP client IP address.

      This feature is available in Postfix 2.8.

      @@ -14276,7 +14276,7 @@ IP address.

      %PARAM postscreen_access_list permit_mynetworks -

      Permanent white/blacklist for remote SMTP client IP addresses. +

      Permanent allow/denylist for remote SMTP client IP addresses. postscreen(8) searches this list immediately after a remote SMTP client connects. Specify a comma- or whitespace-separated list of commands (in upper or lower case) or lookup tables. The search stops @@ -14284,7 +14284,7 @@ upon the first command that fires for the client IP address.

      -
      permit_mynetworks
      Whitelist the client and +
      permit_mynetworks
      Allowlist the client and terminate the search if the client IP address matches $mynetworks. Do not subject the client to any before/after 220 greeting tests. Pass the connection immediately to a Postfix SMTP server process. @@ -14299,12 +14299,12 @@ To discourage the use of hash, btree, etc. tables, there is no support for substring matching like smtpd(8). Use CIDR tables instead.
      -
      permit
      Whitelist the client and terminate +
      permit
      Allowlist the client and terminate the search. Do not subject the client to any before/after 220 greeting tests. Pass the connection immediately to a Postfix SMTP server process.
      -
      reject
      Blacklist the client and terminate +
      reject
      Denylist the client and terminate the search. Subject the client to the action configured with the postscreen_blacklist_action configuration parameter.
      @@ -14329,7 +14329,7 @@ to the configured before/after 220 greeting tests.
       /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         dunno
           192.168.0.0/16      reject
       
      @@ -14350,7 +14350,7 @@ value to disable this feature.

      %PARAM postscreen_blacklist_action ignore

      The action that postscreen(8) takes when a remote SMTP client is -permanently blacklisted with the postscreen_access_list parameter. +permanently denylisted with the postscreen_access_list parameter. Specify one of the following:

      @@ -15617,7 +15617,7 @@ See smtpd_command_filter for further details.

      %PARAM dnsblog_service_name dnsblog

      The name of the dnsblog(8) service entry in master.cf. This -service performs DNS white/blacklist lookups.

      +service performs DNS allow/denylist lookups.

      This feature is available in Postfix 2.8 and later.

      @@ -15677,18 +15677,18 @@ configuration parameter. See there for details.

      %PARAM postscreen_whitelist_interfaces static:all

      A list of local postscreen(8) server IP addresses where a -non-whitelisted remote SMTP client can obtain postscreen(8)'s temporary -whitelist status. This status is required before the client can +non-allowlisted remote SMTP client can obtain postscreen(8)'s temporary +allowlist status. This status is required before the client can talk to a Postfix SMTP server process. By default, a client can -obtain postscreen(8)'s whitelist status on any local postscreen(8) +obtain postscreen(8)'s allowlist status on any local postscreen(8) server IP address.

      When postscreen(8) listens on both primary and backup MX addresses, the postscreen_whitelist_interfaces parameter can be -configured to give the temporary whitelist status only when a client -connects to a primary MX address. Once a client is whitelisted it +configured to give the temporary allowlist status only when a client +connects to a primary MX address. Once a client is allowlisted it can talk to a Postfix SMTP server on any address. Thus, clients -that connect only to backup MX addresses will never become whitelisted, +that connect only to backup MX addresses will never become allowlisted, and will never be allowed to talk to a Postfix SMTP server process.

      @@ -15716,7 +15716,7 @@ pattern.

       /etc/postfix/main.cf:
      -    # Don't whitelist connections to the backup IP address.
      +    # Don't allowlist connections to the backup IP address.
           postscreen_whitelist_interfaces = !168.100.189.8, static:all
       
      diff --git a/postfix/src/dns/dns_lookup.c b/postfix/src/dns/dns_lookup.c index 61375e23c..94d8045f7 100644 --- a/postfix/src/dns/dns_lookup.c +++ b/postfix/src/dns/dns_lookup.c @@ -332,7 +332,7 @@ static struct __res_state dns_res_state; #endif /* - * To improve postscreen's whitelisting support, we need to know how long a + * To improve postscreen's allowlisting support, we need to know how long a * DNSBL "not found" answer is valid. The 2010 implementation assumed it was * valid for 3600 seconds. That is too long by 2015 standards. * diff --git a/postfix/src/dnsblog/dnsblog.c b/postfix/src/dnsblog/dnsblog.c index 021be255c..bc87c4b59 100644 --- a/postfix/src/dnsblog/dnsblog.c +++ b/postfix/src/dnsblog/dnsblog.c @@ -2,20 +2,20 @@ /* NAME /* dnsblog 8 /* SUMMARY -/* Postfix DNS white/blacklist logger +/* Postfix DNS allow/denylist logger /* SYNOPSIS /* \fBdnsblog\fR [generic Postfix daemon options] /* DESCRIPTION /* The \fBdnsblog\fR(8) server implements an ad-hoc DNS -/* white/blacklist lookup service. This may eventually be +/* allow/denylist lookup service. This may eventually be /* replaced by an UDP client that is built directly into the /* \fBpostscreen\fR(8) server. /* PROTOCOL /* .ad /* .fi /* With each connection, the \fBdnsblog\fR(8) server receives -/* a DNS white/blacklist domain name, an IP address, and an ID. -/* If the IP address is listed under the DNS white/blacklist, the +/* a DNS allow/denylist domain name, an IP address, and an ID. +/* If the IP address is listed under the DNS allow/denylist, the /* \fBdnsblog\fR(8) server logs the match and replies with the /* query arguments plus an address list with the resulting IP /* addresses, separated by whitespace, and the reply TTL. @@ -43,7 +43,7 @@ /* How much time a Postfix daemon process may take to handle a /* request before it is terminated by a built-in watchdog timer. /* .IP "\fBpostscreen_dnsbl_sites (empty)\fR" -/* Optional list of DNS white/blacklist domains, filters and weight +/* Optional list of DNS allow/denylist domains, filters and weight /* factors. /* .IP "\fBipc_timeout (3600s)\fR" /* The time limit for sending or receiving information over an internal diff --git a/postfix/src/global/mail_version.h b/postfix/src/global/mail_version.h index 93a95dd0e..41a5d265d 100644 --- a/postfix/src/global/mail_version.h +++ b/postfix/src/global/mail_version.h @@ -20,7 +20,7 @@ * Patches change both the patchlevel and the release date. Snapshots have no * patchlevel; they change the release date only. */ -#define MAIL_RELEASE_DATE "20210215" +#define MAIL_RELEASE_DATE "20210216" #define MAIL_VERSION_NUMBER "3.6" #ifdef SNAPSHOT diff --git a/postfix/src/global/server_acl.c b/postfix/src/global/server_acl.c index adbcdf3e9..5385a5a1f 100644 --- a/postfix/src/global/server_acl.c +++ b/postfix/src/global/server_acl.c @@ -19,7 +19,7 @@ /* SERVER_ACL *intern_acl; /* const char *param_name; /* DESCRIPTION -/* This module implements a permanent black/whitelist that +/* This module implements a permanent allow/denylist that /* is meant to be evaluated immediately after a client connects /* to a server. /* diff --git a/postfix/src/postfix/postfix.c b/postfix/src/postfix/postfix.c index 0c0e6fd7a..2270ce41b 100644 --- a/postfix/src/postfix/postfix.c +++ b/postfix/src/postfix/postfix.c @@ -324,7 +324,7 @@ /* bounce(8), defer(8), trace(8), Delivery status reports /* cleanup(8), canonicalize and enqueue message /* discard(8), Postfix discard delivery agent -/* dnsblog(8), DNS black/whitelist logger +/* dnsblog(8), DNS allow/denylist logger /* error(8), Postfix error delivery agent /* flush(8), Postfix fast ETRN service /* local(8), Postfix local delivery agent diff --git a/postfix/src/postscreen/postscreen.c b/postfix/src/postscreen/postscreen.c index 301961a33..fe16462d1 100644 --- a/postfix/src/postscreen/postscreen.c +++ b/postfix/src/postscreen/postscreen.c @@ -23,9 +23,9 @@ /* "port 25" server that provides \fBsubmission\fR service and /* client authentication, but no MX service. /* -/* \fBpostscreen\fR(8) maintains a temporary whitelist for +/* \fBpostscreen\fR(8) maintains a temporary allowlist for /* clients that have passed a number of tests. When an SMTP -/* client IP address is whitelisted, \fBpostscreen\fR(8) hands +/* client IP address is allowlisted, \fBpostscreen\fR(8) hands /* off the connection immediately to a Postfix SMTP server /* process. This minimizes the overhead for legitimate mail. /* @@ -147,23 +147,23 @@ /* .IP "\fBpostscreen_upstream_proxy_timeout (5s)\fR" /* The time limit for the proxy protocol specified with the /* postscreen_upstream_proxy_protocol parameter. -/* PERMANENT WHITE/BLACKLIST TEST +/* PERMANENT ALLOW/DENYLIST TEST /* .ad /* .fi /* This test is executed immediately after a remote SMTP client -/* connects. If a client is permanently whitelisted, the client +/* connects. If a client is permanently allowlisted, the client /* will be handed off immediately to a Postfix SMTP server /* process. /* .IP "\fBpostscreen_access_list (permit_mynetworks)\fR" -/* Permanent white/blacklist for remote SMTP client IP addresses. +/* Permanent allow/denylist for remote SMTP client IP addresses. /* .IP "\fBpostscreen_blacklist_action (ignore)\fR" /* The action that \fBpostscreen\fR(8) takes when a remote SMTP client is -/* permanently blacklisted with the postscreen_access_list parameter. +/* permanently denylisted with the postscreen_access_list parameter. /* MAIL EXCHANGER POLICY TESTS /* .ad /* .fi /* When \fBpostscreen\fR(8) is configured to monitor all primary -/* and backup MX addresses, it can refuse to whitelist clients +/* and backup MX addresses, it can refuse to allowlist clients /* that connect to a backup MX address only. For small sites, /* this requires configuring primary and backup MX addresses /* on the same MTA. Larger sites would have to share the @@ -171,8 +171,8 @@ /* which would introduce a common point of failure. /* .IP "\fBpostscreen_whitelist_interfaces (static:all)\fR" /* A list of local \fBpostscreen\fR(8) server IP addresses where a -/* non-whitelisted remote SMTP client can obtain \fBpostscreen\fR(8)'s temporary -/* whitelist status. +/* non-allowlisted remote SMTP client can obtain \fBpostscreen\fR(8)'s temporary +/* allowlist status. /* BEFORE 220 GREETING TESTS /* .ad /* .fi @@ -193,7 +193,7 @@ /* password, to the DNSBL domain name that postscreen will reply with /* when it rejects mail. /* .IP "\fBpostscreen_dnsbl_sites (empty)\fR" -/* Optional list of DNS white/blacklist domains, filters and weight +/* Optional list of DNS allow/denylist domains, filters and weight /* factors. /* .IP "\fBpostscreen_dnsbl_threshold (1)\fR" /* The inclusive lower bound for blocking a remote SMTP client, based on @@ -274,7 +274,7 @@ /* Persistent storage for the \fBpostscreen\fR(8) server decisions. /* .IP "\fBpostscreen_cache_retention_time (7d)\fR" /* The amount of time that \fBpostscreen\fR(8) will cache an expired -/* temporary whitelist entry before it is removed. +/* temporary allowlist entry before it is removed. /* .IP "\fBpostscreen_bare_newline_ttl (30d)\fR" /* The amount of time that \fBpostscreen\fR(8) will use the result from /* a successful "bare newline" SMTP protocol test. @@ -315,7 +315,7 @@ /* The number of clients that can be waiting for service from a /* real Postfix SMTP server process. /* .IP "\fBpostscreen_pre_queue_limit ($default_process_limit)\fR" -/* The number of non-whitelisted clients that can be waiting for +/* The number of non-allowlisted clients that can be waiting for /* a decision whether they will receive service from a real Postfix /* SMTP server /* process. @@ -378,7 +378,7 @@ /* SEE ALSO /* smtpd(8), Postfix SMTP server /* tlsproxy(8), Postfix TLS proxy server -/* dnsblog(8), DNS black/whitelist logger +/* dnsblog(8), DNS allow/denylist logger /* postlogd(8), Postfix logging /* syslogd(8), system logging /* README FILES @@ -563,9 +563,9 @@ HTABLE *psc_client_concurrency; /* per-client concurrency */ /* * Local variables and functions. */ -static ARGV *psc_acl; /* permanent white/backlist */ +static ARGV *psc_acl; /* permanent allow/denylist */ static int psc_blist_action; /* PSC_ACT_DROP/ENFORCE/etc */ -static ADDR_MATCH_LIST *psc_wlist_if; /* whitelist interfaces */ +static ADDR_MATCH_LIST *psc_wlist_if; /* allowlist interfaces */ static void psc_endpt_lookup_done(int, VSTREAM *, MAI_HOSTADDR_STR *, MAI_SERVPORT_STR *, @@ -730,13 +730,13 @@ static void psc_endpt_lookup_done(int endpt_status, } /* - * The permanent white/blacklist has highest precedence. + * The permanent allow/denylist has highest precedence. */ if (psc_acl != 0) { switch (psc_acl_eval(state, psc_acl, VAR_PSC_ACL)) { /* - * Permanently blacklisted. + * Permanently denylisted. */ case PSC_ACL_ACT_BLACKLIST: msg_info("BLACKLISTED [%s]:%s", PSC_CLIENT_ADDR_PORT(state)); @@ -759,13 +759,13 @@ static void psc_endpt_lookup_done(int endpt_status, */ break; default: - msg_panic("%s: unknown blacklist action value %d", + msg_panic("%s: unknown denylist action value %d", myname, psc_blist_action); } break; /* - * Permanently whitelisted. + * Permanently allowlisted. */ case PSC_ACL_ACT_WHITELIST: msg_info("WHITELISTED [%s]:%s", PSC_CLIENT_ADDR_PORT(state)); @@ -781,9 +781,9 @@ static void psc_endpt_lookup_done(int endpt_status, } /* - * The temporary whitelist (i.e. the postscreen cache) has the lowest + * The temporary allowlist (i.e. the postscreen cache) has the lowest * precedence. This cache contains information about the results of prior - * tests. Whitelist the client when all enabled test results are still + * tests. Allowlist the client when all enabled test results are still * valid. */ if ((state->flags & PSC_STATE_MASK_ANY_FAIL) == 0 @@ -818,7 +818,7 @@ static void psc_endpt_lookup_done(int endpt_status, } /* - * Don't whitelist clients that connect to backup MX addresses. Fail + * Don't allowlist clients that connect to backup MX addresses. Fail * "closed" on error. */ if (addr_match_list_match(psc_wlist_if, smtp_server_addr->buf) == 0) { diff --git a/postfix/src/postscreen/postscreen.h b/postfix/src/postscreen/postscreen.h index b38a604ad..d7d2e1061 100644 --- a/postfix/src/postscreen/postscreen.h +++ b/postfix/src/postscreen/postscreen.h @@ -156,7 +156,7 @@ typedef struct { #define PSC_STATE_FLAG_SHIFT_BYFNAME(fname) (PSC_STATE_FLAG_SHIFT_ ## fname) /* - * Indexable per-test flags. These are used for DNS whitelisting multiple + * Indexable per-test flags. These are used for DNS allowlisting multiple * tests, without needing per-test ad-hoc code. */ #define PSC_STATE_FLAG_BYTINDX_FNAME(tindx, fname) \ diff --git a/postfix/src/postscreen/postscreen_dnsbl.c b/postfix/src/postscreen/postscreen_dnsbl.c index 0142dd3fc..7d9a5e94b 100644 --- a/postfix/src/postscreen/postscreen_dnsbl.c +++ b/postfix/src/postscreen/postscreen_dnsbl.c @@ -150,7 +150,7 @@ typedef struct { typedef struct { const char *dnsbl_name; /* DNSBL with largest contribution */ int dnsbl_weight; /* weight of largest contribution */ - int total; /* combined white+blocklist score */ + int total; /* combined allow+denylist score */ int fail_ttl; /* combined reply TTL */ int pass_ttl; /* combined reply TTL */ int refcount; /* score reference count */ @@ -239,7 +239,7 @@ static void psc_dnsbl_add_site(const char *site) */ #define DO_GRIPE 1 - /* Negative weight means whitelist. */ + /* Negative weight means allowlist. */ if ((weight_text = split_at(saved_site, '*')) != 0) { if (sscanf(weight_text, "%d%c", &weight, &junk) != 1) msg_fatal("bad DNSBL weight factor \"%s\" in \"%s\"", diff --git a/postfix/src/postscreen/postscreen_early.c b/postfix/src/postscreen/postscreen_early.c index 50b46eed7..4baa41830 100644 --- a/postfix/src/postscreen/postscreen_early.c +++ b/postfix/src/postscreen/postscreen_early.c @@ -56,22 +56,22 @@ static char *psc_teaser_greeting; static VSTRING *psc_escape_buf; -/* psc_whitelist_non_dnsbl - whitelist pending non-dnsbl tests */ +/* psc_allowlist_non_dnsbl - allowlist pending non-dnsbl tests */ -static void psc_whitelist_non_dnsbl(PSC_STATE *state) +static void psc_allowlist_non_dnsbl(PSC_STATE *state) { time_t now; int tindx; /* - * If no tests failed (we can't undo those), and if the whitelist + * If no tests failed (we can't undo those), and if the allowlist * threshold is met, flag non-dnsbl tests that are pending or disabled as * successfully completed, and set their expiration times equal to the * DNSBL expiration time, except for tests that would expire later. * * Why flag disabled tests as passed? When a disabled test is turned on, * postscreen should not apply that test to clients that are already - * whitelisted based on their combined DNSBL score. + * allowlisted based on their combined DNSBL score. */ if ((state->flags & PSC_STATE_MASK_ANY_FAIL) == 0 && state->dnsbl_score < var_psc_dnsbl_thresh @@ -154,7 +154,7 @@ static void psc_early_event(int event, void *context) } /* - * Collect the DNSBL score, and whitelist other tests if applicable. + * Collect the DNSBL score, and allowlist other tests if applicable. * Note: this score will be partial when some DNS lookup did not * complete before the pregreet timer expired. * @@ -173,7 +173,7 @@ static void psc_early_event(int event, void *context) state->dnsbl_index, &state->dnsbl_ttl); if (var_psc_dnsbl_wthresh < 0) - psc_whitelist_non_dnsbl(state); + psc_allowlist_non_dnsbl(state); } if (state->dnsbl_score < var_psc_dnsbl_thresh) { expire_time[PSC_TINDX_DNSBL] = event_time() + state->dnsbl_ttl; @@ -303,13 +303,13 @@ static void psc_early_dnsbl_event(int unused_event, void *context) msg_info("%s: notify [%s]:%s", myname, PSC_CLIENT_ADDR_PORT(state)); /* - * Collect the DNSBL score, and whitelist other tests if applicable. + * Collect the DNSBL score, and allowlist other tests if applicable. */ state->dnsbl_score = psc_dnsbl_retrieve(state->smtp_client_addr, &state->dnsbl_name, state->dnsbl_index, &state->dnsbl_ttl); if (var_psc_dnsbl_wthresh < 0) - psc_whitelist_non_dnsbl(state); + psc_allowlist_non_dnsbl(state); /* * Terminate the greet delay if we're just waiting for DNSBL lookup to diff --git a/postfix/src/postscreen/postscreen_misc.c b/postfix/src/postscreen/postscreen_misc.c index ca7ec1641..f07c9ac11 100644 --- a/postfix/src/postscreen/postscreen_misc.c +++ b/postfix/src/postscreen/postscreen_misc.c @@ -97,8 +97,8 @@ void psc_conclude(PSC_STATE *state) /* * Handle clients that passed at least one test other than permanent - * whitelisting, and that didn't fail any test including permanent - * blacklisting. There may still be unfinished tests; those tests will + * allowlisting, and that didn't fail any test including permanent + * denylisting. There may still be unfinished tests; those tests will * need to be completed when the client returns in a later session. */ if (state->flags & PSC_STATE_MASK_ANY_FAIL) @@ -116,7 +116,7 @@ void psc_conclude(PSC_STATE *state) /* * Update the postscreen cache. This still supports a scenario where a - * client gets whitelisted in the course of multiple sessions, as long as + * client gets allowlisted in the course of multiple sessions, as long as * that client does not "fail" any test. Don't try to optimize away cache * updates; we want cached information to be up-to-date even if a test * result is renewed during overlapping SMTP sessions, and even if diff --git a/postfix/src/postscreen/postscreen_smtpd.c b/postfix/src/postscreen/postscreen_smtpd.c index 830b47067..ca7088803 100644 --- a/postfix/src/postscreen/postscreen_smtpd.c +++ b/postfix/src/postscreen/postscreen_smtpd.c @@ -40,7 +40,7 @@ /* at any stage. /* /* No support is announced for AUTH, XCLIENT or XFORWARD. -/* Clients that need this should be whitelisted or should talk +/* Clients that need this should be allowlisted or should talk /* directly to the submission service. /* /* The engine rejects RCPT TO and VRFY commands with the @@ -902,7 +902,7 @@ static void psc_smtpd_read_event(int event, void *context) case PSC_ACT_IGNORE: PSC_UNFAIL_SESSION_STATE(state, PSC_STATE_FLAG_BARLF_FAIL); - /* Temporarily whitelist until something expires. */ + /* Temporarily allowlist until something expires. */ PSC_PASS_SESSION_STATE(state, "bare newline test", PSC_STATE_FLAG_BARLF_PASS); expire_time[PSC_TINDX_BARLF] = event_time() + psc_min_ttl; @@ -1028,7 +1028,7 @@ static void psc_smtpd_read_event(int event, void *context) case PSC_ACT_IGNORE: PSC_UNFAIL_SESSION_STATE(state, PSC_STATE_FLAG_NSMTP_FAIL); - /* Temporarily whitelist until something else expires. */ + /* Temporarily allowlist until something else expires. */ PSC_PASS_SESSION_STATE(state, "non-smtp test", PSC_STATE_FLAG_NSMTP_PASS); expire_time[PSC_TINDX_NSMTP] = event_time() + psc_min_ttl; @@ -1066,7 +1066,7 @@ static void psc_smtpd_read_event(int event, void *context) case PSC_ACT_IGNORE: PSC_UNFAIL_SESSION_STATE(state, PSC_STATE_FLAG_PIPEL_FAIL); - /* Temporarily whitelist until something else expires. */ + /* Temporarily allowlist until something else expires. */ PSC_PASS_SESSION_STATE(state, "pipelining test", PSC_STATE_FLAG_PIPEL_PASS); expire_time[PSC_TINDX_PIPEL] = event_time() + psc_min_ttl; diff --git a/postfix/src/postscreen/postscreen_tests.c b/postfix/src/postscreen/postscreen_tests.c index 80cbc97d6..02dadcac1 100644 --- a/postfix/src/postscreen/postscreen_tests.c +++ b/postfix/src/postscreen/postscreen_tests.c @@ -259,7 +259,7 @@ void psc_todo_tests(PSC_STATE *state, time_t time_value) * enabled pre-handshake tests when any pre-handshake test is turned on. * * XXX Don't enable PREGREET gratuitously before the test expires. With a - * short TTL for DNSBL whitelisting, turning on PREGREET would force a + * short TTL for DNSBL allowlisting, turning on PREGREET would force a * full postscreen_greet_wait too frequently. */ #if 0 diff --git a/postfix/src/proxymap/proxymap.c b/postfix/src/proxymap/proxymap.c index 5783c99a1..b0b844678 100644 --- a/postfix/src/proxymap/proxymap.c +++ b/postfix/src/proxymap/proxymap.c @@ -719,7 +719,7 @@ static void post_jail_init(char *service_name, char **unused_argv) && htable_locate(proxy_auth_maps, type_name) == 0) { (void) htable_enter(proxy_auth_maps, type_name, (void *) 0); if (msg_verbose) - msg_info("whitelisting %s from %s", type_name, + msg_info("allowlisting %s from %s", type_name, PROXY_MAP_PARAM_NAME(proxy_writer)); } } diff --git a/postfix/src/smtpd/smtpd.c b/postfix/src/smtpd/smtpd.c index 43a14bbf4..dae38bd79 100644 --- a/postfix/src/smtpd/smtpd.c +++ b/postfix/src/smtpd/smtpd.c @@ -6035,7 +6035,7 @@ static void pre_jail_init(char *unused_name, char **unused_argv) { /* - * Initialize blacklist/etc. patterns before entering the chroot jail, in + * Initialize denylist/etc. patterns before entering the chroot jail, in * case they specify a filename pattern. */ smtpd_noop_cmds = string_list_init(VAR_SMTPD_NOOP_CMDS, MATCH_FLAG_RETURN, diff --git a/postfix/src/smtpd/smtpd_check.c b/postfix/src/smtpd/smtpd_check.c index d584066be..2155020d7 100644 --- a/postfix/src/smtpd/smtpd_check.c +++ b/postfix/src/smtpd/smtpd_check.c @@ -397,7 +397,7 @@ static STRING_LIST *smtpd_acl_perm_log; * restriction must defer immediately when lookup fails, otherwise incorrect * results happen with: * - * reject_unknown_client, hostname-based white-list, reject + * reject_unknown_client, hostname-based allow-list, reject * * XXX With warn_if_reject, don't raise the defer_if_permit flag when a * reject-style restriction fails. Instead, log the warning for the @@ -3678,7 +3678,7 @@ static const SMTPD_RBL_STATE *find_dnsxl_addr(SMTPD_STATE *state, return (rbl); } -/* reject_rbl_addr - reject address in real-time blackhole list */ +/* reject_rbl_addr - reject address in DNS deny list */ static int reject_rbl_addr(SMTPD_STATE *state, const char *rbl_domain, const char *addr, const char *reply_class) @@ -3708,7 +3708,7 @@ static int permit_dnswl_addr(SMTPD_STATE *state, const char *dnswl_domain, if (msg_verbose) msg_info("%s: %s", myname, addr); - /* Safety: don't whitelist unauthorized recipients. */ + /* Safety: don't allowlist unauthorized recipients. */ if (strcmp(state->where, SMTPD_CMD_RCPT) == 0 && state->recipient != 0 && permit_auth_destination(state, state->recipient) != SMTPD_CHECK_OK) return (SMTPD_CHECK_DUNNO); @@ -3732,7 +3732,7 @@ static int permit_dnswl_addr(SMTPD_STATE *state, const char *dnswl_domain, } } -/* find_dnsxl_domain - reject if domain in real-time blackhole list */ +/* find_dnsxl_domain - reject if domain in DNS deny list */ static const SMTPD_RBL_STATE *find_dnsxl_domain(SMTPD_STATE *state, const char *rbl_domain, const char *what) @@ -3797,7 +3797,7 @@ static const SMTPD_RBL_STATE *find_dnsxl_domain(SMTPD_STATE *state, return (rbl); } -/* reject_rbl_domain - reject if domain in real-time blackhole list */ +/* reject_rbl_domain - reject if domain in DNS deny list */ static int reject_rbl_domain(SMTPD_STATE *state, const char *rbl_domain, const char *what, const char *reply_class) @@ -3827,7 +3827,7 @@ static int permit_dnswl_domain(SMTPD_STATE *state, const char *dnswl_domain, if (msg_verbose) msg_info("%s: %s", myname, what); - /* Safety: don't whitelist unauthorized recipients. */ + /* Safety: don't allowlist unauthorized recipients. */ if (strcmp(state->where, SMTPD_CMD_RCPT) == 0 && state->recipient != 0 && permit_auth_destination(state, state->recipient) != SMTPD_CHECK_OK) return (SMTPD_CHECK_DUNNO); @@ -3851,7 +3851,7 @@ static int permit_dnswl_domain(SMTPD_STATE *state, const char *dnswl_domain, } } -/* reject_maps_rbl - reject if client address in real-time blackhole list */ +/* reject_maps_rbl - reject if client address in DNS deny list */ static int reject_maps_rbl(SMTPD_STATE *state) { @@ -4171,9 +4171,9 @@ static int is_map_command(SMTPD_STATE *state, const char *name, } } -/* forbid_whitelist - disallow whitelisting */ +/* forbid_allowlist - disallow allowlisting */ -static void forbid_whitelist(SMTPD_STATE *state, const char *name, +static void forbid_allowlist(SMTPD_STATE *state, const char *name, int status, const char *target) { if (state->discard == 0 && status == SMTPD_CHECK_OK) { @@ -4318,7 +4318,7 @@ static int generic_checks(SMTPD_STATE *state, ARGV *restrictions, status = check_namadr_access(state, *cpp, state->reverse_name, state->addr, FULL, &found, state->reverse_name, SMTPD_NAME_REV_CLIENT, def_acl); - forbid_whitelist(state, name, status, state->reverse_name); + forbid_allowlist(state, name, status, state->reverse_name); } else if (strcasecmp(name, REJECT_MAPS_RBL) == 0) { status = reject_maps_rbl(state); } else if (strcasecmp(name, REJECT_RBL_CLIENT) == 0 @@ -4387,42 +4387,42 @@ static int generic_checks(SMTPD_STATE *state, ARGV *restrictions, status = check_server_access(state, *cpp, state->name, T_NS, state->namaddr, SMTPD_NAME_CLIENT, def_acl); - forbid_whitelist(state, name, status, state->name); + forbid_allowlist(state, name, status, state->name); } } else if (is_map_command(state, name, CHECK_CLIENT_MX_ACL, &cpp)) { if (strcasecmp(state->name, "unknown") != 0) { status = check_server_access(state, *cpp, state->name, T_MX, state->namaddr, SMTPD_NAME_CLIENT, def_acl); - forbid_whitelist(state, name, status, state->name); + forbid_allowlist(state, name, status, state->name); } } else if (is_map_command(state, name, CHECK_CLIENT_A_ACL, &cpp)) { if (strcasecmp(state->name, "unknown") != 0) { status = check_server_access(state, *cpp, state->name, T_A, state->namaddr, SMTPD_NAME_CLIENT, def_acl); - forbid_whitelist(state, name, status, state->name); + forbid_allowlist(state, name, status, state->name); } } else if (is_map_command(state, name, CHECK_REVERSE_CLIENT_NS_ACL, &cpp)) { if (strcasecmp(state->reverse_name, "unknown") != 0) { status = check_server_access(state, *cpp, state->reverse_name, T_NS, state->reverse_name, SMTPD_NAME_REV_CLIENT, def_acl); - forbid_whitelist(state, name, status, state->reverse_name); + forbid_allowlist(state, name, status, state->reverse_name); } } else if (is_map_command(state, name, CHECK_REVERSE_CLIENT_MX_ACL, &cpp)) { if (strcasecmp(state->reverse_name, "unknown") != 0) { status = check_server_access(state, *cpp, state->reverse_name, T_MX, state->reverse_name, SMTPD_NAME_REV_CLIENT, def_acl); - forbid_whitelist(state, name, status, state->reverse_name); + forbid_allowlist(state, name, status, state->reverse_name); } } else if (is_map_command(state, name, CHECK_REVERSE_CLIENT_A_ACL, &cpp)) { if (strcasecmp(state->reverse_name, "unknown") != 0) { status = check_server_access(state, *cpp, state->reverse_name, T_A, state->reverse_name, SMTPD_NAME_REV_CLIENT, def_acl); - forbid_whitelist(state, name, status, state->reverse_name); + forbid_allowlist(state, name, status, state->reverse_name); } } @@ -4469,21 +4469,21 @@ static int generic_checks(SMTPD_STATE *state, ARGV *restrictions, status = check_server_access(state, *cpp, state->helo_name, T_NS, state->helo_name, SMTPD_NAME_HELO, def_acl); - forbid_whitelist(state, name, status, state->helo_name); + forbid_allowlist(state, name, status, state->helo_name); } } else if (is_map_command(state, name, CHECK_HELO_MX_ACL, &cpp)) { if (state->helo_name) { status = check_server_access(state, *cpp, state->helo_name, T_MX, state->helo_name, SMTPD_NAME_HELO, def_acl); - forbid_whitelist(state, name, status, state->helo_name); + forbid_allowlist(state, name, status, state->helo_name); } } else if (is_map_command(state, name, CHECK_HELO_A_ACL, &cpp)) { if (state->helo_name) { status = check_server_access(state, *cpp, state->helo_name, T_A, state->helo_name, SMTPD_NAME_HELO, def_acl); - forbid_whitelist(state, name, status, state->helo_name); + forbid_allowlist(state, name, status, state->helo_name); } } else if (strcasecmp(name, REJECT_NON_FQDN_HELO_HOSTNAME) == 0 || strcasecmp(name, REJECT_NON_FQDN_HOSTNAME) == 0) { @@ -4573,21 +4573,21 @@ static int generic_checks(SMTPD_STATE *state, ARGV *restrictions, status = check_server_access(state, *cpp, state->sender, T_NS, state->sender, SMTPD_NAME_SENDER, def_acl); - forbid_whitelist(state, name, status, state->sender); + forbid_allowlist(state, name, status, state->sender); } } else if (is_map_command(state, name, CHECK_SENDER_MX_ACL, &cpp)) { if (state->sender && *state->sender) { status = check_server_access(state, *cpp, state->sender, T_MX, state->sender, SMTPD_NAME_SENDER, def_acl); - forbid_whitelist(state, name, status, state->sender); + forbid_allowlist(state, name, status, state->sender); } } else if (is_map_command(state, name, CHECK_SENDER_A_ACL, &cpp)) { if (state->sender && *state->sender) { status = check_server_access(state, *cpp, state->sender, T_A, state->sender, SMTPD_NAME_SENDER, def_acl); - forbid_whitelist(state, name, status, state->sender); + forbid_allowlist(state, name, status, state->sender); } } else if (strcasecmp(name, REJECT_RHSBL_SENDER) == 0) { if (cpp[1] == 0) @@ -4677,21 +4677,21 @@ static int generic_checks(SMTPD_STATE *state, ARGV *restrictions, status = check_server_access(state, *cpp, state->recipient, T_NS, state->recipient, SMTPD_NAME_RECIPIENT, def_acl); - forbid_whitelist(state, name, status, state->recipient); + forbid_allowlist(state, name, status, state->recipient); } } else if (is_map_command(state, name, CHECK_RECIP_MX_ACL, &cpp)) { if (state->recipient && *state->recipient) { status = check_server_access(state, *cpp, state->recipient, T_MX, state->recipient, SMTPD_NAME_RECIPIENT, def_acl); - forbid_whitelist(state, name, status, state->recipient); + forbid_allowlist(state, name, status, state->recipient); } } else if (is_map_command(state, name, CHECK_RECIP_A_ACL, &cpp)) { if (state->recipient && *state->recipient) { status = check_server_access(state, *cpp, state->recipient, T_A, state->recipient, SMTPD_NAME_RECIPIENT, def_acl); - forbid_whitelist(state, name, status, state->recipient); + forbid_allowlist(state, name, status, state->recipient); } } else if (strcasecmp(name, REJECT_RHSBL_RECIPIENT) == 0) { if (cpp[1] == 0) diff --git a/postfix/src/smtpd/smtpd_dnswl.in b/postfix/src/smtpd/smtpd_dnswl.in index 6546e023e..ec36e1852 100644 --- a/postfix/src/smtpd/smtpd_dnswl.in +++ b/postfix/src/smtpd/smtpd_dnswl.in @@ -12,15 +12,15 @@ helo foobar # DNSWL (by IP address) # -# Whitelist overrides reject. +# Allowlist overrides reject. client_restrictions permit_dnswl_client,wild.porcupine.org,reject client spike.porcupine.org 168.100.189.2 -# Whitelist does not fire - reject. +# Allowlist does not fire - reject. client_restrictions permit_dnswl_client,porcupine.org,reject client spike.porcupine.org 168.100.189.2 -# Whitelist does not override reject_unauth_destination. +# Allowlist does not override reject_unauth_destination. client_restrictions permit recipient_restrictions permit_dnswl_client,wild.porcupine.org,reject_unauth_destination # Unauthorized destination - reject. @@ -32,23 +32,23 @@ rcpt wietse@porcupine.org # RHSWL (by domain name) # -# Whitelist overrides reject. +# Allowlist overrides reject. client_restrictions permit_rhswl_client,dnswl.porcupine.org,reject -# Non-whitelisted client name - reject. +# Non-allowlisted client name - reject. client spike.porcupine.org 168.100.189.2 -# Whitelisted client name - accept. +# Allowlisted client name - accept. client example.tld 168.100.189.2 -# Whitelist does not override reject_unauth_destination. +# Allowlist does not override reject_unauth_destination. client_restrictions permit recipient_restrictions permit_rhswl_client,dnswl.porcupine.org,reject_unauth_destination -# Non-whitelisted client name. +# Non-allowlisted client name. client spike.porcupine.org 168.100.189.2 # Unauthorized destination - reject. rcpt rname@rdomain # Authorized destination - accept. rcpt wietse@porcupine.org -# Whitelisted client name. +# Allowlisted client name. client example.tld 168.100.189.2 # Unauthorized destination - reject. rcpt rname@rdomain diff --git a/postfix/src/smtpd/smtpd_dnswl.ref b/postfix/src/smtpd/smtpd_dnswl.ref index 7c23459c4..c0cb14e6d 100644 --- a/postfix/src/smtpd/smtpd_dnswl.ref +++ b/postfix/src/smtpd/smtpd_dnswl.ref @@ -17,20 +17,20 @@ OK >>> # DNSWL (by IP address) >>> # >>> ->>> # Whitelist overrides reject. +>>> # Allowlist overrides reject. >>> client_restrictions permit_dnswl_client,wild.porcupine.org,reject OK >>> client spike.porcupine.org 168.100.189.2 OK >>> ->>> # Whitelist does not fire - reject. +>>> # Allowlist does not fire - reject. >>> client_restrictions permit_dnswl_client,porcupine.org,reject OK >>> client spike.porcupine.org 168.100.189.2 ./smtpd_check: : reject: CONNECT from spike.porcupine.org[168.100.189.2]: 554 5.7.1 : Client host rejected: Access denied; proto=SMTP helo= 554 5.7.1 : Client host rejected: Access denied >>> ->>> # Whitelist does not override reject_unauth_destination. +>>> # Allowlist does not override reject_unauth_destination. >>> client_restrictions permit OK >>> recipient_restrictions permit_dnswl_client,wild.porcupine.org,reject_unauth_destination @@ -47,23 +47,23 @@ OK >>> # RHSWL (by domain name) >>> # >>> ->>> # Whitelist overrides reject. +>>> # Allowlist overrides reject. >>> client_restrictions permit_rhswl_client,dnswl.porcupine.org,reject OK ->>> # Non-whitelisted client name - reject. +>>> # Non-allowlisted client name - reject. >>> client spike.porcupine.org 168.100.189.2 ./smtpd_check: : reject: CONNECT from spike.porcupine.org[168.100.189.2]: 554 5.7.1 : Client host rejected: Access denied; proto=SMTP helo= 554 5.7.1 : Client host rejected: Access denied ->>> # Whitelisted client name - accept. +>>> # Allowlisted client name - accept. >>> client example.tld 168.100.189.2 OK >>> ->>> # Whitelist does not override reject_unauth_destination. +>>> # Allowlist does not override reject_unauth_destination. >>> client_restrictions permit OK >>> recipient_restrictions permit_rhswl_client,dnswl.porcupine.org,reject_unauth_destination OK ->>> # Non-whitelisted client name. +>>> # Non-allowlisted client name. >>> client spike.porcupine.org 168.100.189.2 OK >>> # Unauthorized destination - reject. @@ -73,7 +73,7 @@ OK >>> # Authorized destination - accept. >>> rcpt wietse@porcupine.org OK ->>> # Whitelisted client name. +>>> # Allowlisted client name. >>> client example.tld 168.100.189.2 OK >>> # Unauthorized destination - reject. diff --git a/postfix/src/tlsproxy/tlsproxy.c b/postfix/src/tlsproxy/tlsproxy.c index c1774a902..5ad7784f4 100644 --- a/postfix/src/tlsproxy/tlsproxy.c +++ b/postfix/src/tlsproxy/tlsproxy.c @@ -8,8 +8,8 @@ /* DESCRIPTION /* The \fBtlsproxy\fR(8) server implements a two-way TLS proxy. It /* is used by the \fBpostscreen\fR(8) server to talk SMTP-over-TLS -/* with remote SMTP clients that are not whitelisted (including -/* clients whose whitelist status has expired), and by the +/* with remote SMTP clients that are not allowlisted (including +/* clients whose allowlist status has expired), and by the /* \fBsmtp\fR(8) client to support TLS connection reuse, but it /* should also work for non-SMTP protocols. /* @@ -1065,7 +1065,7 @@ static int tlsp_server_start_pre_handshake(TLSP_STATE *state) /* * XXX Do we care about TLS session rate limits? Good postscreen(8) * clients will occasionally require the tlsproxy to renew their - * whitelist status, but bad clients hammering the server can suck up + * allowlist status, but bad clients hammering the server can suck up * lots of CPU cycles. Per-client concurrency limits in postscreen(8) * will divert only naive security "researchers". */ diff --git a/postfix/src/verify/verify.c b/postfix/src/verify/verify.c index 60c5d9bc0..fea131c92 100644 --- a/postfix/src/verify/verify.c +++ b/postfix/src/verify/verify.c @@ -64,7 +64,7 @@ /* 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. +/* denylisted by some providers. /* /* If the persistent database ever gets corrupted then the world /* comes to an end and human intervention is needed. This violates