From: Wietse Venema
+DNSBLOG(8) DNSBLOG(8)
+
+NAME
+ dnsblog - Postfix DNS blocklist logger
+
+SYNOPSIS
+ dnsblog [generic Postfix daemon options]
+
+DESCRIPTION
+ The dnsblog(8) server implements an ad-hoc DNS blocklist
+ lookup service that will eventually be replaced by an UDP
+ client that is built directly into the postscreen(8)
+ server.
+
+ With each connection, the dnsblog(8) server receives a DNS
+ blocklist domain name and an IP address. If the address is
+ listed under the DNS blocklist, the dnsblog(8) server logs
+ the match and replies with the query arguments plus a non-
+ zero status. Otherwise it replies with the query argu-
+ ments plus a zero status. Finally, The dnsblog(8) server
+ closes the connection.
+
+DIAGNOSTICS
+ Problems and transactions are logged to syslogd(8).
+
+CONFIGURATION PARAMETERS
+ Changes to main.cf are picked up automatically, as dns-
+ blog(8) processes run for only a limited amount of time.
+ Use the command "postfix reload" to speed up a change.
+
+ The text below provides only a parameter summary. See
+ postconf(5) for more details including examples.
+
+ config_directory (see 'postconf -d' output)
+ The default location of the Postfix main.cf and
+ master.cf configuration files.
+
+ daemon_timeout (18000s)
+ How much time a Postfix daemon process may take to
+ handle a request before it is terminated by a
+ built-in watchdog timer.
+
+ postscreen_dnsbl_sites (empty)
+ Optional list of DNS blocklist domains.
+
+ ipc_timeout (3600s)
+ The time limit for sending or receiving information
+ over an internal communication channel.
+
+ process_id (read-only)
+ The process ID of a Postfix command or daemon
+ process.
+
+ process_name (read-only)
+ The process name of a Postfix command or daemon
+ process.
+
+ queue_directory (see 'postconf -d' output)
+ The location of the Postfix top-level queue direc-
+ tory.
+
+ syslog_facility (mail)
+ The syslog facility of Postfix logging.
+
+ syslog_name (see 'postconf -d' output)
+ The mail system name that is prepended to the
+ process name in syslog records, so that "smtpd"
+ becomes, for example, "postfix/smtpd".
+
+SEE ALSO
+ smtpd(8), Postfix SMTP server
+ postconf(5), configuration parameters
+ syslogd(5), system logging
+
+LICENSE
+ The Secure Mailer license must be distributed with this
+ software.
+
+HISTORY
+ This service is temporary with Postfix version 2.7.
+
+AUTHOR(S)
+ Wietse Venema
+ IBM T.J. Watson Research
+ P.O. Box 704
+ Yorktown Heights, NY 10598, USA
+
+ DNSBLOG(8)
+
diff --git a/postfix/html/pipe.8.html b/postfix/html/pipe.8.html
index 4ce64ec8b..94be20a98 100644
--- a/postfix/html/pipe.8.html
+++ b/postfix/html/pipe.8.html
@@ -200,12 +200,12 @@ PIPE(8) PIPE(8)
user=username (required)
user=username:groupname
- Execute the external command with the rights of the
- specified username. The software refuses to exe-
- cute commands with root privileges, or with the
- privileges of the mail system owner. If groupname
- is specified, the corresponding group ID is used
- instead of the group ID of username.
+ Execute the external command with the user ID and
+ group ID of the specified username. The software
+ refuses to execute commands with root privileges,
+ or with the privileges of the mail system owner. If
+ groupname is specified, the corresponding group ID
+ is used instead of the group ID of username.
argv=command... (required)
The command to be executed. This must be specified
@@ -381,72 +381,73 @@ PIPE(8) PIPE(8)
ventions defined in <sysexits.h>. Exit status 0 means
normal successful completion.
- Postfix version 2.3 and later support RFC 3463-style
- enhanced status codes. If a command terminates with a
- non-zero exit status, and the command output begins with
- an enhanced status code, this status code takes precedence
- over the non-zero exit status.
+ In the case of a non-zero exit status, a limited amount of
+ command output is reported in an delivery status notifica-
+ tion. When the output begins with a 4.X.X or 5.X.X
+ enhanced status code, the status code takes precedence
+ over the non-zero exit status (Postfix version 2.3 and
+ later).
- Problems and transactions are logged to syslogd(8). Cor-
- rupted message files are marked so that the queue manager
+ Problems and transactions are logged to syslogd(8). Cor-
+ rupted message files are marked so that the queue manager
can move them to the corrupt queue for further inspection.
SECURITY
- This program needs a dual personality 1) to access the
- private Postfix queue and IPC mechanisms, and 2) to exe-
+ This program needs a dual personality 1) to access the
+ private Postfix queue and IPC mechanisms, and 2) to exe-
cute external commands as the specified user. It is there-
fore security sensitive.
CONFIGURATION PARAMETERS
- Changes to main.cf are picked up automatically as pipe(8)
- processes run for only a limited amount of time. Use the
+ Changes to main.cf are picked up automatically as pipe(8)
+ processes run for only a limited amount of time. Use the
command "postfix reload" to speed up a change.
- The text below provides only a parameter summary. See
+ The text below provides only a parameter summary. See
postconf(5) for more details including examples.
RESOURCE AND RATE CONTROLS
- In the text below, transport is the first field in a mas-
+ In the text below, transport is the first field in a mas-
ter.cf entry.
transport_destination_concurrency_limit ($default_destina-
tion_concurrency_limit)
Limit the number of parallel deliveries to the same
- destination, for delivery via the named transport.
+ destination, for delivery via the named transport.
The limit is enforced by the Postfix queue manager.
transport_destination_recipient_limit ($default_destina-
tion_recipient_limit)
- Limit the number of recipients per message deliv-
- ery, for delivery via the named transport. The
+ Limit the number of recipients per message deliv-
+ ery, for delivery via the named transport. The
limit is enforced by the Postfix queue manager.
transport_time_limit ($command_time_limit)
- Limit the time for delivery to external command,
+ Limit the time for delivery to external command,
for delivery via the named transport. The limit is
enforced by the pipe delivery agent.
- Postfix 2.4 and later support a suffix that speci-
- fies the time unit: s (seconds), m (minutes), h
+ Postfix 2.4 and later support a suffix that speci-
+ fies the time unit: s (seconds), m (minutes), h
(hours), d (days), w (weeks). The default time unit
is seconds.
MISCELLANEOUS CONTROLS
config_directory (see 'postconf -d' output)
- The default location of the Postfix main.cf and
+ The default location of the Postfix main.cf and
master.cf configuration files.
daemon_timeout (18000s)
- How much time a Postfix daemon process may take to
- handle a request before it is terminated by a
+ How much time a Postfix daemon process may take to
+ handle a request before it is terminated by a
built-in watchdog timer.
delay_logging_resolution_limit (2)
- The maximal number of digits after the decimal
+ The maximal number of digits after the decimal
point when logging sub-second delay values.
export_environment (see 'postconf -d' output)
- The list of environment variables that a Postfix
+ The list of environment variables that a Postfix
process will export to non-Postfix processes.
ipc_timeout (3600s)
@@ -458,25 +459,25 @@ PIPE(8) PIPE(8)
and most Postfix daemon processes.
max_idle (100s)
- The maximum amount of time that an idle Postfix
- daemon process waits for an incoming connection
+ The maximum amount of time that an idle Postfix
+ daemon process waits for an incoming connection
before terminating voluntarily.
max_use (100)
- The maximal number of incoming connections that a
- Postfix daemon process will service before termi-
+ The maximal number of incoming connections that a
+ Postfix daemon process will service before termi-
nating voluntarily.
process_id (read-only)
- The process ID of a Postfix command or daemon
+ The process ID of a Postfix command or daemon
process.
process_name (read-only)
- The process name of a Postfix command or daemon
+ The process name of a Postfix command or daemon
process.
queue_directory (see 'postconf -d' output)
- The location of the Postfix top-level queue direc-
+ The location of the Postfix top-level queue direc-
tory.
recipient_delimiter (empty)
@@ -487,8 +488,8 @@ PIPE(8) PIPE(8)
The syslog facility of Postfix logging.
syslog_name (see 'postconf -d' output)
- The mail system name that is prepended to the
- process name in syslog records, so that "smtpd"
+ The mail system name that is prepended to the
+ process name in syslog records, so that "smtpd"
becomes, for example, "postfix/smtpd".
SEE ALSO
@@ -500,7 +501,7 @@ PIPE(8) PIPE(8)
syslogd(8), system logging
LICENSE
- The Secure Mailer license must be distributed with this
+ The Secure Mailer license must be distributed with this
software.
AUTHOR(S)
diff --git a/postfix/html/postconf.5.html b/postfix/html/postconf.5.html
index 9dced2a3f..c73971ea1 100644
--- a/postfix/html/postconf.5.html
+++ b/postfix/html/postconf.5.html
@@ -6469,6 +6469,244 @@ and enabled instances are processed in reverse order.
This feature is available in Postfix 2.6 and later.
+ + +The action that postscreen(8) takes when an SMTP client is +permanently blacklisted with the postscreen_blacklist_networks +parameter. Specify one of the following:
+ +This feature is available in Postfix 2.7.
+ +Network addresses that are permanently blacklisted; see the +postscreen_blacklist_action parameter for possible actions. This +parameter uses the same address syntax as the mynetworks parameter. +The blacklist has higher precedence than whitelists. This feature +never uses the remote SMTP client hostname.
+ +This feature is available in Postfix 2.7.
+ + +Persistent storage for the postscreen(8) server decisions.
+ +This feature is available in Postfix 2.7.
+ + +The amount of time that postscreen(8) will cache a decision for +a specific SMTP client IP address. During this time, the client IP +address is excluded from tests. If possible, expired decisions are +renewed silently. Specify a non-zero time value (an integral value +plus an optional one-letter suffix that specifies the time unit). +
+ +Time units: s (seconds), m (minutes), h (hours), d (days), w +(weeks).
+ +This feature is available in Postfix 2.7.
+ + +The action that postscreen(8) takes when an SMTP client is listed +at the DNS blocklist domains specified with the postscreen_dnsbl_sites +parameter. Specify one of the following:
+ +This feature is available in Postfix 2.7.
+ + +Optional list of DNS blocklist domains. When the list is non-enpty, +the dnsblog(8) daemon will query these domains with the IP addresses +of non-whitelisted postscreen(8) clients. Specify a list of domain +names, separated by comma or whitespace.
+ + +The action that postscreen(8) takes when an SMTP client speaks +before its turn within the time specified with the postscreen_greet_wait +parameter. Specify one of the following:
+ +In either case, postscreen(8) will not whitelist the SMTP client +IP address.
+ +This feature is available in Postfix 2.7.
+ + +The text in the optional "220-text..." server response that +postscreen(8) sends ahead of the real Postfix SMTP server's "220 +text..." response, in an attempt to confuse bad SMTP clients so +that they speak before their turn (pre-greet). Specify an empty +value to disable this feature.
+ +This feature is available in Postfix 2.7.
+ + +The amount of time that postscreen(8) will wait for an SMTP +client to send a command before its turn, and for DNS blocklist +lookup results to arrive. This is done only when the SMTP client +IP address is not permanently whitelisted, and when it has no cached +decision. Specify a non-zero time value (an integral value plus +an optional one-letter suffix that specifies the time unit).
+ +Time units: s (seconds), m (minutes), h (hours), d (days), w +(weeks).
+ +This feature is available in Postfix 2.7.
+ + +The action that postscreen(8) takes when an SMTP client disconnects +without sending data, within the time specified with the +postscreen_greet_wait parameter. Specify one of the following: +
+ +This feature is available in Postfix 2.7.
+ + +The number of clients that can be waiting for service from a +real SMTP server process. When this queue is full, all clients will +receive a 421 reponse.
+ +This feature is available in Postfix 2.7.
+ + +The number of non-whitelisted clients that can be waiting for +a decision whether they will receive service from a real SMTP server +process. When this queue is full, all non-whitelisted clients will +receive a 421 reponse.
+ +This feature is available in Postfix 2.7.
+ + +Network addresses that are permanently whitelisted, and that +will not be subjected to postscreen(8) checks. This parameter uses +the same address syntax as the mynetworks parameter. This feature +never uses the remote SMTP client hostname.
+ +This feature is available in Postfix 2.7.
+ +-What mechanisms when the Postfix SMTP client uses to look up a host's IP -address. This parameter is ignored when DNS lookups are disabled. +What mechanisms the Postfix SMTP client uses to look up a host's IP +address. This parameter is ignored when DNS lookups are disabled +(see: disable_dns_lookups).
@@ -10569,6 +10808,22 @@ Postfix version 2.5). This feature is available with Postfix version parent domains, client IP address, or networks obtained by stripping least significant octets. See the access(5) manual page for details.
The internal service that postscreen(8) forwards allowed +connections to. In a future version there may be different +classes of SMTP service.
+ +This feature is available in Postfix 2.7.
+ ++POSTSCREEN(8) POSTSCREEN(8) + +NAME + postscreen - Postfix SMTP triage server + +SYNOPSIS + postscreen [generic Postfix daemon options] + +DESCRIPTION + The Postfix postscreen(8) server performs triage on multi- + ple inbound SMTP connections in parallel. The program can + run in two basic modes. + + In observation mode the purpose is to collect statistics + without actually blocking mail. postscreen(8) runs a num- + ber of tests before it forwards a connection to a real + SMTP server process. These tests introduce a delay of a + few seconds; once a client passes the tests as "clean", + its IP address is whitelisted and subsequent connections + incur no delays until the whitelist entry expires. + + In enforcement mode the purpose is to block mail without + using up one Postfix SMTP server process for every connec- + tion. Here, postscreen(8) terminates connections from + SMTP clients that fail the above tests, and forwards only + the remaining connections to a real SMTP server process. + By running time-consuming spam tests in parallel in + postscreen(8), more Postfix SMTP server processes remain + available for legitimate clients. + + Note: postscreen(8) is not an SMTP proxy; this is inten- + tional. The purpose is to prioritize legitimate clients + with as little overhead as possible. + + postscreen(8) logs its observations and takes actions as + described in the sections that follow. + +PERMANENT BLACKLIST TEST + The postscreen_blacklist_networks parameter (default: + empty) specifies a permanent blacklist for SMTP client IP + addresses. The address syntax is as with mynetworks. When + the SMTP client address matches the permanent blacklist, + this is logged as: + + BLACKLISTED address + + The postscreen_blacklist_action parameter specifies the + action that is taken next: + + continue (default, observation mode) + Continue with the SMTP GREETING PHASE TESTS below. + + drop (enforcement mode) + Drop the connection immediately with a 521 SMTP + reply. In a future implementation, the connection + may instead be passed to a dummy SMTP protocol + engine that logs sender and recipient information. + +PERMANENT WHITELIST TEST + The postscreen_whitelist_networks parameter (default: + $mynetworks) specifies a permanent whitelist for SMTP + client IP addresses. This feature is not used for + addresses that appear on the permanent blacklist. When the + SMTP client address matches the permanent whitelist, this + is logged as: + + WHITELISTED address + + The action is not configurable: immediately forward the + connection to a real SMTP server process. + +TEMPORARY WHITELIST TEST + The postscreen(8) daemon maintains a temporary whitelist + 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 appear on the permanent blacklist or whitelist. + + When the SMTP client address appears on the temporary + whitelist, this is logged as: + + PASS OLD address + + The action is not configurable: immediately forward the + connection to a real SMTP server process. The client is + excluded from further tests until its temporary whitelist + entry expires, as controlled with the postscreen_cache_ttl + parameter. Expired entries are silently renewed if possi- + ble. + +SMTP GREETING PHASE TESTS + The postscreen_greet_wait parameter specifies a time + interval during which postscreen(8) runs a number of tests + as described below. These tests run before the client may + see the real SMTP server's "220 text..." server greeting. + When the SMTP client passes all the tests, this is logged + as: + + PASS NEW address + + The action is to forward the connection to a real SMTP + server process and to create a temporary whitelist entry + that excludes the client IP address from further tests + until the temporary whitelist entry expires, as controlled + with the postscreen_cache_ttl parameter. + + In a future implementation, the connection may first be + passed to a dummy SMTP protocol engine that implements + more protocol tests including greylisting, before the + client is allowed to talk to a real SMTP server process. + +PREGREET TEST + The postscreen_greet_banner parameter specifies the text + for a "220-text..." teaser banner (default: $smtpd_ban- + ner). The postscreen(8) daemon sends this before the + postscreen_greet_wait timer is started. The purpose of + the teaser banner is to confuse SPAM clients so that they + speak before their turn. It has no effect on SMTP clients + that correctly implement the protocol. + + To avoid problems with broken SMTP engines in network + appliances, either exclude them from all tests with the + postscreen_whitelist_networks feature or else specify an + empty postscreen_greet_banner value to disable the + "220-text..." teaser banner. + + When an SMTP client speaks before the + postscreen_greet_wait time has elapsed, this is logged as: + + PREGREET count after time from address text... + + Translation: the client at address sent count bytes before + its turn to speak, and this happened time seconds after + the test started. The text is what the client sent (trun- + cated at 100 bytes, and with non-printable characters + replaced with "?"). + + The postscreen_greet_action parameter specifies the action + that is taken next: + + continue (default, observation mode) + Wait until the postscreen_greet_wait time has + elapsed, then report DNSBL lookup results if appli- + cable. Either perform DNSBL-related actions or for- + ward the connection to a real SMTP server process. + + drop (enforcement mode) + Drop the connection immediately with a 521 SMTP + reply. In a future implementation, the connection + may instead be passed to a dummy SMTP protocol + engine that logs sender and recipient information. + +HANGUP TEST + When the SMTP client hangs up without sending any data + before the postscreen_greet_wait time has elapsed, this is + logged as: + + HANGUP after time from address + + The postscreen_hangup_action specifies the action that is + taken next: + + continue (default, observation mode) + Wait until the postscreen_greet_wait time has + elapsed, then report DNSBL lookup results if appli- + cable. Do not forward the broken connection to a + real SMTP server process. + + drop (enforcement mode) + Drop the connection immediately. + +DNS BLOCKLIST TEST + The postscreen_dnsbl_sites parameter (default: empty) + specifies a list of DNS blocklist servers. When the + postscreen_greet_wait time has elapsed, and the SMTP + client address is reported by at least one of these block- + lists, this is logged as: + + DNSBL rank count for address + + Translation: the client at address is listed with count + DNSBL servers. The count does not depend on the number of + DNS records that an individual DNSBL server returns. + + The postscreen_dnsbl_action parameter specifies the action + that is taken next: + + continue (default, observation mode) + Forward the connection to a real SMTP server + process. + + drop (enforcement mode) + Drop the connection immediately with a 521 SMTP + reply. In a future implementation, the connection + may instead be passed to a dummy SMTP protocol + engine that logs sender and recipient information. + +SECURITY + The postscreen(8) server is moderately security-sensitive. + It talks to untrusted clients on the network. The process + can be run chrooted at fixed low privilege. + +STANDARDS + RFC 5321 (SMTP, including multi-line 220 greetings) + RFC 2920 (SMTP Pipelining) + +DIAGNOSTICS + Problems and transactions are logged to syslogd(8). + +CONFIGURATION PARAMETERS + Changes to main.cf are not picked up automatically, as + postscreen(8) processes may run for several hours. Use + the command "postfix reload" after a configuration change. + + The text below provides only a parameter summary. See + postconf(5) for more details including examples. + +TRIAGE PARAMETERS + postscreen_blacklist_action (continue) + The action that postscreen(8) takes when an SMTP + client is permanently blacklisted with the + postscreen_blacklist_networks parameter. + + postscreen_blacklist_networks (empty) + Network addresses that are permanently blacklisted; + see the postscreen_blacklist_action parameter for + possible actions. + + postscreen_cache_map (btree:$data_directory/ps_whitelist) + Persistent storage for the postscreen(8) server + decisions. + + postscreen_cache_ttl (1d) + The amount of time that postscreen(8) will cache a + decision for a specific SMTP client IP address. + + postscreen_dnsbl_action (continue) + The action that postscreen(8) takes when an SMTP + client is listed at the DNS blocklist domains spec- + ified with the postscreen_dnsbl_sites parameter. + + postscreen_dnsbl_sites (empty) + Optional list of DNS blocklist domains. + + postscreen_greet_action (continue) + The action that postscreen(8) takes when an SMTP + client speaks before its turn within the time spec- + ified with the postscreen_greet_wait parameter. + + postscreen_greet_banner ($smtpd_banner) + The text in the optional "220-text..." server + response that postscreen(8) sends ahead of the real + Postfix SMTP server's "220 text..." response, in an + attempt to confuse bad SMTP clients so that they + speak before their turn (pre-greet). + + postscreen_greet_wait (4s) + The amount of time that postscreen(8) will wait for + an SMTP client to send a command before its turn, + and for DNS blocklist lookup results to arrive. + + postscreen_hangup_action (continue) + The action that postscreen(8) takes when an SMTP + client disconnects without sending data, within the + time specified with the postscreen_greet_wait + parameter. + + postscreen_post_queue_limit ($default_process_limit) + The number of clients that can be waiting for ser- + vice from a real SMTP server process. + + postscreen_pre_queue_limit ($default_process_limit) + The number of non-whitelisted clients that can be + waiting for a decision whether they will receive + service from a real SMTP server process. + + postscreen_whitelist_networks ($mynetworks) + Network addresses that are permanently whitelisted, + and that will not be subjected to postscreen(8) + checks. + + smtpd_service (smtpd) + The internal service that postscreen(8) forwards + allowed connections to. + +MISCELLANEOUS CONTROLS + config_directory (see 'postconf -d' output) + The default location of the Postfix main.cf and + master.cf configuration files. + + daemon_timeout (18000s) + How much time a Postfix daemon process may take to + handle a request before it is terminated by a + built-in watchdog timer. + + delay_logging_resolution_limit (2) + The maximal number of digits after the decimal + point when logging sub-second delay values. + + command_directory (see 'postconf -d' output) + The location of all postfix administrative com- + mands. + + ipc_timeout (3600s) + The time limit for sending or receiving information + over an internal communication channel. + + max_idle (100s) + The maximum amount of time that an idle Postfix + daemon process waits for an incoming connection + before terminating voluntarily. + + process_id (read-only) + The process ID of a Postfix command or daemon + process. + + process_name (read-only) + The process name of a Postfix command or daemon + process. + + syslog_facility (mail) + The syslog facility of Postfix logging. + + syslog_name (see 'postconf -d' output) + The mail system name that is prepended to the + process name in syslog records, so that "smtpd" + becomes, for example, "postfix/smtpd". + +SEE ALSO + smtpd(8), Postfix SMTP server + dnsblog(8), temporary DNS helper + syslogd(8), system logging + +LICENSE + The Secure Mailer license must be distributed with this + software. + +AUTHOR(S) + Wietse Venema + IBM T.J. Watson Research + P.O. Box 704 + Yorktown Heights, NY 10598, USA + + POSTSCREEN(8) +diff --git a/postfix/man/Makefile.in b/postfix/man/Makefile.in index c9753a286..1e359ea51 100644 --- a/postfix/man/Makefile.in +++ b/postfix/man/Makefile.in @@ -7,7 +7,8 @@ DAEMONS = man8/bounce.8 man8/defer.8 man8/cleanup.8 man8/error.8 man8/local.8 \ man8/showq.8 man8/smtp.8 man8/smtpd.8 man8/trivial-rewrite.8 \ man8/oqmgr.8 man8/spawn.8 man8/flush.8 man8/virtual.8 man8/qmqpd.8 \ man8/verify.8 man8/trace.8 man8/proxymap.8 man8/anvil.8 \ - man8/scache.8 man8/discard.8 man8/tlsmgr.8 + man8/scache.8 man8/discard.8 man8/tlsmgr.8 man8/postscreen.8 \ + man8/dnsblog.8 COMMANDS= man1/postalias.1 man1/postcat.1 man1/postconf.1 man1/postfix.1 \ man1/postkick.1 man1/postlock.1 man1/postlog.1 man1/postdrop.1 \ man1/postmap.1 man1/postmulti.1 man1/postqueue.1 man1/postsuper.1 \ @@ -59,6 +60,11 @@ man8/discard.8: ../src/discard/discard.c (cmp -s junk $? || mv junk $?) && rm -f junk ../mantools/srctoman $? >$@ +man8/dnsblog.8: ../src/dnsblog/dnsblog.c + ../mantools/fixman ../proto/postconf.proto $? >junk && \ + (cmp -s junk $? || mv junk $?) && rm -f junk + ../mantools/srctoman $? >$@ + man8/error.8: ../src/error/error.c ../mantools/fixman ../proto/postconf.proto $? >junk && \ (cmp -s junk $? || mv junk $?) && rm -f junk @@ -100,6 +106,11 @@ man8/pipe.8: ../src/pipe/pipe.c (cmp -s junk $? || mv junk $?) && rm -f junk ../mantools/srctoman $? >$@ +man8/postscreen.8: ../src/postscreen/postscreen.c + ../mantools/fixman ../proto/postconf.proto $? >junk && \ + (cmp -s junk $? || mv junk $?) && rm -f junk + ../mantools/srctoman $? >$@ + man8/proxymap.8: ../src/proxymap/proxymap.c ../mantools/fixman ../proto/postconf.proto $? >junk && \ (cmp -s junk $? || mv junk $?) && rm -f junk diff --git a/postfix/man/man1/postfix.1 b/postfix/man/man1/postfix.1 index f1d59b8c7..c8d601941 100644 --- a/postfix/man/man1/postfix.1 +++ b/postfix/man/man1/postfix.1 @@ -273,6 +273,7 @@ master(8), Postfix master daemon oqmgr(8), old Postfix queue manager pickup(8), Postfix local mail pickup pipe(8), deliver mail to non-Postfix command +postscreen(8), Postfix SMTP triage server proxymap(8), Postfix lookup table proxy server qmgr(8), Postfix queue manager qmqpd(8), Postfix QMQP server diff --git a/postfix/man/man5/postconf.5 b/postfix/man/man5/postconf.5 index e984d837b..2cf5b4959 100644 --- a/postfix/man/man5/postconf.5 +++ b/postfix/man/man5/postconf.5 @@ -3627,6 +3627,131 @@ as "stop" commands. For these commands, disabled instances are skipped, and enabled instances are processed in reverse order. .PP This feature is available in Postfix 2.6 and later. +.SH postscreen_blacklist_action (default: continue) +The action that \fBpostscreen\fR(8) takes when an SMTP client is +permanently blacklisted with the postscreen_blacklist_networks +parameter. Specify one of the following: +.IP "continue" +Continue waiting until the postscreen_greet_wait time has +elapsed, and report whether the client triggers a PREGREET or HANGUP +error, or whether the client is listed at the DNSBL sites specified +with the postscreen_dnsbl_sites parameter. Take the corresponding +action, or forward the connection to a real SMTP server process. +.IP "drop" +Drop the connection immediately with a 521 SMTP reply, without +reporting PREGREET, HANGUP or DNSBL results. +.PP +This feature is available in Postfix 2.7. +.SH postscreen_blacklist_networks (default: empty) +Network addresses that are permanently blacklisted; see the +postscreen_blacklist_action parameter for possible actions. This +parameter uses the same address syntax as the mynetworks parameter. +The blacklist has higher precedence than whitelists. This feature +never uses the remote SMTP client hostname. +.PP +This feature is available in Postfix 2.7. +.SH postscreen_cache_map (default: btree:$data_directory/ps_whitelist) +Persistent storage for the \fBpostscreen\fR(8) server decisions. +.PP +This feature is available in Postfix 2.7. +.SH postscreen_cache_ttl (default: 1d) +The amount of time that \fBpostscreen\fR(8) will cache a decision for +a specific SMTP client IP address. During this time, the client IP +address is excluded from tests. If possible, expired decisions are +renewed silently. Specify a non-zero time value (an integral value +plus an optional one-letter suffix that specifies the time unit). +.PP +Time units: s (seconds), m (minutes), h (hours), d (days), w +(weeks). +.PP +This feature is available in Postfix 2.7. +.SH postscreen_dnsbl_action (default: continue) +The action that \fBpostscreen\fR(8) takes when an SMTP client is listed +at the DNS blocklist domains specified with the postscreen_dnsbl_sites +parameter. Specify one of the following: +.IP "continue" +Forward the connection to a real SMTP server process. +.IP "drop" +Drop the connection with a 521 SMTP reply. +.PP +This feature is available in Postfix 2.7. +.SH postscreen_dnsbl_sites (default: empty) +Optional list of DNS blocklist domains. When the list is non-enpty, +the \fBdnsblog\fR(8) daemon will query these domains with the IP addresses +of non-whitelisted \fBpostscreen\fR(8) clients. Specify a list of domain +names, separated by comma or whitespace. +.SH postscreen_greet_action (default: continue) +The action that \fBpostscreen\fR(8) takes when an SMTP client speaks +before its turn within the time specified with the postscreen_greet_wait +parameter. Specify one of the following: +.IP "continue" +Continue waiting until the postscreen_greet_wait time has +elapsed. If the client is listed at the DNS blocklist domains +specified with the postscreen_dnsbl_sites parameter, execute the +action specified with the postscreen_dnsbl_action parameter, otherwise +forward the connection to a real SMTP server process. +.IP "drop" +Drop the connection immediately with a 521 SMTP reply, without +examining DNSBL lookup results. +.PP +In either case, \fBpostscreen\fR(8) will not whitelist the SMTP client +IP address. +.PP +This feature is available in Postfix 2.7. +.SH postscreen_greet_banner (default: $smtpd_banner) +The text in the optional "220-text..." server response that +\fBpostscreen\fR(8) sends ahead of the real Postfix SMTP server's "220 +text..." response, in an attempt to confuse bad SMTP clients so +that they speak before their turn (pre-greet). Specify an empty +value to disable this feature. +.PP +This feature is available in Postfix 2.7. +.SH postscreen_greet_wait (default: 4s) +The amount of time that \fBpostscreen\fR(8) will wait for an SMTP +client to send a command before its turn, and for DNS blocklist +lookup results to arrive. This is done only when the SMTP client +IP address is not permanently whitelisted, and when it has no cached +decision. Specify a non-zero time value (an integral value plus +an optional one-letter suffix that specifies the time unit). +.PP +Time units: s (seconds), m (minutes), h (hours), d (days), w +(weeks). +.PP +This feature is available in Postfix 2.7. +.SH postscreen_hangup_action (default: continue) +The action that \fBpostscreen\fR(8) takes when an SMTP client disconnects +without sending data, within the time specified with the +postscreen_greet_wait parameter. Specify one of the following: +.IP "continue" +Continue waiting until the postscreen_greet_wait time has +elapsed, and report whether the client is listed at the DNSBL sites +specified with the postscreen_dnsbl_sites parameter. Do not +forward the broken connection to a real SMTP server process. +.IP "drop" +Drop the connection immediately, without reporting DNSBL lookup +results. +.PP +This feature is available in Postfix 2.7. +.SH postscreen_post_queue_limit (default: $default_process_limit) +The number of clients that can be waiting for service from a +real SMTP server process. When this queue is full, all clients will +receive a 421 reponse. +.PP +This feature is available in Postfix 2.7. +.SH postscreen_pre_queue_limit (default: $default_process_limit) +The number of non-whitelisted clients that can be waiting for +a decision whether they will receive service from a real SMTP server +process. When this queue is full, all non-whitelisted clients will +receive a 421 reponse. +.PP +This feature is available in Postfix 2.7. +.SH postscreen_whitelist_networks (default: $mynetworks) +Network addresses that are permanently whitelisted, and that +will not be subjected to \fBpostscreen\fR(8) checks. This parameter uses +the same address syntax as the mynetworks parameter. This feature +never uses the remote SMTP client hostname. +.PP +This feature is available in Postfix 2.7. .SH prepend_delivered_header (default: command, file, forward) The message delivery contexts where the Postfix \fBlocal\fR(8) delivery agent prepends a Delivered-To: message header with the address @@ -4711,8 +4836,9 @@ and for receiving the initial server response. Time units: s (seconds), m (minutes), h (hours), d (days), w (weeks). The default time unit is s (seconds). .SH smtp_host_lookup (default: dns) -What mechanisms when the Postfix SMTP client uses to look up a host's IP -address. This parameter is ignored when DNS lookups are disabled. +What mechanisms the Postfix SMTP client uses to look up a host's IP +address. This parameter is ignored when DNS lookups are disabled +(see: disable_dns_lookups). .PP Specify one of the following: .IP "\fBdns\fR" @@ -6434,6 +6560,18 @@ Postfix version 2.5). This feature is available with Postfix version Search the specified access database for the client hostname, parent domains, client IP address, or networks obtained by stripping least significant octets. See the \fBaccess\fR(5) manual page for details. +.IP "\fBcheck_client_mx_access \fItype:table\fR\fR" +Search the specified \fBaccess\fR(5) database for the MX hosts 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 +in Postfix 2.7 and later. +.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 +available in Postfix 2.7 and later. .IP "\fBcheck_reverse_client_hostname_access \fItype:table\fR\fR" Search the specified access database for the unverified reverse client hostname, parent domains, client IP address, or networks @@ -6442,6 +6580,18 @@ 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 and later. +.IP "\fBcheck_reverse_client_hostname_mx_access \fItype:table\fR\fR" +Search the specified \fBaccess\fR(5) database for the MX hosts 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. +This feature is available in Postfix 2.7 and later. +.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. +This feature is available in Postfix 2.7 and later. .IP "\fBpermit_inet_interfaces\fR" Permit the request when the client IP address matches $inet_interfaces. @@ -7533,6 +7683,12 @@ smtpd_sender_restrictions = reject_unknown_sender_domain, .fi .ad .ft R +.SH smtpd_service (default: smtpd) +The internal service that \fBpostscreen\fR(8) forwards allowed +connections to. In a future version there may be different +classes of SMTP service. +.PP +This feature is available in Postfix 2.7. .SH smtpd_soft_error_limit (default: 10) The number of errors a remote SMTP client is allowed to make without delivering mail before the Postfix SMTP server slows down all its diff --git a/postfix/man/man8/dnsblog.8 b/postfix/man/man8/dnsblog.8 new file mode 100644 index 000000000..f18b81c3b --- /dev/null +++ b/postfix/man/man8/dnsblog.8 @@ -0,0 +1,89 @@ +.TH DNSBLOG 8 +.ad +.fi +.SH NAME +dnsblog +\- +Postfix DNS blocklist logger +.SH "SYNOPSIS" +.na +.nf +\fBdnsblog\fR [generic Postfix daemon options] +.SH DESCRIPTION +.ad +.fi +The \fBdnsblog\fR(8) server implements an ad-hoc DNS blocklist +lookup service that will eventually be replaced by an UDP +client that is built directly into the \fBpostscreen\fR(8) +server. + +With each connection, the \fBdnsblog\fR(8) server receives +a DNS blocklist domain name and an IP address. If the address +is listed under the DNS blocklist, the \fBdnsblog\fR(8) +server logs the match and replies with the query arguments +plus a non-zero status. Otherwise it replies with the query +arguments plus a zero status. Finally, The \fBdnsblog\fR(8) +server closes the connection. +.SH DIAGNOSTICS +.ad +.fi +Problems and transactions are logged to \fBsyslogd\fR(8). +.SH "CONFIGURATION PARAMETERS" +.na +.nf +.ad +.fi +Changes to \fBmain.cf\fR are picked up automatically, as +\fBdnsblog\fR(8) processes run for only a limited amount +of time. Use the command "\fBpostfix reload\fR" to speed +up a change. + +The text below provides only a parameter summary. See +\fBpostconf\fR(5) for more details including examples. +.IP "\fBconfig_directory (see 'postconf -d' output)\fR" +The default location of the Postfix main.cf and master.cf +configuration files. +.IP "\fBdaemon_timeout (18000s)\fR" +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 blocklist domains. +.IP "\fBipc_timeout (3600s)\fR" +The time limit for sending or receiving information over an internal +communication channel. +.IP "\fBprocess_id (read-only)\fR" +The process ID of a Postfix command or daemon process. +.IP "\fBprocess_name (read-only)\fR" +The process name of a Postfix command or daemon process. +.IP "\fBqueue_directory (see 'postconf -d' output)\fR" +The location of the Postfix top-level queue directory. +.IP "\fBsyslog_facility (mail)\fR" +The syslog facility of Postfix logging. +.IP "\fBsyslog_name (see 'postconf -d' output)\fR" +The mail system name that is prepended to the process name in syslog +records, so that "smtpd" becomes, for example, "postfix/smtpd". +.SH "SEE ALSO" +.na +.nf +smtpd(8), Postfix SMTP server +postconf(5), configuration parameters +syslogd(5), system logging +.SH "LICENSE" +.na +.nf +.ad +.fi +The Secure Mailer license must be distributed with this software. +.SH "HISTORY" +.na +.nf +.ad +.fi +This service is temporary with Postfix version 2.7. +.SH "AUTHOR(S)" +.na +.nf +Wietse Venema +IBM T.J. Watson Research +P.O. Box 704 +Yorktown Heights, NY 10598, USA diff --git a/postfix/man/man8/pipe.8 b/postfix/man/man8/pipe.8 index 474899745..ec088ac6b 100644 --- a/postfix/man/man8/pipe.8 +++ b/postfix/man/man8/pipe.8 @@ -187,7 +187,7 @@ Don't deliver messages that exceed this size limit (in bytes); return them to the sender instead. .IP "\fBuser\fR=\fIusername\fR (required)" .IP "\fBuser\fR=\fIusername\fR:\fIgroupname\fR" -Execute the external command with the rights of the +Execute the external command with the user ID and group ID of the specified \fIusername\fR. The software refuses to execute commands with root privileges, or with the privileges of the mail system owner. If \fIgroupname\fR is specified, the @@ -325,11 +325,11 @@ Command exit status codes are expected to follow the conventions defined in <\fBsysexits.h\fR>. Exit status 0 means normal successful completion. -Postfix version 2.3 and later support RFC 3463-style enhanced -status codes. If a command terminates with a non-zero exit -status, and the command output begins with an enhanced -status code, this status code takes precedence over the -non-zero exit status. +In the case of a non-zero exit status, a limited amount of +command output is reported in an delivery status notification. +When the output begins with a 4.X.X or 5.X.X enhanced status +code, the status code takes precedence over the non-zero +exit status (Postfix version 2.3 and later). Problems and transactions are logged to \fBsyslogd\fR(8). Corrupted message files are marked so that the queue manager diff --git a/postfix/man/man8/postscreen.8 b/postfix/man/man8/postscreen.8 new file mode 100644 index 000000000..550f3252c --- /dev/null +++ b/postfix/man/man8/postscreen.8 @@ -0,0 +1,358 @@ +.TH POSTSCREEN 8 +.ad +.fi +.SH NAME +postscreen +\- +Postfix SMTP triage server +.SH "SYNOPSIS" +.na +.nf +\fBpostscreen\fR [generic Postfix daemon options] +.SH DESCRIPTION +.ad +.fi +The Postfix \fBpostscreen\fR(8) server performs triage on +multiple inbound SMTP connections in parallel. The program +can run in two basic modes. + +In \fBobservation mode\fR the purpose is to collect statistics +without actually blocking mail. \fBpostscreen\fR(8) runs a +number of tests before it forwards a connection to a real +SMTP server process. These tests introduce a delay of a +few seconds; once a client passes the tests as "clean", its +IP address is whitelisted and subsequent connections incur +no delays until the whitelist entry expires. + +In \fBenforcement mode\fR the purpose is to block mail +without using up one Postfix SMTP server process for every +connection. Here, \fBpostscreen\fR(8) terminates connections +from SMTP clients that fail the above tests, and forwards +only the remaining connections to a real SMTP server process. +By running time-consuming spam tests in parallel in +\fBpostscreen\fR(8), more Postfix SMTP server processes +remain available for legitimate clients. +.PP +Note: \fBpostscreen\fR(8) is not an SMTP proxy; this is +intentional. The purpose is to prioritize legitimate clients +with as little overhead as possible. + +\fBpostscreen\fR(8) logs its observations and takes actions +as described in the sections that follow. +.SH "PERMANENT BLACKLIST TEST" +.na +.nf +.ad +.fi +The postscreen_blacklist_networks parameter (default: empty) +specifies a permanent blacklist for SMTP client IP addresses. +The address syntax is as with mynetworks. When the SMTP +client address matches the permanent blacklist, this is +logged as: +.sp +.nf +\fBBLACKLISTED \fIaddress\fR +.fi +.sp +The postscreen_blacklist_action parameter specifies the +action that is taken next: +.IP "\fBcontinue\fR (default, observation mode)" +Continue with the SMTP GREETING PHASE TESTS below. +.IP "\fBdrop\fR (enforcement mode)" +Drop the connection immediately with a 521 SMTP reply. In +a future implementation, the connection may instead be +passed to a dummy SMTP protocol engine that logs sender and +recipient information. +.SH "PERMANENT WHITELIST TEST" +.na +.nf +.ad +.fi +The postscreen_whitelist_networks parameter (default: +$mynetworks) specifies a permanent whitelist for SMTP client +IP addresses. This feature is not used for addresses that +appear on the permanent blacklist. When the SMTP client +address matches the permanent whitelist, this is logged as: +.sp +.nf +\fBWHITELISTED \fIaddress\fR +.fi +.sp +The action is not configurable: immediately forward the +connection to a real SMTP server process. +.SH "TEMPORARY WHITELIST TEST" +.na +.nf +.ad +.fi +The \fBpostscreen\fR(8) daemon maintains a \fItemporary\fR +whitelist 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 appear on the \fIpermanent\fR blacklist or whitelist. + +When the SMTP client address appears on the temporary +whitelist, this is logged as: +.sp +.nf +\fBPASS OLD \fIaddress\fR +.fi +.sp +The action is not configurable: immediately forward the +connection to a real SMTP server process. The client is +excluded from further tests until its temporary whitelist +entry expires, as controlled with the postscreen_cache_ttl +parameter. Expired entries are silently renewed if possible. +.SH "SMTP GREETING PHASE TESTS" +.na +.nf +.ad +.fi +The postscreen_greet_wait parameter specifies a time interval +during which \fBpostscreen\fR(8) runs a number of tests as +described below. These tests run before the client may +see the real SMTP server's "220 text..." server greeting. +When the SMTP client passes all the tests, this is logged +as: +.sp +.nf +\fBPASS NEW \fIaddress\fR +.fi +.sp +The action is to forward the connection to a real SMTP +server process and to create a temporary whitelist entry +that excludes the client IP address from further tests until +the temporary whitelist entry expires, as controlled with +the postscreen_cache_ttl parameter. + +In a future implementation, the connection may first be passed to +a dummy SMTP protocol engine that implements more protocol +tests including greylisting, before the client is allowed +to talk to a real SMTP server process. +.SH "PREGREET TEST" +.na +.nf +.ad +.fi +The postscreen_greet_banner parameter specifies the text +for a "220-text..." teaser banner (default: $smtpd_banner). +The \fBpostscreen\fR(8) daemon sends this before the +postscreen_greet_wait timer is started. The purpose of the +teaser banner is to confuse SPAM clients so that they speak +before their turn. It has no effect on SMTP clients that +correctly implement the protocol. + +To avoid problems with broken SMTP engines in network +appliances, either exclude them from all tests with the +postscreen_whitelist_networks feature or else specify an +empty postscreen_greet_banner value to disable the "220-text..." +teaser banner. + +When an SMTP client speaks before the postscreen_greet_wait +time has elapsed, this is logged as: +.sp +.nf +\fBPREGREET \fIcount \fBafter \fItime \fBfrom \fIaddress text...\fR +.fi +.sp +Translation: the client at \fIaddress\fR sent \fIcount\fR +bytes before its turn to speak, and this happened \fItime\fR +seconds after the test started. The \fItext\fR is what the +client sent (truncated at 100 bytes, and with non-printable +characters replaced with "?"). + +The postscreen_greet_action parameter specifies the action +that is taken next: +.IP "\fBcontinue\fR (default, observation mode)" +Wait until the postscreen_greet_wait time has elapsed, then +report DNSBL lookup results if applicable. Either perform +DNSBL-related actions or forward the connection to a real +SMTP server process. +.IP "\fBdrop\fR (enforcement mode)" +Drop the connection immediately with a 521 SMTP reply. +In a future implementation, the connection may instead be passed +to a dummy SMTP protocol engine that logs sender and recipient +information. +.SH "HANGUP TEST" +.na +.nf +.ad +.fi +When the SMTP client hangs up without sending any data +before the postscreen_greet_wait time has elapsed, this is +logged as: +.sp +.nf +\fBHANGUP after \fItime \fBfrom \fIaddress\fR +.fi +.sp +The postscreen_hangup_action specifies the action +that is taken next: +.IP "\fBcontinue\fR (default, observation mode)" +Wait until the postscreen_greet_wait time has elapsed, then +report DNSBL lookup results if applicable. Do not forward +the broken connection to a real SMTP server process. +.IP "\fBdrop\fR (enforcement mode)" +Drop the connection immediately. +.SH "DNS BLOCKLIST TEST" +.na +.nf +.ad +.fi +The postscreen_dnsbl_sites parameter (default: empty) +specifies a list of DNS blocklist servers. When the +postscreen_greet_wait time has elapsed, and the SMTP client +address is reported by at least one of these blocklists, +this is logged as: +.sp +.nf +\fBDNSBL rank \fIcount \fBfor \fIaddress\fR +.fi +.sp +Translation: the client at \fIaddress\fR is listed with +\fIcount\fR DNSBL servers. The \fIcount\fR does not +depend on the number of DNS records that an individual DNSBL +server returns. + +The postscreen_dnsbl_action parameter specifies the action +that is taken next: +.IP "\fBcontinue\fR (default, observation mode)" +Forward the connection to a real SMTP server process. +.IP "\fBdrop\fR (enforcement mode)" +Drop the connection immediately with a 521 SMTP reply. +In a future implementation, the connection may instead be passed +to a dummy SMTP protocol engine that logs sender and recipient +information. +.SH "SECURITY" +.na +.nf +.ad +.fi +The \fBpostscreen\fR(8) server is moderately security-sensitive. +It talks to untrusted clients on the network. The process +can be run chrooted at fixed low privilege. +.SH "STANDARDS" +.na +.nf +RFC 5321 (SMTP, including multi-line 220 greetings) +RFC 2920 (SMTP Pipelining) +.SH DIAGNOSTICS +.ad +.fi +Problems and transactions are logged to \fBsyslogd\fR(8). +.SH "CONFIGURATION PARAMETERS" +.na +.nf +.ad +.fi +Changes to main.cf are not picked up automatically, as +\fBpostscreen\fR(8) processes may run for several hours. +Use the command "postfix reload" after a configuration +change. + +The text below provides only a parameter summary. See +\fBpostconf\fR(5) for more details including examples. +.SH "TRIAGE PARAMETERS" +.na +.nf +.ad +.fi +.IP "\fBpostscreen_blacklist_action (continue)\fR" +The action that \fBpostscreen\fR(8) takes when an SMTP client is +permanently blacklisted with the postscreen_blacklist_networks +parameter. +.IP "\fBpostscreen_blacklist_networks (empty)\fR" +Network addresses that are permanently blacklisted; see the +postscreen_blacklist_action parameter for possible actions. +.IP "\fBpostscreen_cache_map (btree:$data_directory/ps_whitelist)\fR" +Persistent storage for the \fBpostscreen\fR(8) server decisions. +.IP "\fBpostscreen_cache_ttl (1d)\fR" +The amount of time that \fBpostscreen\fR(8) will cache a decision for +a specific SMTP client IP address. +.IP "\fBpostscreen_dnsbl_action (continue)\fR" +The action that \fBpostscreen\fR(8) takes when an SMTP client is listed +at the DNS blocklist domains specified with the postscreen_dnsbl_sites +parameter. +.IP "\fBpostscreen_dnsbl_sites (empty)\fR" +Optional list of DNS blocklist domains. +.IP "\fBpostscreen_greet_action (continue)\fR" +The action that \fBpostscreen\fR(8) takes when an SMTP client speaks +before its turn within the time specified with the postscreen_greet_wait +parameter. +.IP "\fBpostscreen_greet_banner ($smtpd_banner)\fR" +The text in the optional "220-text..." server response that +\fBpostscreen\fR(8) sends ahead of the real Postfix SMTP server's "220 +text..." response, in an attempt to confuse bad SMTP clients so +that they speak before their turn (pre-greet). +.IP "\fBpostscreen_greet_wait (4s)\fR" +The amount of time that \fBpostscreen\fR(8) will wait for an SMTP +client to send a command before its turn, and for DNS blocklist +lookup results to arrive. +.IP "\fBpostscreen_hangup_action (continue)\fR" +The action that \fBpostscreen\fR(8) takes when an SMTP client disconnects +without sending data, within the time specified with the +postscreen_greet_wait parameter. +.IP "\fBpostscreen_post_queue_limit ($default_process_limit)\fR" +The number of clients that can be waiting for service from a +real SMTP server process. +.IP "\fBpostscreen_pre_queue_limit ($default_process_limit)\fR" +The number of non-whitelisted clients that can be waiting for +a decision whether they will receive service from a real SMTP server +process. +.IP "\fBpostscreen_whitelist_networks ($mynetworks)\fR" +Network addresses that are permanently whitelisted, and that +will not be subjected to \fBpostscreen\fR(8) checks. +.IP "\fBsmtpd_service (smtpd)\fR" +The internal service that \fBpostscreen\fR(8) forwards allowed +connections to. +.SH "MISCELLANEOUS CONTROLS" +.na +.nf +.ad +.fi +.IP "\fBconfig_directory (see 'postconf -d' output)\fR" +The default location of the Postfix main.cf and master.cf +configuration files. +.IP "\fBdaemon_timeout (18000s)\fR" +How much time a Postfix daemon process may take to handle a +request before it is terminated by a built-in watchdog timer. +.IP "\fBdelay_logging_resolution_limit (2)\fR" +The maximal number of digits after the decimal point when logging +sub-second delay values. +.IP "\fBcommand_directory (see 'postconf -d' output)\fR" +The location of all postfix administrative commands. +.IP "\fBipc_timeout (3600s)\fR" +The time limit for sending or receiving information over an internal +communication channel. +.IP "\fBmax_idle (100s)\fR" +The maximum amount of time that an idle Postfix daemon process waits +for an incoming connection before terminating voluntarily. +.IP "\fBprocess_id (read-only)\fR" +The process ID of a Postfix command or daemon process. +.IP "\fBprocess_name (read-only)\fR" +The process name of a Postfix command or daemon process. +.IP "\fBsyslog_facility (mail)\fR" +The syslog facility of Postfix logging. +.IP "\fBsyslog_name (see 'postconf -d' output)\fR" +The mail system name that is prepended to the process name in syslog +records, so that "smtpd" becomes, for example, "postfix/smtpd". +.SH "SEE ALSO" +.na +.nf +smtpd(8), Postfix SMTP server +dnsblog(8), temporary DNS helper +syslogd(8), system logging +.SH "LICENSE" +.na +.nf +.ad +.fi +The Secure Mailer license must be distributed with this software. +.SH "AUTHOR(S)" +.na +.nf +Wietse Venema +IBM T.J. Watson Research +P.O. Box 704 +Yorktown Heights, NY 10598, USA diff --git a/postfix/mantools/postlink b/postfix/mantools/postlink index 31fa892cb..4e0a3d69f 100755 --- a/postfix/mantools/postlink +++ b/postfix/mantools/postlink @@ -475,7 +475,7 @@ while (<>) { s;\bsmtpd_autho[-]*\n*[
-What mechanisms when the Postfix SMTP client uses to look up a host's IP -address. This parameter is ignored when DNS lookups are disabled. +What mechanisms the Postfix SMTP client uses to look up a host's IP +address. This parameter is ignored when DNS lookups are disabled +(see: disable_dns_lookups).
@@ -4759,6 +4760,22 @@ Postfix version 2.5). This feature is available with Postfix version parent domains, client IP address, or networks obtained by stripping least significant octets. See the access(5) manual page for details. +
This feature is available in Postfix 2.7, and as an optional patch for Postfix 2.6.
+ +%PARAM postscreen_cache_map btree:$data_directory/ps_whitelist + +Persistent storage for the postscreen(8) server decisions.
+ +This feature is available in Postfix 2.7.
+ +%PARAM smtpd_service smtpd + +The internal service that postscreen(8) forwards allowed +connections to. In a future version there may be different +classes of SMTP service.
+ +This feature is available in Postfix 2.7.
+ +%PARAM postscreen_post_queue_limit $default_process_limit + +The number of clients that can be waiting for service from a +real SMTP server process. When this queue is full, all clients will +receive a 421 reponse.
+ +This feature is available in Postfix 2.7.
+ +%PARAM postscreen_pre_queue_limit $default_process_limit + +The number of non-whitelisted clients that can be waiting for +a decision whether they will receive service from a real SMTP server +process. When this queue is full, all non-whitelisted clients will +receive a 421 reponse.
+ +This feature is available in Postfix 2.7.
+ +%PARAM postscreen_cache_ttl 1d + +The amount of time that postscreen(8) will cache a decision for +a specific SMTP client IP address. During this time, the client IP +address is excluded from tests. If possible, expired decisions are +renewed silently. Specify a non-zero time value (an integral value +plus an optional one-letter suffix that specifies the time unit). +
+ +Time units: s (seconds), m (minutes), h (hours), d (days), w +(weeks).
+ +This feature is available in Postfix 2.7.
+ +%PARAM postscreen_greet_wait 4s + +The amount of time that postscreen(8) will wait for an SMTP +client to send a command before its turn, and for DNS blocklist +lookup results to arrive. This is done only when the SMTP client +IP address is not permanently whitelisted, and when it has no cached +decision. Specify a non-zero time value (an integral value plus +an optional one-letter suffix that specifies the time unit).
+ +Time units: s (seconds), m (minutes), h (hours), d (days), w +(weeks).
+ +This feature is available in Postfix 2.7.
+ +%PARAM postscreen_dnsbl_sites + +Optional list of DNS blocklist domains. When the list is non-enpty, +the dnsblog(8) daemon will query these domains with the IP addresses +of non-whitelisted postscreen(8) clients. Specify a list of domain +names, separated by comma or whitespace.
+ +%PARAM postscreen_dnsbl_action continue + +The action that postscreen(8) takes when an SMTP client is listed +at the DNS blocklist domains specified with the postscreen_dnsbl_sites +parameter. Specify one of the following:
+ +This feature is available in Postfix 2.7.
+ +%PARAM postscreen_greet_action continue + +The action that postscreen(8) takes when an SMTP client speaks +before its turn within the time specified with the postscreen_greet_wait +parameter. Specify one of the following:
+ +In either case, postscreen(8) will not whitelist the SMTP client +IP address.
+ +This feature is available in Postfix 2.7.
+ +%PARAM postscreen_hangup_action continue + +The action that postscreen(8) takes when an SMTP client disconnects +without sending data, within the time specified with the +postscreen_greet_wait parameter. Specify one of the following: +
+ +This feature is available in Postfix 2.7.
+ +%PARAM postscreen_whitelist_networks $mynetworks + +Network addresses that are permanently whitelisted, and that +will not be subjected to postscreen(8) checks. This parameter uses +the same address syntax as the mynetworks parameter. This feature +never uses the remote SMTP client hostname.
+ +This feature is available in Postfix 2.7.
+ +%PARAM postscreen_blacklist_networks + +Network addresses that are permanently blacklisted; see the +postscreen_blacklist_action parameter for possible actions. This +parameter uses the same address syntax as the mynetworks parameter. +The blacklist has higher precedence than whitelists. This feature +never uses the remote SMTP client hostname.
+ +This feature is available in Postfix 2.7.
+ +%PARAM postscreen_greet_banner $smtpd_banner + +The text in the optional "220-text..." server response that +postscreen(8) sends ahead of the real Postfix SMTP server's "220 +text..." response, in an attempt to confuse bad SMTP clients so +that they speak before their turn (pre-greet). Specify an empty +value to disable this feature.
+ +This feature is available in Postfix 2.7.
+ +%PARAM postscreen_blacklist_action continue + +The action that postscreen(8) takes when an SMTP client is +permanently blacklisted with the postscreen_blacklist_networks +parameter. Specify one of the following:
+ +This feature is available in Postfix 2.7.
+ +