Import Postfix 2.10.2. Major changes since version 2.9.* are:
- Separation of relay policy (with smtpd_relay_restrictions) from spam policy (with smtpd_{client, helo, sender, recipient}_restrictions), which makes accidental open relay configuration less likely. The default is backwards compatible. - HAproxy load-balancer support for postscreen(8) and smtpd(8). The nginx proxy was already supported by Postfix 2.9 smtpd(8), using XCLIENT commands. - Support for the TLSv1 and TLSv2 protocols, as well as support to turn them off if needed for inter-operability. - Laptop-friendly configuration. By default, Postfix now uses UNIX-domain sockets instead of FIFOs, and thus avoids MTIME file system updates on an idle mail system. - Revised postconf(1) command. The "-x" option expands $name in a parameter value (both main.cf and master.cf); the "-o name=value" option overrides a main.cf parameter setting; and postconf(1) now warns about a $name that has no name=value setting. - Sendmail-style "socketmap" lookup tables.
This commit is contained in:
parent
f72123316b
commit
e6ca80d439
|
@ -17203,6 +17203,7 @@ Apologies for any names omitted.
|
|||
smtp/smtp_params.c, smtp/smtp_proto.c, smtpd/smtpd.c,
|
||||
tls/tls.h, tls/tls_client.c, tls/tls_misc.c, tls/tls_server.c,
|
||||
tlsmgr/tlsmgr.c, tlsproxy/tlsproxy.c.
|
||||
|
||||
20111203
|
||||
|
||||
Cleanup: time-dependent sender addresses of address
|
||||
|
@ -17603,10 +17604,10 @@ Apologies for any names omitted.
|
|||
20120130
|
||||
|
||||
Bugfix (introduced: Postfix 2.3): the trace service did not
|
||||
distinguish between notifications for a non-bounce or a
|
||||
bounce message. This code pre-dates DSN support and should
|
||||
have been updated when it was re-purposed to handle DSN
|
||||
SUCCESS notifications. Problem reported by Sabahattin
|
||||
distinguish between DSN SUCCESS notifications for a non-bounce
|
||||
or a bounce message. This code pre-dates DSN support and
|
||||
should have been updated when it was re-purposed to handle
|
||||
DSN SUCCESS notifications. Problem reported by Sabahattin
|
||||
Gucukoglu. File: bounce/bounce_trace_service.c.
|
||||
|
||||
20120202
|
||||
|
@ -17619,9 +17620,9 @@ Apologies for any names omitted.
|
|||
|
||||
20120214
|
||||
|
||||
Bugfix (introduced: Postfix 2.4): extraneous null assignment
|
||||
caused core dump when postlog emitted the "usage" message.
|
||||
Reported by Kant (fnord.hammer). File: postlog/postlog.c.
|
||||
Bugfix (introduced: Postfix 2.4): extraneous null assignment
|
||||
caused core dump when postlog emitted the "usage" message.
|
||||
Reported by Kant (fnord.hammer). File: postlog/postlog.c.
|
||||
|
||||
20120217
|
||||
|
||||
|
@ -17630,12 +17631,100 @@ Apologies for any names omitted.
|
|||
call was moved closer to the command processor loop. Fix
|
||||
by Bartek Szady. File: smtpd/smtpd.c.
|
||||
|
||||
20120220
|
||||
|
||||
Cleanup: documentation of how to use only system-supplied
|
||||
certificates with *CAfile and *CApath. File: proto/postconf.proto.
|
||||
|
||||
Cleanup: documentation of smtp_sasl_mechanism_filter. File:
|
||||
proto/postconf.proto.
|
||||
|
||||
20120222
|
||||
|
||||
Cleanup: when multiple DNSBLs block an SMTP client, the
|
||||
postscreen "reject" message now gives credit to the DNSBL
|
||||
with the largest weight, instead of the DNSBL that replies
|
||||
first. File: postscreen/postscreeb_dnsbl.c.
|
||||
|
||||
Cleanup: memcache_table(5) manpage. File proto/memcache_table.
|
||||
|
||||
20120225
|
||||
|
||||
Cleanup: eliminated the build-time Perl dependency. File:
|
||||
bounce/annotate.sh.
|
||||
|
||||
Cleanup: when -DNO_DB support was added, the makedefs script
|
||||
was not updated to skip the Linux Berkeley DB tests.
|
||||
|
||||
FreeBSD9 is now a supported platform. Files: makedefs,
|
||||
util/sys_defs.h.
|
||||
|
||||
20120226
|
||||
|
||||
Cleanup: documentation in postfix-install.
|
||||
|
||||
20120229
|
||||
|
||||
Feature: smtpd_log_access_permit_actions to enable logging
|
||||
of specific permit-like actions in Postfix SMTP server
|
||||
access lists. Files: mantools/postlink, proto/postconf.proto,
|
||||
global/mail_params.h, smtpd/smtpd.c, smtpd/smtpd_check.c.
|
||||
|
||||
20120306
|
||||
|
||||
To improve the interaction with start-up scripts, "postfix
|
||||
start" now waits for master daemon process initialization
|
||||
to complete, and returns a non-zero exit status if daemon
|
||||
initialization failed or if it did not complete in a
|
||||
reasonable amount of time. This involves a new "-w" master
|
||||
option. Files: conf/postfix-script, master/master.c,
|
||||
master/master.h. master/master_monitor.c.
|
||||
|
||||
20120307
|
||||
|
||||
postconf -X option to exclude parameters from main.cf
|
||||
(require two-finger action, because this is irreversible).
|
||||
Files: postconf/postconf.[hc], postconf/postconf_edit.c.
|
||||
|
||||
20120317
|
||||
|
||||
Feature: Sendmail-style socketmap. Files: util/dict_sockmap.[hc],
|
||||
util/netstring.[hc], proto/DATABASE_README.html,
|
||||
postconf/postconf.c.
|
||||
|
||||
20120330
|
||||
|
||||
Workaround: specify "\c" at the start of an smtp_reject_footer
|
||||
template to suppress the line break between the reply text
|
||||
and the footer text. Files: global/smtp_reply_footer.c,
|
||||
proto/postconf.proto.
|
||||
|
||||
20120401
|
||||
|
||||
Bugfix (introduced Postfix 2.6): irrelevant memory leak
|
||||
that was introduced with postconf -#. File:
|
||||
postconf/postconf_edit.c.
|
||||
|
||||
Bitrot: shut up useless warnings about Cyrus SASL call-back
|
||||
function pointer type mis-matches. Files: xsasl/xsasl_cyrus.h,
|
||||
xsasl/xsasl_cyrus_server.c, xsasl/xsasl_client.c.
|
||||
|
||||
20120404
|
||||
|
||||
Cleanup: added smtpd_sender_login_maps to the default
|
||||
proxy_read_maps value. Files: global/mail_params.h,
|
||||
proxymap/proxymap.c.
|
||||
|
||||
Cleanup: weed out stale TODO's from the WISHLIST, and moved
|
||||
some CYA text from WISHLIST into the code. Files: WISHLIST,
|
||||
smtpd/smtpd_proxy.c.
|
||||
|
||||
20120407
|
||||
|
||||
Bugfix (introduced: 20120330): don't replace <reply-code>
|
||||
<space> by <reply-code> <hyphen> when a reply footer starts
|
||||
with \c and contains no \n. File: global/smtp_reply_footer.c.
|
||||
|
||||
20120422
|
||||
|
||||
Bit-rot: OpenSSL 1.0.1 introduces new protocols. Update the
|
||||
|
@ -17649,16 +17738,22 @@ Apologies for any names omitted.
|
|||
|
||||
Workaround: bugs in 10-year old gcc versions break compilation
|
||||
with #ifdef inside a macro invocation (NOT: definition).
|
||||
This synchronizes the Postfix 2.9 TLS implementation with
|
||||
Postfix 2.10 to simplify code maintenance. Files: tls/tls.h,
|
||||
tls/tls_client.c, tls/tls_server.c.
|
||||
Files: tls/tls.h, tls/tls_client.c, tls/tls_server.c.
|
||||
|
||||
20120426
|
||||
|
||||
Bugfix (introduced Postfix 2.9): the postconf command flagged
|
||||
parameters defined in master.cf as "unused" when they were
|
||||
used only in main.cf. Problem reported by Michael Tokarev.
|
||||
Files: postconf/postconf_user.c.
|
||||
Files: postconf/postconf_user.c, postconf/test4b.ref,
|
||||
postconf Makefile.in.
|
||||
|
||||
20120513
|
||||
|
||||
Cleanup: report both the first and last line number when a
|
||||
malformed main.cf entry spans multiple lines, instead of
|
||||
reporting the last line number only. File: util/dict.c,
|
||||
util/line_number.[hc].
|
||||
|
||||
20120516
|
||||
|
||||
|
@ -17678,6 +17773,10 @@ Apologies for any names omitted.
|
|||
without any Postfix performance impact. Problem reported
|
||||
by Sahil Tandon. File: dnsblog/dnsblog.c.
|
||||
|
||||
Logging: postscreen now logs a warning when a dnsblog(8)
|
||||
request takes longer than the hard-coded time limit of 10s.
|
||||
File: postscreen/postscreen_dnsbl.c.
|
||||
|
||||
20120517
|
||||
|
||||
Workaround: to avoid crashes when the OpenSSL library is
|
||||
|
@ -17702,11 +17801,88 @@ Apologies for any names omitted.
|
|||
and qmgr servers before closing the UNIX-domain request
|
||||
sockets. Files: postqueue/postqueue.c, postqueue/Makefile.in.
|
||||
|
||||
20120522
|
||||
|
||||
Robustness: set LC_ALL=C in post-install to avoid surprises
|
||||
when parsing output from Postfix or non-Postfix commands.
|
||||
File: postfix-install.
|
||||
|
||||
20120611
|
||||
|
||||
Bugfix (introduced: 20031216-21): with soft_bounce=yes, the
|
||||
SMTP client did not move on to the next MX host or fallback
|
||||
relay after a 5xx reply. File: smtp/smtp_trouble.c.
|
||||
|
||||
20120527-8
|
||||
|
||||
Infrastructure: limited support to shrink VSTREAM buffers.
|
||||
The change takes place when reading from (a stream for the
|
||||
first time | an empty buffer) or when writing to (a stream
|
||||
for the first time | a full buffer). TODO: the change should
|
||||
also happen after purging or flushing a buffer. File:
|
||||
util/vstream.c.
|
||||
|
||||
20120531-617
|
||||
|
||||
Feature: haproxy support in postscreen(8) and smtpd(8). To
|
||||
enable, specify "smtpd_upstream_proxy_protocol = haproxy"
|
||||
or "postscreen_upstream_proxy_protocol = haproxy". Files:
|
||||
mantools/postlink, proto/postconf.proto, global/Makefile.in,
|
||||
global/haproxy_srvr.c, global/haproxy_srvr.h, global/mail_params.h,
|
||||
global/mail_proto.h, master/single_server.c, master/multi_server.c,
|
||||
master/event_server.c, postscreen/Makefile.in,
|
||||
postscreen/postscreen.c, postscreen/postscreen.h,
|
||||
postscreen/postscreen_endpt.c, postscreen/postscreen_haproxy.c,
|
||||
postscreen/postscreen_haproxy.h, postscreen/postscreen_send.c,
|
||||
postscreen/postscreen_state.c, smtpd/Makefile.in, smtpd/smtpd.h,
|
||||
smtpd/smtpd_peer.c, smtpd/smtpd_sasl_glue.c, smtpd/smtpd_haproxy.c,
|
||||
util/Makefile.in, util/listen.h, util/recv_pass_attr.c,
|
||||
util/stream_listen.c, util/sys_defs.h, util/unix_pass_listen.c.
|
||||
|
||||
|
||||
20120618
|
||||
|
||||
Cleanup: made the postscreen-to-smtpd haproxy attribute
|
||||
transmission more robust for Solaris. Files: util/sys_defs.h,
|
||||
util/connect.h, util/steam_listen.c, postscreen/postscreen_send.c.
|
||||
|
||||
Cleanup: simplified the "stream used" workaround. Files:
|
||||
util/vstream.h, master/event_server.c, master/multi_server.c.
|
||||
|
||||
20120621
|
||||
|
||||
Bugfix (introduced: Postfix 2.8): the unused "pass" trigger
|
||||
client could close the wrong file descriptors. File:
|
||||
util/unix_pass_trigger.c.
|
||||
Cleanup: simplified workarounds for Solaris streams versus
|
||||
UNIX-domain sockets. Files: util/pass_accept.c (new),
|
||||
util/pass_trigger.c (new), util/stream_pass_connect.c
|
||||
(deleted), util/unix_pass_listen.c (deleted),
|
||||
util/unix_pass_trigger.c (deleted), updated header files,
|
||||
and replaced PASS_XXX macros by pass_xxx function calls.
|
||||
|
||||
Cleanup: don't clobber errno when logging a problem.
|
||||
File util/msg_output.c.
|
||||
|
||||
20120627
|
||||
|
||||
Bugfix (introduced: 20120531-617): in the postscreen module
|
||||
for HAproxy sypport, a VSTREAM buffer size request was not
|
||||
LP64-clean. File: postscreen/postscreen_haproxy.c.
|
||||
|
||||
Cleanup: avoid single-character reads in the postscreen
|
||||
HAproxy module. File: postscreen/postscreen_haproxy.c.
|
||||
|
||||
20120628
|
||||
|
||||
Workaround: heuristic to detect missing (ssize_t) type-cast
|
||||
in VSTREAM buffer size requests. File: util/vstream.c.
|
||||
|
||||
20120629
|
||||
|
||||
Workaround: "sendmail -bl" emulation. File: sendmail/sendmail.c.
|
||||
|
||||
20120630
|
||||
|
||||
Cleanup: sub-optimal hash performance on systems where the
|
||||
"char" type is signed. Files: util/htable.c, util/binhash.c.
|
||||
|
||||
20120702
|
||||
|
||||
|
@ -17714,10 +17890,123 @@ Apologies for any names omitted.
|
|||
unprivileged UDP socket. Fix by Jaroslav Skarvada. File:
|
||||
local/biff_notify.c.
|
||||
|
||||
20120713
|
||||
|
||||
Bugfix (introduced: 20120527-8): infrastructure to specify
|
||||
a smaller-than-default VSTREAM buffer, without the complex
|
||||
run-time checks. File: util/vstream.c, vstream_tweak.c.
|
||||
|
||||
20120714
|
||||
|
||||
Cleanup: semantics of requests to query or modify the VSTREAM
|
||||
buffer size that will be used with the next read(2) or
|
||||
write(2) operation. Files: util/vstream.c, util/vstream.h,
|
||||
util/vstream_tweak.c.
|
||||
|
||||
20120717
|
||||
|
||||
Documentation: update to RFC5321.
|
||||
|
||||
20120730
|
||||
|
||||
Bugfix (introduced: 20000314): AUTH is not allowed after
|
||||
MAIL. Timo Sirainen. File: smtpd/smtpd_sasl_proto.c.
|
||||
MAIL. Timo Sirainen. Files: smtpd/smtpd.c, smtpd/smtpd.h,
|
||||
smtpd/smtpd_sasl_proto.c.
|
||||
|
||||
20120801
|
||||
|
||||
Documentation: point of what virtual_xxx parameters are
|
||||
specific to the virtual(8) delivery agent, and will have
|
||||
no effect when mail is delivered with a different program.
|
||||
Files: proto/postconf.proto, proto/VIRTUAL_README.html.
|
||||
|
||||
20120824
|
||||
|
||||
Feature: support for "sendmail -R hdrs|full". Jan Kundrát.
|
||||
File: sendmail/sendmail.c.
|
||||
|
||||
20120902
|
||||
|
||||
Documentation: updated TUNING_README with new pointers to
|
||||
the STRESS_README and POSTSCREEN_README documents. Miscellaneous
|
||||
documentation clarifications based on postfix-users discussions.
|
||||
|
||||
20120903
|
||||
|
||||
Bugfix (introduced 20120317): the socketmap client should
|
||||
not share unrelated client endpoint handles. File:
|
||||
util/dict_sockmap.c.
|
||||
|
||||
20120907
|
||||
|
||||
Cleanup (for change 20120824): the DSN RET attribute should
|
||||
not be stored once per recipient. It is a message property
|
||||
just like DSN ENVID. File: sendmail/sendmail.c.
|
||||
|
||||
20120911
|
||||
|
||||
Documentation: more explicit enumeration of what happens
|
||||
when setting a per-destination recipient limit value to 1.
|
||||
File: proto/postconf.proto.
|
||||
|
||||
20120918
|
||||
|
||||
Documentation: clarified the bounce/queue_life-time parameter
|
||||
descriptions. File: proto/postconf.proto.
|
||||
|
||||
20120920
|
||||
|
||||
Documentation: the postscreen_whitelist_interfaces parameter
|
||||
syntax was defined only by example. File: proto/postconf.proto.
|
||||
|
||||
20120923
|
||||
|
||||
Infrastructure: cleaned up the support for database
|
||||
lock-on-open. This is needed for databases that are not
|
||||
multi-updater safe. Files: util/dict_alloc.c, util/dict.c,
|
||||
util/dict_open.c, util/dict.h. tls/tls_scache.c.
|
||||
|
||||
20120924
|
||||
|
||||
Documentation: some people are read-challenged distribute
|
||||
their own incorrect understanding of master.cf syntax.
|
||||
File: proto/master.
|
||||
|
||||
Cleanup: don't emulate UNIX-domain sockets over FIFOs on
|
||||
Solaris systems less than 10 years old. This allows us to
|
||||
globally s/fifo/unix/ in master.cf. Files: makedefs,
|
||||
util/sys_defs.h.
|
||||
|
||||
Laptop-friendliness: avoid disk spin-up on idle systems by
|
||||
s/fifo/unix/ in master.cf. Files: conf/master.cf.
|
||||
|
||||
20120928-30
|
||||
|
||||
Feature: smtpd_relay_restrictions, proposed long ago by
|
||||
Victor. The idea is to separate the mail relay policy from
|
||||
the spam blocking policy, so that a permissive spam blocking
|
||||
policy under smtpd_recipient_restrictions will no longer
|
||||
unexpectedly result in a permissive mail relay policy.
|
||||
|
||||
This involves a change in default settings. Similar to the
|
||||
way that local_recipient_maps was introduced, there is a
|
||||
safety net that prevents unexpected mail bounces when a
|
||||
site upgrades to Postfix 2.10 or later, and there is no
|
||||
change in documented smtpd_recipient_restrictions behavior.
|
||||
See the RELEASE_NOTES file for details. Files:
|
||||
global/mail_params.h, smtpd/smtpd.c, smtpd/smtpd_check.c,
|
||||
proto/postconf.proto, proto/SMTPD_ACCESS_README.html,
|
||||
mantools/postlink, conf/post-install, RELEASE_NOTES.
|
||||
|
||||
20120931-1001
|
||||
|
||||
Documentation: updated the remainder of the README files
|
||||
and manual pages that discuss smtpd_recipient_restrictions.
|
||||
|
||||
20121001
|
||||
|
||||
Cleanup: prepend 5.1.1 status code to "User unknown in
|
||||
virtual alias table". File: trivial-rewrite/resolve.c.
|
||||
|
||||
20121003
|
||||
|
||||
|
@ -17725,6 +18014,17 @@ Apologies for any names omitted.
|
|||
in the first character of permit, reject, etc. Reported by
|
||||
Francis Picabia. File: global/server_acl.c.
|
||||
|
||||
20121009
|
||||
|
||||
Documentation: interaction between delay_warning_time,
|
||||
notify_classes and delay_notice_recipient. File:
|
||||
proto/postconf.proto.
|
||||
|
||||
20101009
|
||||
|
||||
Human factors: log a warning that the postcat option -m
|
||||
without -h or -b has no effect. File: postcat/postcat.c.
|
||||
|
||||
20121010
|
||||
|
||||
Bugfix (introduced: Postfix 2.5): memory leak in program
|
||||
|
@ -17733,21 +18033,106 @@ Apologies for any names omitted.
|
|||
Bugfix (introduced: Postfix 2.3): memory leak in the unused
|
||||
oqmgr program. Reported by Coverity. File: oqmgr/qmgr_message.c.
|
||||
|
||||
20121011
|
||||
|
||||
Documentation: how to enable /etc/hosts multi-record lookups
|
||||
with main.cf settings. File: proto/LINUX_README.html.
|
||||
|
||||
Documentation: clarified the postscreen-tlsproxy interface.
|
||||
File: tlsproxy/tlsproxy.c.
|
||||
|
||||
20121012
|
||||
|
||||
Documentation: a simpler null-client example. File:
|
||||
proto/STANDARD_CONFIGURATION_README.html
|
||||
|
||||
20121013
|
||||
|
||||
Cleanup: to compute the LDAP connection cache lookup key,
|
||||
join the numeric fields with null, just like string fields.
|
||||
Viktor Dukhovni. File: global/dict_ldap.c.
|
||||
|
||||
20121029
|
||||
20121015
|
||||
|
||||
Documentation: added section on regular-expression tables
|
||||
to the aliases(5) manpage. File: proto/aliases.
|
||||
|
||||
Documentation: why "smtp_address_preference = any" is the
|
||||
preferred setting. File: proto/postconf.proto.
|
||||
|
||||
20121022
|
||||
|
||||
Bugfix (introduced 20101009) don't complain about stray -m
|
||||
option if none of -[bhm] is specified. Ralf Hildebrandt.
|
||||
File: postmap/postmap.c.
|
||||
|
||||
20121029
|
||||
|
||||
Workaround: strip datalink suffix from IPv6 addresses
|
||||
returned by the system getaddrinfo() routine. Such suffixes
|
||||
mess up the default mynetworks value, host name/address
|
||||
verification and possibly more. This change obsoletes the
|
||||
20101108 change that removes datalink suffixes in the SMTP
|
||||
and QMQP servers, but we leave that code alone. File:
|
||||
util/myaddrinfo.c.
|
||||
and QMQP servers. Files: util/myaddrinfo.c, smtpd/smtpd_peer.c,
|
||||
qmqpd/qmqpd_peer.c.
|
||||
|
||||
20121031
|
||||
|
||||
Bugfix: smtpd_relay_restrictions compatibility shim did not
|
||||
detect "empty" value. Sahil Tandon. The same problem existed
|
||||
with the inet_protocols shim. File: conf/post-install.
|
||||
|
||||
20121105
|
||||
|
||||
Cleanup: the postscreen(8) "deep protocol" tests now log
|
||||
the SMTP command that precedes a protocol violation. Files:
|
||||
postscreen/postscreen_smtpd.c, proto/POSTSCREEN_README.html.
|
||||
|
||||
Bugfix (introduced: Postfix 1.1): wrong string termination
|
||||
when handling an MBOX From_ line at the start of a message.
|
||||
File: qmqpd/qmqpd.c.
|
||||
|
||||
20121110
|
||||
|
||||
Cleanup: specify $(WARN) on the MacOS X compiler command
|
||||
line to suppress "nested comment" and possibly other unwanted
|
||||
warnings. Problem reported by Jim Reid. File: makedefs,
|
||||
Makefile.in.
|
||||
|
||||
20121119
|
||||
|
||||
Documentation: added a note that key_format is required
|
||||
when postscreen(8) and verify(8) share the same memcache
|
||||
(with different persistent backup databases, or course)
|
||||
otherwise automatic cache cleanup breaks due to a name
|
||||
collision for the "last cache cleanup" database record.
|
||||
File: proto/memcache.
|
||||
|
||||
20121122
|
||||
|
||||
Cleanup: the safety-check for smtpd_recipient_restrictions
|
||||
and smtpd_relay_restrictions now detects permit before
|
||||
reject. File: smtpd/smtpd_check.c.
|
||||
|
||||
Cleanup: the safety-check for smtpd_recipient_restrictions
|
||||
and smtpd_relay_restrictions is no longer case-sensitive.
|
||||
File: smtpd/smtpd_check.c.
|
||||
|
||||
20121123
|
||||
|
||||
Cleanup: consistent escaping of commands in postscreen deep
|
||||
protocol test logging. File: postscreen/postscreen_smtpd.c.
|
||||
|
||||
20121124
|
||||
|
||||
Documentation: the bounce behavior for automatically-added
|
||||
BCC recipients has changed with Postfix 2.3 when DSN support
|
||||
was introduced. File: proto/postconf.proto.
|
||||
|
||||
20121203
|
||||
|
||||
Documentation: added explicit example for -o name=value.
|
||||
File: proto/master.
|
||||
|
||||
20121210
|
||||
|
||||
|
@ -17757,13 +18142,90 @@ Apologies for any names omitted.
|
|||
testing. Files: util/ip_match.c, util/ip_match.in,
|
||||
util/ip_match.ref.
|
||||
|
||||
20121215
|
||||
|
||||
Bugfix (introduced: 19980218, when recipient_delimiter
|
||||
support was added): The error message for unknown local
|
||||
users (or missing required aliases) should report the user
|
||||
name instead of the full localpart which may contain an
|
||||
address extension. Problem reported by Christian Holler.
|
||||
File: local/unknown.c.
|
||||
|
||||
20121221
|
||||
|
||||
Feature: "postconf -x" support to expand $name in main.cf
|
||||
parameter values. Files: postconf/postconf_main.c,
|
||||
postconf/postconf.h, postconf/postconf_node.c, postconf/postconf.c.
|
||||
|
||||
20121222
|
||||
|
||||
Feature: postconf support to warn about an attempt to modify
|
||||
a read-only parameter (process_name etc.) in main.cf or
|
||||
master.cf. Files: postconf/postconf_readonly.c,
|
||||
postconf/postconf_builtin.c.
|
||||
|
||||
20121223
|
||||
|
||||
Feature: postconf support to warn about an undefined $name
|
||||
in a parameter value in main.cf or master.cf (except for
|
||||
backwards-compatibility parameters such as $virtual_maps)
|
||||
Files: postconf/postconf_user.c, postconf_dbms.c,
|
||||
postconf_builtin.c, util/dict_ht.c, util/htable.c.
|
||||
|
||||
Feature: "postconf -Mx" support to expand $name in master.cf
|
||||
parameter values. Files: postconf/postconf_master.c,
|
||||
postconf/postconf_lookup.c, postconf/postconf_main.c,
|
||||
postconf/postconf.c.
|
||||
|
||||
20121224
|
||||
|
||||
Feature: "postconf -Mn" support to print only master.cf
|
||||
entries that have "-o name=value" parameter setttings.
|
||||
Files: postconf/postconf_master.c.
|
||||
|
||||
20121226
|
||||
|
||||
Miscellaneous cleanups of postconf internal APIs, identifiers
|
||||
and comments. No changes in behavior.
|
||||
|
||||
Bugfix (omission in feature 20111203): the SMTP server only
|
||||
supported time-dependent address-verification sender addresses
|
||||
with RCPT TO but not with MAIL FROM. File: smtpd/smtpd.c.
|
||||
|
||||
20121227
|
||||
|
||||
Feature: "postconf -o name=value" support to override main.cf
|
||||
settings (for example, "postconf -x -o stress=whatever"
|
||||
shows effective settings under overload). Files:
|
||||
postconf/postconf.c, postconf/postconf_main.c.
|
||||
|
||||
20121230
|
||||
|
||||
Cleanup: postconf(1) master.cf options parser. Files:
|
||||
postconf/postconf_master.c, postconf/postconf_user.c.
|
||||
|
||||
Bugfix (omission in feature 20111106): the postconf(1)
|
||||
master.cf options parser didn't support "clusters" of
|
||||
command-line option letters. File: postconf/postconf_master.c,
|
||||
command-line option letters. Files: postconf/postconf_master.c,
|
||||
postconf/test40.ref.
|
||||
|
||||
20130105
|
||||
|
||||
Undo a change made around 20121224, and always whitelist
|
||||
configuration parameter names for legacy-style proxy:ldap:prefix
|
||||
etc. lookup tables. Files: postconf/postconf_dbms.c,
|
||||
postconf/test28.ref, postconf/test29.ref, postconf/Makefile.in.
|
||||
|
||||
20130107
|
||||
|
||||
Factor out the master.cf line parser so that it can be
|
||||
reused for "postconf -Me". File: postconf/postconf_master.c.
|
||||
|
||||
20130121
|
||||
|
||||
Bugfix (introduced 20120307): the postconf -X option erased
|
||||
other options. File: postconf/postconf.c.
|
||||
|
||||
20130131
|
||||
|
||||
Bugfix: the local(8) delivery agent dereferenced a null
|
||||
|
@ -17781,8 +18243,10 @@ Apologies for any names omitted.
|
|||
Duchovni, BC added by Wietse. Files: tls/tls_verify.c,
|
||||
tls/tls_misc.c, proto/TLS_README.html, global/mail_params.h.
|
||||
|
||||
Bugfix: the 20121010 fix for tls_misc.c was documented but
|
||||
not included.
|
||||
20130210
|
||||
|
||||
Bugfix: an error handler for smtp_tls_policy_maps lookups
|
||||
was never invoked. File: smtp/smtp_session.c.
|
||||
|
||||
20130403
|
||||
|
||||
|
@ -17811,3 +18275,34 @@ Apologies for any names omitted.
|
|||
between different hostnames that resolve to the same IP
|
||||
address. Found during Postfix 2.11 code maintenance. File:
|
||||
smtp/smtp_connect.c.
|
||||
|
||||
20130518
|
||||
|
||||
Bugfix (introduced: 1997): memory leak after error while
|
||||
forwarding mail through the cleanup server. Viktor found
|
||||
one, Wietse eliminated the rest. File: local/forward.c.
|
||||
|
||||
20130613
|
||||
|
||||
Workaround: unhelpful down-stream maintainers fail to install
|
||||
the new smtpd_relay_restrictions safety net, causing breakage
|
||||
that could have been avoided. We now hard-code the safety
|
||||
net instead. Files: global/mail_params.h, conf/post-install,
|
||||
RELEASE_NOTES.
|
||||
|
||||
20130615
|
||||
|
||||
TLS Interoperability: turn on SHA-2 digests by force. This
|
||||
improves interoperability with clients and servers that
|
||||
deploy SHA-2 digests without the required support for
|
||||
TLSv1.2-style digest negotiation. Based on patch by Viktor
|
||||
Dukhovni. Files: tls/tls_client.c, tls/tls_server.c.
|
||||
|
||||
20130616
|
||||
|
||||
TLS Performance: the Postfix SMTP server TLS session cache
|
||||
was ineffective because recent OpenSSL versions enable
|
||||
session tickets by default, resulting in a different ticket
|
||||
encryption key for each smtpd(8) process. The workaround
|
||||
turns off session tickets. In 2.11 we'll enable session
|
||||
tickets properly. Viktor Dukhovni. File: tls/tls_server.c.
|
||||
|
|
|
@ -43,7 +43,7 @@ should be executed as the superuser.
|
|||
|
||||
A command written as
|
||||
|
||||
% command
|
||||
$ command
|
||||
|
||||
should be executed as an unprivileged user.
|
||||
|
||||
|
@ -58,14 +58,14 @@ because the files use backspace characters in order to produce bboolldd font
|
|||
print a README file without backspace characters, use the col(1) command. For
|
||||
example:
|
||||
|
||||
% col -bx <file | lpr
|
||||
$ col -bx <file | lpr
|
||||
|
||||
In order to view the manual pages before installing Postfix, point your MANPATH
|
||||
environment variable to the "man" subdirectory; be sure to use an absolute
|
||||
path.
|
||||
|
||||
% export MANPATH; MANPATH="`pwd`/man:$MANPATH"
|
||||
% setenv MANPATH "`pwd`/man:$MANPATH"
|
||||
$ export MANPATH; MANPATH="`pwd`/man:$MANPATH"
|
||||
$ setenv MANPATH "`pwd`/man:$MANPATH"
|
||||
|
||||
Of particular interest is the postconf(5) manual page that lists all the 500+
|
||||
configuration parameters. The HTML version of this text makes it easy to
|
||||
|
@ -80,22 +80,20 @@ At some point in time, a version of Postfix was supported on:
|
|||
|
||||
AIX 3.2.5, 4.1.x, 4.2.0, 4.3.x, 5.2
|
||||
BSD/OS 2.x, 3.x, 4.x
|
||||
Darwin 1.x
|
||||
FreeBSD 2.x, 3.x, 4.x, 5.x
|
||||
FreeBSD 2.x .. 9.x
|
||||
HP-UX 9.x, 10.x, 11.x
|
||||
IRIX 5.x, 6.x
|
||||
Linux Debian 1.3.1, 2.x, 3.x
|
||||
Linux RedHat 3.x (January 2004) - 9.x
|
||||
Linux Slackware 3.x, 4.x, 7.x
|
||||
Linux SuSE 5.x, 6.x, 7.x
|
||||
Linux Ubuntu 4.10..7.04
|
||||
Linux Debian 1.3.1 and later
|
||||
Linux RedHat 3.x (January 2004) and later
|
||||
Linux Slackware 3.x and later
|
||||
Linux SuSE 5.x and later
|
||||
Linux Ubuntu 4.10 and later
|
||||
Mac OS X
|
||||
NEXTSTEP 3.x
|
||||
NetBSD 1.x
|
||||
NetBSD 1.x and later
|
||||
OPENSTEP 4.x
|
||||
OSF1.V3 - OSF1.V5 (Digital UNIX)
|
||||
Reliant UNIX 5.x
|
||||
Rhapsody 5.x
|
||||
SunOS 4.1.4 (March 2007)
|
||||
SunOS 5.4 - 5.10 (Solaris 2.4..10)
|
||||
Ultrix 4.x (well, that was long ago)
|
||||
|
@ -118,12 +116,12 @@ If at any time in the build process you get messages like: "make: don't know
|
|||
how to ..." you should be able to recover by running the following command from
|
||||
the Postfix top-level directory:
|
||||
|
||||
% make -f Makefile.init makefiles
|
||||
$ make -f Makefile.init makefiles
|
||||
|
||||
If you copied the Postfix source code after building it on another machine, it
|
||||
is a good idea to cd into the top-level directory and first do this:
|
||||
|
||||
% make tidy
|
||||
$ make tidy
|
||||
|
||||
This will get rid of any system dependencies left over from compiling the
|
||||
software elsewhere.
|
||||
|
@ -134,19 +132,19 @@ To build with GCC, or with the native compiler if people told me that is better
|
|||
for your system, just cd into the top-level Postfix directory of the source
|
||||
tree and type:
|
||||
|
||||
% make
|
||||
$ make
|
||||
|
||||
To build with a non-default compiler, you need to specify the name of the
|
||||
compiler. Here are a few examples:
|
||||
|
||||
% make makefiles CC=/opt/SUNWspro/bin/cc (Solaris)
|
||||
% make
|
||||
$ make makefiles CC=/opt/SUNWspro/bin/cc (Solaris)
|
||||
$ make
|
||||
|
||||
% make makefiles CC="/opt/ansic/bin/cc -Ae" (HP-UX)
|
||||
% make
|
||||
$ make makefiles CC="/opt/ansic/bin/cc -Ae" (HP-UX)
|
||||
$ make
|
||||
|
||||
% make makefiles CC="purify cc"
|
||||
% make
|
||||
$ make makefiles CC="purify cc"
|
||||
$ make
|
||||
|
||||
and so on. In some cases, optimization is turned off automatically.
|
||||
|
||||
|
@ -187,8 +185,8 @@ configuration file, except for one: the parameter that specifies the location
|
|||
of Postfix configuration files. In order to build Postfix with a configuration
|
||||
directory other than /etc/postfix, use:
|
||||
|
||||
% make makefiles CCARGS='-DDEF_CONFIG_DIR=\"/some/where\"'
|
||||
% make
|
||||
$ make makefiles CCARGS='-DDEF_CONFIG_DIR=\"/some/where\"'
|
||||
$ make
|
||||
|
||||
IMPORTANT: Be sure to get the quotes right. These details matter a lot.
|
||||
|
||||
|
@ -227,8 +225,8 @@ introduced with Postfix version 2.5.
|
|||
|
||||
The general method to override Postfix compile-time features is as follows:
|
||||
|
||||
% make makefiles name=value name=value...
|
||||
% make
|
||||
$ make makefiles name=value name=value...
|
||||
$ make
|
||||
|
||||
The following is an extensive list of names and values.
|
||||
|
||||
|
@ -322,7 +320,7 @@ descriptors per process is limited by the value of the FD_SETSIZE macro. If you
|
|||
expect to run more than 1000 mail delivery processes, you may need to override
|
||||
the definition of the FD_SETSIZE macro to make select() work correctly:
|
||||
|
||||
% make makefiles CCARGS=-DFD_SETSIZE=2048
|
||||
$ make makefiles CCARGS=-DFD_SETSIZE=2048
|
||||
|
||||
Warning: the above has no effect on some Linux versions. Apparently, on these
|
||||
systems the FD_SETSIZE value can be changed only by using undocumented
|
||||
|
@ -338,7 +336,7 @@ examples of how to increase the number of open sockets or files.
|
|||
|
||||
If the command
|
||||
|
||||
% make
|
||||
$ make
|
||||
|
||||
is successful, then you can proceed to install Postfix (section 6).
|
||||
|
||||
|
@ -485,18 +483,18 @@ and watch your maillog file for any error messages. The pathname is /var/log/
|
|||
maillog, /var/log/mail, /var/log/syslog, or something else. Typically, the
|
||||
pathname is defined in the /etc/syslog.conf file.
|
||||
|
||||
% egrep '(reject|warning|error|fatal|panic):' /some/log/file
|
||||
$ egrep '(reject|warning|error|fatal|panic):' /some/log/file
|
||||
|
||||
Note: the most important error message is logged first. Later messages are not
|
||||
as useful.
|
||||
|
||||
In order to inspect the mail queue, use one of the following commands:
|
||||
|
||||
% mailq
|
||||
$ mailq
|
||||
|
||||
% sendmail -bp
|
||||
$ sendmail -bp
|
||||
|
||||
% postqueue -p
|
||||
$ postqueue -p
|
||||
|
||||
See also the "Care and feeding" section 12 below.
|
||||
|
||||
|
@ -535,18 +533,18 @@ and watch your maillog file for any error messages. The pathname is /var/log/
|
|||
maillog, /var/log/mail, /var/log/syslog, or something else. Typically, the
|
||||
pathname is defined in the /etc/syslog.conf file.
|
||||
|
||||
% egrep '(reject|warning|error|fatal|panic):' /some/log/file
|
||||
$ egrep '(reject|warning|error|fatal|panic):' /some/log/file
|
||||
|
||||
Note: the most important error message is logged first. Later messages are not
|
||||
as useful.
|
||||
|
||||
In order to inspect the mail queue, use one of the following commands:
|
||||
|
||||
% mailq
|
||||
$ mailq
|
||||
|
||||
% sendmail -bp
|
||||
$ sendmail -bp
|
||||
|
||||
% postqueue -p
|
||||
$ postqueue -p
|
||||
|
||||
See also the "Care and feeding" section 12 below.
|
||||
|
||||
|
@ -575,18 +573,18 @@ and watch your maillog file for any error messages. The pathname is /var/log/
|
|||
maillog, /var/log/mail, /var/log/syslog, or something else. Typically, the
|
||||
pathname is defined in the /etc/syslog.conf file.
|
||||
|
||||
% egrep '(reject|warning|error|fatal|panic):' /some/log/file
|
||||
$ egrep '(reject|warning|error|fatal|panic):' /some/log/file
|
||||
|
||||
Note: the most important error message is logged first. Later messages are not
|
||||
as useful.
|
||||
|
||||
In order to inspect the mail queue, use one of the following commands:
|
||||
|
||||
% mailq
|
||||
$ mailq
|
||||
|
||||
% sendmail -bp
|
||||
$ sendmail -bp
|
||||
|
||||
% postqueue -p
|
||||
$ postqueue -p
|
||||
|
||||
See also the "Care and feeding" section 12 below.
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
SHELL = /bin/sh
|
||||
WARN = -Wmissing-prototypes -Wformat
|
||||
WARN = -Wmissing-prototypes -Wformat -Wno-comment
|
||||
OPTS = 'CC=$(CC)'
|
||||
DIRS = src/util src/global src/dns src/tls src/xsasl src/milter src/master \
|
||||
src/postfix src/fsstone src/smtpstone \
|
||||
|
|
|
@ -246,6 +246,11 @@ To find out what database types your Postfix system supports, use the "ppooss
|
|||
with the postmap(1) or postalias(1) command. The lookup table name as
|
||||
used in "sdbm:table" is the database file name without the ".dir" or
|
||||
".pag" suffix.
|
||||
ssoocckkeettmmaapp (read-only)
|
||||
Query a Sendmail-style socketmap server. The name of the table
|
||||
specifies iinneett:host:port:socketmap-name for a TCP-based server, or
|
||||
uunniixx:pathname:socketmap-name for a UNIX-domain server. In both cases
|
||||
socketmap-name is the name of the socketmap.
|
||||
ssqqlliittee (read-only)
|
||||
Perform SQLite database lookups. Configuration details are given in
|
||||
sqlite_table(5).
|
||||
|
|
|
@ -442,6 +442,8 @@ without sending `.' on the connection that injects mail back into Postfix.
|
|||
-o smtpd_helo_restrictions=
|
||||
-o smtpd_client_restrictions=
|
||||
-o smtpd_sender_restrictions=
|
||||
# Postfix 2.10 and later: specify empty smtpd_relay_restrictions.
|
||||
-o smtpd_relay_restrictions=
|
||||
-o smtpd_recipient_restrictions=permit_mynetworks,reject
|
||||
-o mynetworks=127.0.0.0/8
|
||||
-o smtpd_authorized_xforward_hosts=127.0.0.0/8
|
||||
|
|
|
@ -132,12 +132,13 @@ aa ""ttyyppee::ttaabbllee"" ppaatttteerrnn..
|
|||
|
||||
KKnnoowwnn LLiimmiittaattiioonnss
|
||||
|
||||
* The order of IPv6/IPv4 outgoing connection attempts is not yet
|
||||
configurable. Currently, IPv6 is tried before IPv4.
|
||||
* Postfix SMTP clients before version 2.8 try to connect over IPv6 before
|
||||
trying IPv4. With more recent Postfix versions, the order of IPv6 versus
|
||||
IPv4 outgoing connection attempts is configurable with the
|
||||
smtp_address_preference parameter.
|
||||
|
||||
* Postfix currently does not support DNSBL (real-time blackhole list) lookups
|
||||
for IPv6 client IP addresses; currently there are no blacklists that cover
|
||||
the IPv6 address space.
|
||||
* Postfix versions before 2.6 do not support DNSBL (real-time blackhole list)
|
||||
lookups for IPv6 client IP addresses.
|
||||
|
||||
* IPv6 does not have class A, B, C, etc. networks. With IPv6 networks, the
|
||||
setting "mynetworks_style = class" has the same effect as the setting
|
||||
|
|
|
@ -2,6 +2,26 @@ PPoossttffiixx aanndd LLiinnuuxx
|
|||
|
||||
-------------------------------------------------------------------------------
|
||||
|
||||
HHoosstt llooookkuupp iissssuueess
|
||||
|
||||
By default Linux /etc/hosts lookups do not support multiple IP address per
|
||||
hostname. This causes warnings from the Postfix SMTP server that "hostname XXX
|
||||
does not resolve to address YYY", and is especially a problem with hosts that
|
||||
have both IPv4 and IPv6 addresses. To fix, turn on support for multiple IP
|
||||
addresses:
|
||||
|
||||
/etc/host.conf:
|
||||
...
|
||||
# We have machines with multiple IP addresses.
|
||||
multi on
|
||||
...
|
||||
|
||||
Alternatively, specify the RESOLV_MULTI environment variable in main.cf:
|
||||
|
||||
/etc/postfix/main.cf:
|
||||
import_environment = MAIL_CONFIG MAIL_DEBUG MAIL_LOGTAG TZ XAUTHORITY
|
||||
DISPLAY LANG=C RESOLV_MULTI=on
|
||||
|
||||
BBeerrkkeelleeyy DDBB iissssuueess
|
||||
|
||||
If you can't compile Postfix because the file "db.h" isn't found, then you MUST
|
||||
|
|
|
@ -290,6 +290,8 @@ injection SMTP service. Typical additions include:
|
|||
# With multiple instances, rarely need "-o param=value" overrides
|
||||
# in master.cf, each instance gets its own main.cf file.
|
||||
#
|
||||
# Postfix 2.10 and later: specify empty smtpd_relay_restrictions.
|
||||
smtpd_relay_restrictions =
|
||||
smtpd_recipient_restrictions = permit_mynetworks, reject
|
||||
|
||||
# Tolerate occasional high latency in the content filter.
|
||||
|
|
|
@ -4,27 +4,31 @@ PPoossttffiixx PPoossttssccrreeeenn HHoowwttoo
|
|||
|
||||
IInnttrroodduuccttiioonn
|
||||
|
||||
The Postfix postscreen(8) server performs triage on multiple inbound SMTP
|
||||
connections at the same time. While a single postscreen(8) process keeps
|
||||
zombies away from Postfix SMTP server processes, more Postfix SMTP server
|
||||
processes remain available for legitimate clients.
|
||||
This document describes features that are available in Postfix 2.8 and later.
|
||||
|
||||
The Postfix postscreen(8) daemon provides additional protection against mail
|
||||
server overload. One postscreen(8) process handles multiple inbound SMTP
|
||||
connections, and decides which clients may talk to a Postfix SMTP server
|
||||
process. By keeping spambots away, postscreen(8) leaves more SMTP server
|
||||
processes available for legitimate clients, and delays the onset of server
|
||||
overload conditions.
|
||||
|
||||
postscreen(8) should not be used on SMTP ports that receive mail from end-user
|
||||
clients (MUAs). In a typical deployment, postscreen(8) handles the MX service
|
||||
on TCP port 25, while MUA clients submit mail via the submission service on TCP
|
||||
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
|
||||
impact on legitimate email traffic.
|
||||
|
||||
postscreen(8) should not be used on SMTP ports that receive mail from end-user
|
||||
clients (MUAs). In a typical deployment, postscreen(8) is used on the "port 25"
|
||||
service, while MUA clients submit mail via the submission service (port 587)
|
||||
which normally requires client authentication, or via a "port 25" server that
|
||||
provides no MX service (i.e. a dedicated server that provides submission
|
||||
service on port 25).
|
||||
|
||||
postscreen(8) is part of a multi-layer defense.
|
||||
|
||||
* As the first layer, postscreen(8) blocks connections from zombies and other
|
||||
spambots that are responsible for about 90% of all spam. It is implemented
|
||||
as a single process to make this defense as cheap as possible.
|
||||
as a single process to make this defense as inexpensive as possible.
|
||||
|
||||
* The second layer implements more complex SMTP-level access checks with
|
||||
Postfix SMTP servers, policy daemons, and Milter applications.
|
||||
|
@ -89,11 +93,11 @@ focused on.
|
|||
|
||||
GGeenneerraall ooppeerraattiioonn
|
||||
|
||||
The postscreen(8) triage process involves 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) minimizes its impact on
|
||||
legitimate email traffic.
|
||||
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)
|
||||
minimizes its impact on legitimate email traffic.
|
||||
|
||||
By default, postscreen(8) hands off all connections to a Postfix SMTP server
|
||||
process after logging its findings. This mode is useful for non-destructive
|
||||
|
@ -162,15 +166,15 @@ whitelist. The temporary whitelist is not used for SMTP client addresses that
|
|||
appear on the permanent access list.
|
||||
|
||||
NOTE: To share a postscreen(8) cache between multiple postscreen(8)
|
||||
instances, use "postscreen_cache_map = proxy:btree:$data_directory/
|
||||
postscreen_cache", and disable cache cleanup
|
||||
instances under the same master(8) daemon, use "postscreen_cache_map =
|
||||
proxy:btree:$data_directory/postscreen_cache", and disable cache cleanup
|
||||
(postscreen_cache_cleanup_interval = 0) in all postscreen(8) instances
|
||||
except one that is responsible for cache cleanup.
|
||||
|
||||
postscreen(8) cache sharing requires Postfix 2.9 or later; earlier proxymap
|
||||
(8) implementations don't support cache cleanup.
|
||||
|
||||
For an alternative postscreen(8) cache sharing approach see the
|
||||
For an alternative postscreen(8) cache sharing approach, see the
|
||||
memcache_table(5) manpage.
|
||||
|
||||
When the SMTP client address appears on the temporary whitelist, postscreen(8)
|
||||
|
@ -190,16 +194,23 @@ 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
|
||||
Postfix SMTP server process.
|
||||
|
||||
By listening on both primary and backup MX addresses, postscreen(8) can deny
|
||||
the temporary whitelist status to clients that connect only to backup MX hosts
|
||||
(an old spammer trick to take advantage of backup MX hosts with weaker anti-
|
||||
spam policies than primary MX hosts).
|
||||
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
|
||||
address only (an old spammer trick to take advantage of backup MX hosts with
|
||||
weaker anti-spam policies than primary MX hosts).
|
||||
|
||||
NOTE: The following solution is for small sites. Larger sites would have to
|
||||
share the postscreen(8) cache between primary and backup MTAs, which would
|
||||
introduce a common point of failure.
|
||||
|
||||
* First, configure the host to listen on both primary and backup MX
|
||||
addresses. Use the appropriate ifconfig command for the local operating
|
||||
system, or update the appropriate configuration files and "refresh" the
|
||||
network protocol stack.
|
||||
|
||||
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
|
||||
backup MX address(es). An example for Wietse's server is:
|
||||
|
||||
|
@ -404,11 +415,12 @@ in SMTP engine anyway. This is to make postscreen(8) logging more informative.
|
|||
|
||||
When a client sends non-SMTP commands, postscreen(8) logs this as:
|
||||
|
||||
NNOONN--SSMMTTPP CCOOMMMMAANNDD ffrroomm [address]:port command
|
||||
NNOONN--SSMMTTPP CCOOMMMMAANNDD ffrroomm [address]:port aafftteerr command: text
|
||||
|
||||
Translation: the SMTP client at [address]:port sent a command that matches the
|
||||
postscreen_forbidden_commands parameter, or that has the syntax of a message
|
||||
header label.
|
||||
header label (text followed by optional space and ":"). The "aafftteerr command"
|
||||
portion is logged with Postfix 2.10 and later.
|
||||
|
||||
The postscreen_non_smtp_command_action parameter specifies the action that is
|
||||
taken next. See "When tests fail after the 220 SMTP server greeting" below.
|
||||
|
@ -428,10 +440,11 @@ in SMTP engine anyway. This is to make postscreen(8) logging more informative.
|
|||
|
||||
When a client sends bare newline characters, postscreen(8) logs this as:
|
||||
|
||||
BBAARREE NNEEWWLLIINNEE ffrroomm [address]:port
|
||||
BBAARREE NNEEWWLLIINNEE ffrroomm [address]:port aafftteerr command
|
||||
|
||||
Translation: the SMTP client at [address]:port sent a bare newline character,
|
||||
that is newline not preceded by carriage return.
|
||||
that is newline not preceded by carriage return. The "aafftteerr command" portion is
|
||||
logged with Postfix 2.10 and later.
|
||||
|
||||
The postscreen_bare_newline_action parameter specifies the action that is taken
|
||||
next. See "When tests fail after the 220 SMTP server greeting" below.
|
||||
|
@ -473,23 +486,26 @@ The following errors are reported by the built-in SMTP engine. This engine
|
|||
never accepts mail, therefore it has per-session limits on the number of
|
||||
commands and on the session length.
|
||||
|
||||
CCOOMMMMAANNDD TTIIMMEE LLIIMMIITT ffrroomm [address]:port
|
||||
CCOOMMMMAANNDD TTIIMMEE LLIIMMIITT ffrroomm [address]:port aafftteerr command
|
||||
|
||||
Translation: the SMTP client at [address]:port reached the per-command time
|
||||
limit as specified with the postscreen_command_time_limit parameter. The
|
||||
session is terminated immediately.
|
||||
session is terminated immediately. The "aafftteerr command" portion is logged with
|
||||
Postfix 2.10 and later.
|
||||
|
||||
CCOOMMMMAANNDD CCOOUUNNTT LLIIMMIITT ffrroomm [address]:port
|
||||
CCOOMMMMAANNDD CCOOUUNNTT LLIIMMIITT ffrroomm [address]:port aafftteerr command
|
||||
|
||||
Translation: the SMTP client at [address]:port reached the per-session command
|
||||
count limit as specified with the postscreen_command_count_limit parameter. The
|
||||
session is terminated immediately.
|
||||
session is terminated immediately. The "aafftteerr command" portion is logged with
|
||||
Postfix 2.10 and later.
|
||||
|
||||
CCOOMMMMAANNDD LLEENNGGTTHH LLIIMMIITT ffrroomm [address]:port
|
||||
CCOOMMMMAANNDD LLEENNGGTTHH LLIIMMIITT ffrroomm [address]:port aafftteerr command
|
||||
|
||||
Translation: the SMTP client at [address]:port reached the per-command length
|
||||
limit, as specified with the line_length_limit parameter. The session is
|
||||
terminated immediately.
|
||||
terminated immediately. The "aafftteerr command" portion is logged with Postfix 2.10
|
||||
and later.
|
||||
|
||||
When an SMTP client makes too many connections at the same time, or when all
|
||||
postscreen(8) ports are busy, postscreen(8) rejects the connection with a 421
|
||||
|
@ -760,3 +776,10 @@ for sites that require TLS support. The implementation introduces the tlsproxy
|
|||
(8) event-driven TLS proxy that decrypts/encrypts the sessions for multiple
|
||||
SMTP clients.
|
||||
|
||||
The tlsproxy(8) implementation led to the discovery of a "new" class of
|
||||
vulnerability (CVE-2011-0411) that affected multiple implementations of SMTP,
|
||||
POP, IMAP, NNTP, and FTP over TLS.
|
||||
|
||||
postscreen(8) was officially released as part of the Postfix 2.8 stable release
|
||||
in January 2011.
|
||||
|
||||
|
|
|
@ -1,33 +1,251 @@
|
|||
The stable Postfix release is called postfix-2.9.x where 2=major
|
||||
release number, 9=minor release number, x=patchlevel. The stable
|
||||
The stable Postfix release is called postfix-2.10.x where 2=major
|
||||
release number, 10=minor release number, x=patchlevel. The stable
|
||||
release never changes except for patches that address bugs or
|
||||
emergencies. Patches change the patchlevel and the release date.
|
||||
|
||||
New features are developed in snapshot releases. These are called
|
||||
postfix-2.10-yyyymmdd where yyyymmdd is the release date (yyyy=year,
|
||||
postfix-2.11-yyyymmdd where yyyymmdd is the release date (yyyy=year,
|
||||
mm=month, dd=day). Patches are never issued for snapshot releases;
|
||||
instead, a new snapshot is released.
|
||||
|
||||
The mail_release_date configuration parameter (format: yyyymmdd)
|
||||
specifies the release date of a stable release or snapshot release.
|
||||
|
||||
If you upgrade from Postfix 2.7 or earlier, read RELEASE_NOTES-2.8
|
||||
If you upgrade from Postfix 2.8 or earlier, read RELEASE_NOTES-2.9
|
||||
before proceeding.
|
||||
|
||||
Major changes with Postfix 2.9.6
|
||||
--------------------------------
|
||||
Debian Exim before 4.80-3 interoperability workaround
|
||||
-----------------------------------------------------
|
||||
|
||||
Thanks to OpenSSL documentation, the Postfix 2.9.0..2.9.5 SMTP
|
||||
client and server computed incorrect TLS certificate PUBLIC-KEY
|
||||
fingerprints. Support for certificate PUBLIC-KEY finger prints
|
||||
was introduced with Postfix 2.9; there is no known problem with the
|
||||
certificate fingerprint algorithms available since Postfix 2.2.
|
||||
Debian Exim versions before 4.80-3 may fail to communicate with
|
||||
Postfix and possibly other MTAs, with the following Exim SMTP client
|
||||
error message:
|
||||
|
||||
TLS error on connection to server-name [server-address]
|
||||
(gnutls_handshake): The Diffie-Hellman prime sent by the server
|
||||
is not acceptable (not long enough)
|
||||
|
||||
This problem may affect Debian Exim versions before 4.80-3 that use
|
||||
TLS with EDH (Ephemeral Diffie-Hellman) key exchanges. For details
|
||||
see http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=676563
|
||||
|
||||
To restore Postfix SMTP server interoperability with affected Exim
|
||||
SMTP clients, configure the Postfix SMTP server to use a 2048-bit
|
||||
prime number instead of 1024:
|
||||
|
||||
# cd /etc/postfix
|
||||
# openssl dhparam -out dh2048.pem 2048
|
||||
# postconf -e 'smtpd_tls_dh1024_param_file = ${config_directory}/dh2048.pem'
|
||||
|
||||
This change increases the CPU cost of EDH key exchanges (rarely a
|
||||
problem for SMTP servers) and is unlikely to cause problems with
|
||||
other SMTP client implementations.
|
||||
|
||||
This problem should not affect EECDH (Ephemeral Elliptic Curve
|
||||
Diffie-Hellman) key exchanges.
|
||||
|
||||
Major changes - laptop-friendliness
|
||||
-----------------------------------
|
||||
|
||||
[Incompat 20120924] Postfix no longer uses FIFOs to emulate UNIX-domain
|
||||
sockets on Solaris 9 (Vintage 2002!) and later. If you install
|
||||
Postfix for the first time on an older Solaris system, edit the
|
||||
master.cf file and replace "unix" with "fifo" for the pickup and
|
||||
qmgr services.
|
||||
|
||||
[Feature 20120924] the default master.cf file now uses "unix" instead
|
||||
of "fifo" for the pickup and qmgr services. This avoids periodic
|
||||
disk drive spin-up.
|
||||
|
||||
Major changes - permit logging
|
||||
------------------------------
|
||||
|
||||
[Feature 20120303] [Feature 20120303] New control for "permit"
|
||||
logging in smtpd_mumble_restrictions (by default, the SMTP server
|
||||
logs "reject" actions but not "permit" actions). Specify
|
||||
"smtpd_log_access_permit_actions = static:all" to log all "permit"-style
|
||||
actions, or specify a list of explicit action names. More details
|
||||
are in the postconf(5) manpage.
|
||||
|
||||
Major changes - postconf
|
||||
------------------------
|
||||
|
||||
[Incompat 20121224] The postconf command produces more warnings:
|
||||
|
||||
- An attempt to modify a read-only parameter (process_name, process_id)
|
||||
in main.cf or master.cf.
|
||||
|
||||
- An undefined $name in a parameter value in main.cf or master.cf
|
||||
(except for backwards-compatibility parameters such as $virtual_maps).
|
||||
|
||||
[Feature 20121224] The postconf command has been updated to make
|
||||
trouble-shooting (and support) easier. In summary, use "postconf
|
||||
-Mxf" and "postconf -nxf" to review master.cf and main.cf parameter
|
||||
settings with expanded parameter values.
|
||||
|
||||
- "postconf -x" now expands $name in main.cf and master.cf parameter
|
||||
values.
|
||||
|
||||
- postconf warns about attempts to modify a read-only parameter
|
||||
(process_name, process_id) in main.cf or master.cf.
|
||||
|
||||
- postconf warns about an undefined $name in a parameter value in
|
||||
main.cf or master.cf (except for backwards-compatibility parameters
|
||||
such as $virtual_maps).
|
||||
|
||||
[Feature 20121227]
|
||||
|
||||
- "postconf -o name=value" overrides main.cf parameter settings.
|
||||
This can be used, for example, to examine stress-dependent settings
|
||||
with "postconf -x -o stress=yes".
|
||||
|
||||
Major changes - postscreen
|
||||
--------------------------
|
||||
|
||||
[Incompat 20121123] The postscreen deep protocol tests now log the
|
||||
last command before a protocol error ("UNIMPLEMENTED" when the last
|
||||
command is not implemented, "CONNECT" when there was no prior
|
||||
command). The changed logfile messages are:
|
||||
|
||||
NON-SMTP COMMAND from [address]:port after command: text
|
||||
BARE NEWLINE from [address]:port after command
|
||||
COMMAND TIME LIMIT from [address]:port after command
|
||||
COMMAND COUNT LIMIT from [address]:port after command
|
||||
COMMAND LENGTH LIMIT from [address]:port after command
|
||||
|
||||
Major changes - load-balancer support
|
||||
-------------------------------------
|
||||
|
||||
[Incompat 20120625] The postscreen(8)-to-smtpd(8) protocol has
|
||||
changed. To avoid "cannot receive connection attributes" warnings
|
||||
and dropped connections, execute the command "postfix reload". No
|
||||
mail will be lost as long as the remote SMTP client tries again
|
||||
later.
|
||||
|
||||
[Feature 20120625] Support for upstream proxy agent in the postscreen(8)
|
||||
and smtpd(8) daemons. To enable the haproxy protocol, specify one
|
||||
of the following:
|
||||
|
||||
postscreen_upstream_proxy_protocol = haproxy
|
||||
smtpd_upstream_proxy_protocol = haproxy
|
||||
|
||||
Note 1: smtpd_upstream_proxy_protocol can't be used in smtpd processes
|
||||
that are behind postscreen. Configure postscreen_upstream_proxy_protocol
|
||||
instead.
|
||||
|
||||
Note 2: To use the nginx proxy with smtpd(8), enable the XCLIENT
|
||||
protocol with smtpd_authorized_xclient_hosts. This supports SASL
|
||||
authentication in the proxy agent (Postfix 2.9 and later).
|
||||
|
||||
Major changes - relay safety
|
||||
----------------------------
|
||||
|
||||
[Incompat 20130613] New smtpd_relay_restrictions parameter built-in
|
||||
default settings:
|
||||
|
||||
smtpd_relay_restrictions =
|
||||
permit_mynetworks
|
||||
permit_sasl_authenticated
|
||||
defer_unauth_destination
|
||||
|
||||
This safety net prevents open relay problems due to mistakes
|
||||
with spam filter rules in smtpd_recipient_restrictions.
|
||||
|
||||
If your site has a complex mail relay policy configured under
|
||||
smtpd_recipient_restrictions, this safety net may defer mail that
|
||||
Postfix should accept.
|
||||
|
||||
To fix this safety net, take one of the following actions:
|
||||
|
||||
- Set smtpd_relay_restrictions empty, and keep using the existing
|
||||
mail relay authorization policy in smtpd_recipient_restrictions.
|
||||
|
||||
- Copy the existing mail relay authorization policy from
|
||||
smtpd_recipient_restrictions to smtpd_relay_restrictions.
|
||||
|
||||
There is no need to change the value of smtpd_recipient_restrictions.
|
||||
|
||||
[Feature 20130613] This version introduces the smtpd_relay_restrictions
|
||||
feature for mail relay control. The new built-in default settings
|
||||
are:
|
||||
|
||||
smtpd_relay_restrictions =
|
||||
permit_mynetworks
|
||||
permit_sasl_authenticated
|
||||
defer_unauth_destination
|
||||
|
||||
smtpd_recipient_restrictions =
|
||||
( optional spam blocking rules would go here )
|
||||
|
||||
For comparison, this is the Postfix before 2.10 default:
|
||||
|
||||
smtpd_recipient_restrictions =
|
||||
permit_mynetworks
|
||||
reject_unauth_destination
|
||||
( optional spam blocking rules would go here )
|
||||
|
||||
With Postfix versions before 2.10, the mail relay policy and spam
|
||||
blocking policy were combined under smtpd_recipient_restrictions,
|
||||
resulting in error-prone configuration.
|
||||
|
||||
As of Postfix 2.10, the mail relay policy is preferably implemented
|
||||
with smtpd_relay_restrictions, so that a permissive spam blocking
|
||||
policy under smtpd_recipient_restrictions will not unexpectedly
|
||||
result in a permissive mail relay policy.
|
||||
|
||||
As of Postfix 2.10.0 the smtpd_relay_restrictions parameter built-in
|
||||
default settings are:
|
||||
|
||||
smtpd_relay_restrictions =
|
||||
permit_mynetworks
|
||||
permit_sasl_authenticated
|
||||
defer_unauth_destination
|
||||
|
||||
If your site has a complex mail relay policy configured under
|
||||
smtpd_recipient_restrictions, this safety net may defer mail that
|
||||
Postfix should accept.
|
||||
|
||||
To migrate from an earlier Postfix release with the least amount
|
||||
of pain:
|
||||
|
||||
- Set smtpd_relay_restrictions empty, and keep using the existing
|
||||
mail relay authorization policy in smtpd_recipient_restrictions.
|
||||
|
||||
- There is no need to change the value of smtpd_recipient_restrictions.
|
||||
|
||||
To take advantage of the new smtpd_relay_restrictions feature:
|
||||
|
||||
- Copy the existing mail relay authorization policy from
|
||||
smtpd_recipient_restrictions to smtpd_relay_restrictions.
|
||||
|
||||
- There is no need to change the value of smtpd_recipient_restrictions.
|
||||
|
||||
Major changes - start-up
|
||||
------------------------
|
||||
|
||||
[Feature 20120306] New master "-w" option, to wait for master daemon
|
||||
process initialization to complete. This feature returns an error
|
||||
exit status if master daemon initialization fails, or if it does
|
||||
not complete in a reasonable amount of time. The exit status is
|
||||
used by "postfix start" to provide more accurate information to
|
||||
system start-up scripts.
|
||||
|
||||
Major changes - tls
|
||||
-------------------
|
||||
|
||||
[Incompat 20130203] Thanks to OpenSSL documentation, the Postfix
|
||||
2.9.0..2.9.5 SMTP client and server server used an incorrect procedure
|
||||
to compute TLS certificate PUBLIC-KEY fingerprints (these may be
|
||||
used in the check_ccert_access and in smtp_tls_policy_maps features).
|
||||
Support for certificate PUBLIC-KEY finger prints was introduced
|
||||
with Postfix 2.9; there is no known problem with the certificate
|
||||
fingerprint algorithms available since Postfix 2.2.
|
||||
|
||||
Certificate PUBLIC-KEY finger prints may be used in the Postfix
|
||||
SMTP server (with "check_ccert_access") and in the Postfix SMTP
|
||||
client (with the "fingerprint" security level).
|
||||
|
||||
Specify "tls_legacy_public_key_fingerprints = yes" temporarily,
|
||||
Specify "tls_legacy_public_key_fingerprints = yes" temporarily,
|
||||
pending a migration from configuration files with incorrect Postfix
|
||||
2.9.0..2.9.5 certificate PUBLIC-KEY finger prints, to the correct
|
||||
fingerprints used by Postfix 2.9.6 and later.
|
||||
|
@ -44,12 +262,10 @@ $ openssl x509 -in cert.pem -noout -pubkey | \
|
|||
openssl rsa -pubin -outform DER | \
|
||||
openssl dgst -md5 -c
|
||||
|
||||
Major changes with Postfix 2.9.2
|
||||
--------------------------------
|
||||
|
||||
This release adds support to turn off the TLSv1.1 and TLSv1.2
|
||||
protocols. Introduced with OpenSSL version 1.0.1, these are known
|
||||
to cause inter-operability problems with for example hotmail.
|
||||
[Feature 20120422] This release adds support to turn off the TLSv1.1
|
||||
and TLSv1.2 protocols. Introduced with OpenSSL version 1.0.1, these
|
||||
are known to cause inter-operability problems with for example
|
||||
hotmail.
|
||||
|
||||
The radical workaround is to temporarily turn off problematic
|
||||
protocols globally:
|
||||
|
@ -80,340 +296,3 @@ Important:
|
|||
override the next-hop destination with transport_maps, relayhost,
|
||||
sender_dependent_relayhost_maps, or otherwise, you need to specify
|
||||
the same destination for the smtp_tls_policy_maps lookup key.
|
||||
|
||||
Major changes - critical
|
||||
------------------------
|
||||
|
||||
[Incompat 20110321] You need to "postfix reload" after upgrade from
|
||||
snapshot 20110320 or earlier. The hash_queue_names algorithm was
|
||||
changed to provide better performance with long queue IDs.
|
||||
|
||||
[Incompat 20110313] Use "postfix reload" after "make upgrade" on a
|
||||
running Postfix system. This is needed because the protocol between
|
||||
postscreen(8) and dnsblog(8) has changed.
|
||||
|
||||
Major changes - library API
|
||||
---------------------------
|
||||
|
||||
[Incompat 20110130] The VSTREAM error flags are now split into
|
||||
separate read and write error flags. As a result of this change,
|
||||
all programs that use Postfix VSTREAMs MUST be recompiled.
|
||||
|
||||
Major changes - compatibility
|
||||
-----------------------------
|
||||
|
||||
[Incompat 20111012] For consistency with the SMTP standard, the
|
||||
(client-side) smtp_line_length_limit default value was increased
|
||||
from 990 characters to 999 (i.e. 1000 characters including <CR><LF>).
|
||||
Specify "smtp_line_length_limit = 990" to restore historical Postfix
|
||||
behavior.
|
||||
|
||||
[Incompat 20111012] To simplify integration with third-party
|
||||
applications, the Postfix sendmail command now always transforms
|
||||
all input lines ending in <CR><LF> into UNIX format (lines ending
|
||||
in <LF>). Specify "sendmail_fix_line_endings = strict" to restore
|
||||
historical Postfix behavior (i.e. convert all input lines ending
|
||||
in <CR><LF> only if the first line ends in <CR><LF>).
|
||||
|
||||
[Incompat 20111106] To work around broken remote SMTP servers, the
|
||||
Postfix SMTP client by default no longer appends the "AUTH=<>"
|
||||
option to the MAIL FROM command. Specify "smtp_send_dummy_mail_auth
|
||||
= yes" to restore the old behavior.
|
||||
|
||||
Major changes - gradual degradation
|
||||
-----------------------------------
|
||||
|
||||
[Incompat 20120114] Logfile-based alerting systems may need to be
|
||||
updated to look for "error" messages in addition to "fatal" messages.
|
||||
Specify "daemon_table_open_error_is_fatal = yes" to get the historical
|
||||
behavior (immediate termination with "fatal" message).
|
||||
|
||||
[Feature 20120114] Instead of terminating immediately with a "fatal"
|
||||
message when a database file can't be opened, a Postfix daemon
|
||||
program now logs an "error" message, and continues execution with
|
||||
reduced functionality. For the sake of sanity, the number of
|
||||
"errors" over the life of a process is limited to 13.
|
||||
|
||||
Features that don't depend on the unavailable table will continue
|
||||
to work; attempts to use features that depend on the table will
|
||||
fail, and will be logged with a "warning" message.
|
||||
|
||||
[Feature 20120108] Instead of terminating with a fatal error, the
|
||||
LDAP, *SQL and memcache clients now handle table lookup errors in
|
||||
the "domain" feature, instead of terminating with a fatal error.
|
||||
|
||||
[Feature 20120102] Degrade gradually when some or all network
|
||||
protocols specified with inet_protocols are unavailable, instead
|
||||
of terminating with a fatal error. This eliminates build errors on
|
||||
non-standard systems where opening an IPv4 socket results in an
|
||||
error, and on non-standard systems where opening an IPv6 socket
|
||||
results in an error. In the worst case, the master daemon will log
|
||||
a message that it disables all type "inet" services. This will still
|
||||
allow local submission and local delivery.
|
||||
|
||||
[Feature 20111222] Instead of terminating with a fatal error, the
|
||||
Postfix SMTP server now handles errors with database lookups in
|
||||
mynetworks, TLS client certificate tables, debug_peer_list,
|
||||
smtpd_client_event_limit_exceptions, permit_mx_backup_networks and
|
||||
local_header_rewrite_clients, and reports "server local data error"
|
||||
or "temporary lookup error".
|
||||
|
||||
[Feature 20111229] Instead of terminating with a fatal error, the
|
||||
trivial-rewrite server now handles errors with database lookups in
|
||||
virtual_alias_domains, relay_domains, virtual_mailbox_domains. This
|
||||
means fewer occasions where trivial-rewrite clients (such as the
|
||||
SMTP server) will appear to hang.
|
||||
|
||||
Major changes - long queue IDs
|
||||
------------------------------
|
||||
|
||||
Postfix 2.9 introduces support for non-repeating queue IDs (also
|
||||
used as queue file names). These names are encoded in a mix of upper
|
||||
case, lower case and decimal digit characters. Long queue IDs are
|
||||
disabled by default to avoid breaking tools that parse logfiles and
|
||||
that expect queue IDs with the smaller [A-F0-9] character set.
|
||||
|
||||
[Incompat 20110320] If you enable support for long queue file names,
|
||||
you need to be aware that these file names are not compatible with
|
||||
Postfix <= 2.8. If you must migrate back to Postfix <= 2.8, you
|
||||
must first convert all long queue file names into short names,
|
||||
otherwise the old Postfix version will complain.
|
||||
|
||||
The conversion procedure before migration to Postfix <= 2.8 is:
|
||||
|
||||
# postfix stop
|
||||
# postconf enable_long_queue_ids=no
|
||||
# postsuper
|
||||
|
||||
Run the postsuper command repeatedly until it no longer reports
|
||||
queue file name changes.
|
||||
|
||||
[Feature 20110320] Support for long, non-repeating, queue IDs (queue
|
||||
file names). The benefit of non-repeating names is simpler logfile
|
||||
analysis, and easier queue migration (if you don't merge different
|
||||
queues, there is no need to run "postsuper" to change queue file
|
||||
names that don't match their message file inode number).
|
||||
|
||||
Specify "enable_long_queue_ids = yes" to enable the feature. This
|
||||
does not change the names of existing queue files. See postconf(5)
|
||||
or postconf.5.html#enable_long_queue_ids for a detailed description
|
||||
of the differences with the old short queue IDs.
|
||||
|
||||
This changes new Postfix queue IDs from the short form 0FCEE9247A9
|
||||
into the longer form 3Ps0FS1Zhtz1PFjb, and changes new Message-ID
|
||||
header values from YYMMDDHHMMSS.queueid@myhostname into the shorter
|
||||
form queueid@myhostname.
|
||||
|
||||
Major changes - memcache
|
||||
------------------------
|
||||
|
||||
[Feature 20111209] memcache lookup and update support. This provides
|
||||
a way to share postscreen(8) or verify(8) caches between Postfix
|
||||
instances. See MEMCACHE_README and memcache_table(5) for details
|
||||
and limitations.
|
||||
|
||||
[Feature 20111213] Support for a persistent backup database in the
|
||||
memcache client. The memcache client updates the memcache whenever
|
||||
it looks up or modifies information in the persistent database.
|
||||
|
||||
Major changes - postconf
|
||||
------------------------
|
||||
|
||||
The postconf command was restructured - it now warns about unused
|
||||
parameter name=value settings in main.cf or master.cf (likely to
|
||||
be mistakes), it now understands "dynamic" parameter names such as
|
||||
parameters whose name depends on the name of a master.cf entry, and
|
||||
it can display main.cf and master.cf in a more user-friendly format.
|
||||
|
||||
[Feature 20120117] support for legacy database parameter names
|
||||
(main.cf parameter names that are generated by prepending a suffix
|
||||
to the database name).
|
||||
|
||||
[Feature 20111118] The "postconf -M" (display master.cf) command
|
||||
now supports filtering. For example, specify "postconf -M inet"
|
||||
to display only services that listen on the network.
|
||||
|
||||
[Feature 20111113] postconf support to warn about unused "name=value"
|
||||
entries in main.cf, and about unused "-o name=value" entries in
|
||||
master.cf. This should help to eliminate common errors with mis-typed
|
||||
names.
|
||||
|
||||
[Feature 20111108] postconf support for parameter names that are
|
||||
generated automatically from master.cf entries (delivery agents,
|
||||
spawn services), and for parameter names that are defined with
|
||||
main.cf smtpd_restriction_classes.
|
||||
|
||||
[Feature 20111106] "postconf -M" support to print master.cf entries,
|
||||
and "postconf -f" support to fold long main.cf or master.cf lines
|
||||
for human readability.
|
||||
|
||||
Major changes - trickle defense
|
||||
-------------------------------
|
||||
|
||||
[Feature 20110212] Support for per-record deadlines. These change
|
||||
the behavior of Postfix timeout parameters, from a time limit per
|
||||
read or write system call, to a time limit to send or receive a
|
||||
complete record (an SMTP command line, SMTP response line, SMTP
|
||||
message content line, or TLS protocol message). This limits the
|
||||
impact from hostile peers that trickle data one byte at a time.
|
||||
|
||||
The new configuration parameters and their default settings are:
|
||||
smtpd_per_record_deadline (normal: no, overload: yes),
|
||||
smtp_per_record_deadline (no), and lmtp_per_record_deadline (no).
|
||||
|
||||
Note: when per-record deadlines are enabled, a short time limit may
|
||||
cause problems with TLS over very slow network connections. The
|
||||
reason is that a TLS protocol message can be up to 16 kbytes long
|
||||
(with TLSv1), and that an entire TLS protocol message must be sent
|
||||
or received within the per-record deadline.
|
||||
|
||||
Per-record deadlines were introduced with postscreen(8) in Postfix
|
||||
2.8. This program does not receive mail, and therefore it has no
|
||||
problems with TLS over slow connections.
|
||||
|
||||
Major changes - postscreen
|
||||
--------------------------
|
||||
|
||||
[Feature 20111211] The proxymap(8) server can now be used to share
|
||||
postscreen(8) or verify(8) caches between Postfix instances. Support
|
||||
for proxymap-over-TCP, to share a Postfix database between hosts,
|
||||
is expected to be completed in the Postfix 2.10 development cycle.
|
||||
|
||||
[Feature 20111209] memcache lookup and update support. This provides
|
||||
a way to share postscreen(8) or verify(8) caches between Postfix
|
||||
instances.
|
||||
|
||||
[Feature 20110228] postscreen(8) support to force remote SMTP clients
|
||||
to implement proper MX lookup policy. By listening on both primary
|
||||
and backup MX addresses, postscreen(8) can deny the temporary
|
||||
whitelist status to clients that connect only to backup MX hosts,
|
||||
and prevent them from talking to a Postfix SMTP server process.
|
||||
|
||||
Example: when 1.2.3.4 is a local backup IP address, specify
|
||||
"postscreen_whitelist_interfaces = !1.2.3.4 static:all".
|
||||
|
||||
Major changes - tls
|
||||
-------------------
|
||||
|
||||
[Incompat 20111205] Postfix now logs the result of successful TLS
|
||||
negotiation with TLS logging levels of 0. See the smtp_tls_loglevel
|
||||
and smtpd_tls_loglevel descriptions in the postconf(5) manpage for
|
||||
other minor differences.
|
||||
|
||||
[Feature 20111205] Support for TLS public key fingerprint matching
|
||||
in the Postfix SMTP client (in smtp_tls_policy_maps) and server (in
|
||||
check_ccert access maps). Public key fingerprints are inherently
|
||||
more specific than fingerprints over the entire certificate.
|
||||
|
||||
[Feature 20111205] Revision of Postfix TLS logging. The main
|
||||
difference is that Postfix now logs the result of successful TLS
|
||||
negotiation with TLS logging levels of 0. See the smtp_tls_loglevel
|
||||
and smtpd_tls_loglevel descriptions in the postconf(5) manpage for
|
||||
other minor differences.
|
||||
|
||||
Major changes - sasl authentication
|
||||
-----------------------------------
|
||||
|
||||
[Incompat 20111218] To support external SASL authentication, e.g.,
|
||||
in an NGINX proxy daemon, the Postfix SMTP server now always checks
|
||||
the smtpd_sender_login_maps table, even without having
|
||||
"smtpd_sasl_auth_enable = yes" in main.cf.
|
||||
|
||||
[Feature 20111218] Support for external SASL authentication via the
|
||||
XCLIENT command. This is used to accept SASL authentication from
|
||||
an SMTP proxy such as NGINX. This support works even without having
|
||||
to specify "smtpd_sasl_auth_enable = yes" in main.cf.
|
||||
|
||||
[Incompat 20111106] To work around broken remote SMTP servers, the
|
||||
Postfix SMTP client by default no longer appends the "AUTH=<>"
|
||||
option to the MAIL FROM command. Specify "smtp_send_dummy_mail_auth
|
||||
= yes" to restore the old behavior.
|
||||
|
||||
Major changes - large file support
|
||||
----------------------------------
|
||||
|
||||
[Feature 20110219] Postfix now uses long integers for message_size_limit,
|
||||
mailbox_size_limit and virtual_mailbox_limit. On LP64 systems (64-bit
|
||||
long and pointer, but 32-bit integer), these limits can now exceed
|
||||
2GB.
|
||||
|
||||
Major changes - ipv6
|
||||
--------------------
|
||||
|
||||
[Incompat 20110918] The following changes were made in default
|
||||
settings, in preparation for general availability of IPv6:
|
||||
|
||||
- The default inet_protocols value is now "all" instead of "ipv4",
|
||||
meaning use both IPv4 and IPv6.
|
||||
|
||||
To avoid an unexpected loss of performance for sites without
|
||||
global IPv6 connectivity, the commands "make upgrade" and "postfix
|
||||
upgrade-configuration" now append "inet_protocols = ipv4" to
|
||||
main.cf when no explicit inet_protocols setting is already present.
|
||||
This workaround will be removed in a future release.
|
||||
|
||||
- The default smtp_address_preference value is now "any" instead
|
||||
of "ipv6", meaning choose randomly between IPv6 and IPv4. With
|
||||
this the Postfix SMTP client will have more success delivering
|
||||
mail to sites that have problematic IPv6 configurations.
|
||||
|
||||
Major changes - address verification
|
||||
------------------------------------
|
||||
|
||||
[Feature 20111211] The proxymap(8) server can now be used to share
|
||||
postscreen(8) or verify(8) caches between Postfix instances. Support
|
||||
for proxymap-over-TCP, to share a Postfix database between hosts,
|
||||
is expected to be completed in the Postfix 2.10 development cycle.
|
||||
|
||||
[Feature 20111209] memcache lookup and update support. This provides
|
||||
a way to share postscreen(8) or verify(8) caches between Postfix
|
||||
instances.
|
||||
|
||||
[Feature 20111203] Support for time-dependent sender addresses
|
||||
of address verification probes. The default address, double-bounce,
|
||||
may end up on spammer blacklists. Although Postfix discards mail
|
||||
for this address, such mail still uses up network bandwidth and
|
||||
server resources. Specify an address_verify_sender_ttl value of
|
||||
several hours or more to frustrate address harvesting.
|
||||
|
||||
Major changes - session transcript notification
|
||||
-----------------------------------------------
|
||||
|
||||
[Incompat 20120114] By default the Postfix SMTP server no longer
|
||||
reports transcripts of sessions where a client command is rejected
|
||||
because a lookup table is unavailable. Postfix now implements gradual
|
||||
degradation, for example, the SMTP server keeps running instead of
|
||||
terminating with a fatal error. This change in error handling would
|
||||
result in a very large number of "transcript of session" email
|
||||
notifications when an LDAP or *SQL server goes down).
|
||||
|
||||
To receive such reports, add the new "data" class to the notify_classes
|
||||
parameter value. The reports will be sent to the error_notice_recipient
|
||||
address as before. This class is also used by the Postfix SMTP
|
||||
client to report about sessions that fail because a table is
|
||||
unavailable.
|
||||
|
||||
Major changes - logging
|
||||
----------------------------------------
|
||||
|
||||
[Incompat 20120114] Logfile-based alerting systems may need to be
|
||||
updated to look for "error" messages in addition to "fatal" messages.
|
||||
Specify "daemon_table_open_error_is_fatal = yes" to get the historical
|
||||
behavior (immediate termination with "fatal" message).
|
||||
|
||||
[Incompat 20111214] Logfile-based analysis tools may need to be
|
||||
updated. The submission and smtps examples in the sample master.cf
|
||||
file were updated to make their logging easier to distinguish.
|
||||
|
||||
See the source file pflogsumm_quickfix.txt for a "quick fix".
|
||||
|
||||
[Incompat 20111205] Postfix now logs the result of successful TLS
|
||||
negotiation with TLS logging levels of 0. See the smtp_tls_loglevel
|
||||
and smtpd_tls_loglevel descriptions in the postconf(5) manpage for
|
||||
other minor differences.
|
||||
|
||||
[Incompat 20110219] The Postfix SMTP and QMQP servers now log
|
||||
"hostname X does not resolve to address Y", when a "reverse hostname"
|
||||
lookup result does not resolve to the client IP address. Until now
|
||||
these servers logged "Y: hostname X verification failed" or "Y:
|
||||
address not listed for hostname X" which people found confusing.
|
||||
|
|
|
@ -29,13 +29,17 @@ Example:
|
|||
permissive = permit
|
||||
|
||||
smtpd_recipient_restrictions =
|
||||
permit_mynetworks
|
||||
reject_unauth_destination
|
||||
check_recipient_access hash:/etc/postfix/recipient_access
|
||||
permit_mynetworks
|
||||
# reject_unauth_destination is not needed here if the mail
|
||||
# relay policy is specified with smtpd_relay_restrictions
|
||||
# (available with Postfix 2.10 and later).
|
||||
reject_unauth_destination
|
||||
check_recipient_access hash:/etc/postfix/recipient_access
|
||||
...
|
||||
|
||||
/etc/postfix/recipient_access:
|
||||
joe@my.domain permissive
|
||||
jane@my.domain restrictive
|
||||
joe@my.domain permissive
|
||||
jane@my.domain restrictive
|
||||
|
||||
With this in place, you can use "restrictive" or "permissive" on the right-hand
|
||||
side of your per-client, helo, sender, or recipient SMTPD access tables.
|
||||
|
@ -63,6 +67,7 @@ SMTP client IP address, and therefore is subject to IP spoofing.
|
|||
|
||||
/etc/postfix/main.cf:
|
||||
smtpd_recipient_restrictions =
|
||||
...
|
||||
check_recipient_access hash:/etc/postfix/access
|
||||
...the usual stuff...
|
||||
|
||||
|
@ -88,6 +93,7 @@ subject to SMTP sender spoofing.
|
|||
|
||||
/etc/postfix/main.cf:
|
||||
smtpd_recipient_restrictions =
|
||||
...
|
||||
check_recipient_access hash:/etc/postfix/protected_destinations
|
||||
...the usual stuff...
|
||||
|
||||
|
@ -131,6 +137,7 @@ The example assumes DB/DBM files, but this could also be done with LDAP or SQL.
|
|||
|
||||
/etc/postfix/main.cf:
|
||||
smtpd_recipient_restrictions =
|
||||
...
|
||||
check_sender_access hash:/etc/postfix/restricted_senders
|
||||
...other stuff...
|
||||
|
||||
|
|
|
@ -55,7 +55,8 @@ different steps:
|
|||
addresses the client may use.
|
||||
|
||||
Successful authentication in the Postfix SMTP server requires a functional SASL
|
||||
framework. Configuring SASL should therefore always be the first step.
|
||||
framework. Configuring SASL should therefore always be the first step, before
|
||||
configuring Postfix.
|
||||
|
||||
You can read more about the following topics:
|
||||
|
||||
|
@ -832,17 +833,26 @@ These permissions are not enabled by default.
|
|||
|
||||
MMaaiill rreellaayy aauutthhoorriizzaattiioonn
|
||||
|
||||
The permit_sasl_authenticated restriction allows SASL-authenticated SMTP
|
||||
clients to send mail to remote destinations. Add it to the list of
|
||||
smtpd_recipient_restrictions as follows:
|
||||
With permit_sasl_authenticated the Postfix SMTP server can allow SASL-
|
||||
authenticated SMTP clients to send mail to remote destinations. Examples:
|
||||
|
||||
# With Postfix 2.10 and later, the mail relay policy is
|
||||
# preferably specified under smtpd_relay_restrictions.
|
||||
/etc/postfix/main.cf:
|
||||
smtpd_relay_restrictions =
|
||||
permit_mynetworks
|
||||
ppeerrmmiitt__ssaassll__aauutthheennttiiccaatteedd
|
||||
reject_unauth_destination
|
||||
|
||||
# Older configurations combine relay control and spam control under
|
||||
# smtpd_recipient_restrictions. To use this example with Postfix >=
|
||||
# 2.10 specify "smtpd_relay_restrictions=".
|
||||
/etc/postfix/main.cf:
|
||||
smtpd_recipient_restrictions =
|
||||
...
|
||||
permit_mynetworks
|
||||
ppeerrmmiitt__ssaassll__aauutthheennttiiccaatteedd
|
||||
reject_unauth_destination
|
||||
...
|
||||
permit_mynetworks
|
||||
ppeerrmmiitt__ssaassll__aauutthheennttiiccaatteedd
|
||||
reject_unauth_destination
|
||||
...other rules...
|
||||
|
||||
EEnnvveellooppee sseennddeerr aaddddrreessss aauutthhoorriizzaattiioonn
|
||||
|
||||
|
@ -862,9 +872,7 @@ authenticated client is allowed to use a particular envelope sender address:
|
|||
smtpd_recipient_restrictions =
|
||||
...
|
||||
rreejjeecctt__sseennddeerr__llooggiinn__mmiissmmaattcchh
|
||||
permit_sasl_authenticated
|
||||
permit_mynetworks
|
||||
reject_unauth_destination
|
||||
permit_sasl_authenticated
|
||||
...
|
||||
|
||||
The controlled_envelope_senders table specifies the binding between a sender
|
||||
|
@ -1209,7 +1217,7 @@ example. Information sent by the client (that is, you) is shown in bboolldd
|
|||
250-STARTTLS
|
||||
...
|
||||
|
||||
Instead of port 25 (smtp), specify port 587 (submission) where appriopriate.
|
||||
Instead of port 25 (smtp), specify port 587 (submission) where appropriate.
|
||||
|
||||
EEnnccrryypptteedd SSMMTTPP sseessssiioonn ((TTLLSS))
|
||||
|
||||
|
|
|
@ -27,10 +27,18 @@ abused systems end up on anti-spammer blacklists. 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.
|
||||
Postfix forwards mail only from clients in trusted networks, or to domains that
|
||||
are configured as authorized relay destinations. For a description of the
|
||||
default policy, see the smtpd_recipient_restrictions parameter in the postconf
|
||||
(5) manual page, and the information that is referenced from there.
|
||||
Postfix forwards mail only from clients in trusted networks, from clients that
|
||||
have authenticated with SASL, or to domains that are configured as authorized
|
||||
relay destinations. For a description of the default mail relay policy, see the
|
||||
smtpd_relay_restrictions parameter in the postconf(5) manual page, and the
|
||||
information that is referenced from there.
|
||||
|
||||
NOTE: Postfix versions before 2.10 did not have smtpd_relay_restrictions.
|
||||
They combined the mail relay and spam blocking policies, under
|
||||
smtpd_recipient_restrictions. This could lead to unexpected results. For
|
||||
example, a permissive spam blocking policy could unexpectedly result in a
|
||||
permissive mail relay policy. An example of this is documented under
|
||||
"Dangerous use of smtpd_recipient_restrictions".
|
||||
|
||||
Most of the Postfix SMTP server access controls are targeted at stopping junk
|
||||
email.
|
||||
|
@ -123,8 +131,23 @@ Examples of simple restriction lists are:
|
|||
# Don't accept mail from domains that don't exist.
|
||||
smtpd_sender_restrictions = reject_unknown_sender_domain
|
||||
|
||||
# Whitelisting: local clients may specify any destination domain.
|
||||
smtpd_recipient_restrictions = permit_mynetworks, reject_unauth_destination
|
||||
# Relay control (Postfix 2.10 and later): local clients and
|
||||
# authenticated clients may specify any destination domain.
|
||||
smtpd_relay_restrictions = permit_mynetworks,
|
||||
permit_sasl_authenticated,
|
||||
reject_unauth_destination
|
||||
|
||||
# Spam control: exclude local clients and authenticated clients
|
||||
# from DNSBL lookups.
|
||||
smtpd_recipient_restrictions = permit_mynetworks,
|
||||
permit_sasl_authenticated,
|
||||
# reject_unauth_destination is not needed here if the mail
|
||||
# relay policy is specified under smtpd_relay_restrictions
|
||||
# (available with Postfix 2.10 and later).
|
||||
reject_unauth_destination
|
||||
reject_rbl_client zen.spamhaus.org,
|
||||
reject_rhsbl_helo dbl.spamhaus.org,
|
||||
reject_rhsbl_sender dbl.spamhaus.org
|
||||
|
||||
# Block clients that speak too early.
|
||||
smtpd_data_restrictions = reject_unauth_pipelining
|
||||
|
@ -143,23 +166,52 @@ The table below summarizes the purpose of each SMTP access restriction list.
|
|||
All lists use the exact same syntax; they differ only in the time of evaluation
|
||||
and in the effect of a REJECT or DEFER result.
|
||||
|
||||
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
|
||||
|RReessttrriiccttiioonn lliisstt nnaammee |SSttaattuuss |EEffffeecctt ooff RREEJJEECCTT oorr DDEEFFEERR rreessuulltt|
|
||||
|_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _|_ _ _ _ _ _ _ _ _|_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ |
|
||||
|smtpd_client_restrictions |Optional|Reject all client commands |
|
||||
|_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _|_ _ _ _ _ _ _ _ _|_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ |
|
||||
|smtpd_helo_restrictions |Optional|Reject HELO/EHLO information |
|
||||
|_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _|_ _ _ _ _ _ _ _ _|_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ |
|
||||
|smtpd_sender_restrictions |Optional|Reject MAIL FROM information |
|
||||
|_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _|_ _ _ _ _ _ _ _ _|_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ |
|
||||
|smtpd_recipient_restrictions |Required|Reject RCPT TO information |
|
||||
|_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _|_ _ _ _ _ _ _ _ _|_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ |
|
||||
|smtpd_data_restrictions |Optional|Reject DATA command |
|
||||
|_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _|_ _ _ _ _ _ _ _ _|_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ |
|
||||
|smtpd_end_of_data_restrictions|Optional|Reject END-OF-DATA command |
|
||||
|_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _|_ _ _ _ _ _ _ _ _|_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ |
|
||||
|smtpd_etrn_restrictions |Optional|Reject ETRN command |
|
||||
|_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _|_ _ _ _ _ _ _ _ _|_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ |
|
||||
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
|
||||
| | | |EEffffeecctt ooff |
|
||||
|RReessttrriiccttiioonn lliisstt nnaammee |VVeerrssiioonn|SSttaattuuss |RREEJJEECCTT oorr |
|
||||
| | | |DDEEFFEERR |
|
||||
| | | |rreessuulltt |
|
||||
|_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _|_ _ _ _ _ _ _ _|_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _|_ _ _ _ _ _ _ _ _ _ _ |
|
||||
| | | |Reject all |
|
||||
|smtpd_client_restrictions |All |Optional |client |
|
||||
| | | |commands |
|
||||
|_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _|_ _ _ _ _ _ _ _|_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _|_ _ _ _ _ _ _ _ _ _ _ |
|
||||
| | | |Reject |
|
||||
|smtpd_helo_restrictions |All |Optional |HELO/EHLO |
|
||||
| | | |information|
|
||||
|_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _|_ _ _ _ _ _ _ _|_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _|_ _ _ _ _ _ _ _ _ _ _ |
|
||||
| | | |Reject MAIL|
|
||||
|smtpd_sender_restrictions |All |Optional |FROM |
|
||||
| | | |information|
|
||||
|_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _|_ _ _ _ _ _ _ _|_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _|_ _ _ _ _ _ _ _ _ _ _ |
|
||||
| | |Required if | |
|
||||
| |>= 2.10|smtpd_recipient_restrictions| |
|
||||
| | |does not enforce relay |Reject RCPT|
|
||||
|smtpd_relay_restrictions | |policy |TO |
|
||||
| |_ _ _ _ _ _ _ _|_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ |information|
|
||||
| | | | |
|
||||
| |< 2.10 |Not available | |
|
||||
| | | | |
|
||||
|_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _|_ _ _ _ _ _ _ _|_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _|_ _ _ _ _ _ _ _ _ _ _ |
|
||||
| | |Required if | |
|
||||
| |>= 2.10|smtpd_relay_restrictions | |
|
||||
| | |does not enforce relay |Reject RCPT|
|
||||
|smtpd_recipient_restrictions | |policy |TO |
|
||||
| |_ _ _ _ _ _ _ _|_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ |information|
|
||||
| | | | |
|
||||
| |< 2.10 |Required | |
|
||||
| | | | |
|
||||
|_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _|_ _ _ _ _ _ _ _|_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _|_ _ _ _ _ _ _ _ _ _ _ |
|
||||
|smtpd_data_restrictions |>= 2.0 |Optional |Reject DATA|
|
||||
| | | |command |
|
||||
|_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _|_ _ _ _ _ _ _ _|_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _|_ _ _ _ _ _ _ _ _ _ _ |
|
||||
| | | |Reject END-|
|
||||
|smtpd_end_of_data_restrictions|>= 2.2 |Optional |OF-DATA |
|
||||
| | | |command |
|
||||
|_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _|_ _ _ _ _ _ _ _|_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _|_ _ _ _ _ _ _ _ _ _ _ |
|
||||
|smtpd_etrn_restrictions |All |Optional |Reject ETRN|
|
||||
| | | |command |
|
||||
|_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _|_ _ _ _ _ _ _ _|_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _|_ _ _ _ _ _ _ _ _ _ _ |
|
||||
|
||||
DDeellaayyeedd eevvaalluuaattiioonn ooff SSMMTTPP aacccceessss rreessttrriiccttiioonn lliissttss
|
||||
|
||||
|
@ -174,9 +226,9 @@ Current Postfix versions postpone the evaluation of client, helo and sender
|
|||
restriction lists until the RCPT TO or ETRN command. This behavior is
|
||||
controlled by the smtpd_delay_reject parameter. Restriction lists are still
|
||||
evaluated in the proper order of (client, helo, etrn) or (client, helo, sender,
|
||||
recipient, data, or end-of-data) restrictions. When a restriction list
|
||||
(example: client) evaluates to REJECT or DEFER the other restriction lists
|
||||
(example: helo, sender, etc.) are skipped.
|
||||
relay, recipient, data, or end-of-data) restrictions. When a restriction list
|
||||
(example: client) evaluates to REJECT or DEFER the restriction lists that
|
||||
follow (example: helo, sender, etc.) are skipped.
|
||||
|
||||
Around the time that smtpd_delay_reject was introduced, Postfix was also
|
||||
changed to support mixed restriction lists that combine information about the
|
||||
|
@ -215,6 +267,12 @@ REJECT or DEFER, the recipient address is rejected; no surprises here. If the
|
|||
result is PERMIT, then the recipient address is accepted. And this is where
|
||||
surprises can happen.
|
||||
|
||||
The problem is that Postfix versions before 2.10 did not have
|
||||
smtpd_relay_restrictions. They combined the mail relay and spam blocking
|
||||
policies, under smtpd_recipient_restrictions. The result is that a permissive
|
||||
spam blocking policy could unexpectedly result in a permissive mail relay
|
||||
policy.
|
||||
|
||||
Here is an example that shows when a PERMIT result can result in too much
|
||||
access permission:
|
||||
|
||||
|
@ -223,7 +281,7 @@ access permission:
|
|||
3 permit_mynetworks
|
||||
4 check_helo_access hash:/etc/postfix/helo_access
|
||||
5 reject_unknown_helo_hostname
|
||||
6 reject_unauth_destination
|
||||
6 rreejjeecctt__uunnaauutthh__ddeessttiinnaattiioonn
|
||||
7
|
||||
8 /etc/postfix/helo_access:
|
||||
9 localhost.localdomain PERMIT
|
||||
|
@ -237,12 +295,26 @@ The problem with this configuration is that smtpd_recipient_restrictions
|
|||
evaluates to PERMIT for EVERY host that announces itself as
|
||||
"localhost.localdomain", making Postfix an open relay for all such hosts.
|
||||
|
||||
In order to avoid surprises like these with smtpd_recipient_restrictions, you
|
||||
should place non-recipient restrictions AFTER the reject_unauth_destination
|
||||
restriction, not before. In the above example, the HELO based restrictions
|
||||
should be placed AFTER reject_unauth_destination, or better, the HELO based
|
||||
restrictions should be placed under smtpd_helo_restrictions where they can do
|
||||
no harm.
|
||||
With Postfix before version 2.10 you should place non-recipient restrictions
|
||||
AFTER the reject_unauth_destination restriction, not before. In the above
|
||||
example, the HELO based restrictions should be placed AFTER
|
||||
reject_unauth_destination, or better, the HELO based restrictions should be
|
||||
placed under smtpd_helo_restrictions where they can do no harm.
|
||||
|
||||
1 /etc/postfix/main.cf:
|
||||
2 smtpd_recipient_restrictions =
|
||||
3 permit_mynetworks
|
||||
4 rreejjeecctt__uunnaauutthh__ddeessttiinnaattiioonn
|
||||
5 check_helo_access hash:/etc/postfix/helo_access
|
||||
6 reject_unknown_helo_hostname
|
||||
7
|
||||
8 /etc/postfix/helo_access:
|
||||
9 localhost.localdomain PERMIT
|
||||
|
||||
The above mistake will not happen with Postfix 2.10 and later, when the relay
|
||||
policy is specified under smtpd_relay_restrictions, and the spam blocking
|
||||
policy under smtpd_recipient_restrictions. Then, a permissive spam blocking
|
||||
policy will not result in a permissive mail relay policy.
|
||||
|
||||
SSMMTTPP aacccceessss rruullee tteessttiinngg
|
||||
|
||||
|
@ -256,14 +328,18 @@ soft_bounce
|
|||
changing all 5xx SMTP reply codes into 4xx.
|
||||
|
||||
warn_if_reject
|
||||
This is a different safety net that changes SMTP server REJECT actions into
|
||||
warnings. Instead of rejecting a command, Postfix logs what it would
|
||||
reject. Specify "warn_if_reject" in an SMTP access restriction list, before
|
||||
the restriction that you want to test without actually rejecting mail.
|
||||
When placed before a reject-type restriction, access table query, or
|
||||
check_policy_service query, this logs a "reject_warning" message instead of
|
||||
rejecting a request (when a reject-type restriction fails due to a
|
||||
temporary error, this logs a "reject_warning" message for any implicit
|
||||
"defer_if_permit" actions that would normally prevent mail from being
|
||||
accepted by some later access restriction). This feature has no effect on
|
||||
defer_if_reject restrictions.
|
||||
|
||||
XCLIENT
|
||||
With this Postfix 2.1 feature, authorized SMTP clients can impersonate
|
||||
other systems, so that you can do realistic SMTP access rule tests.
|
||||
Examples of how to impersonate other systems for access rule testing are
|
||||
given at the end of the XCLIENT_README document.
|
||||
With this feature, an authorized SMTP client can impersonate other systems
|
||||
and perform realistic SMTP access rule tests. Examples of how to
|
||||
impersonate other systems for access rule testing are given at the end of
|
||||
the XCLIENT_README document.
|
||||
This feature is available in Postfix 2.1.
|
||||
|
||||
|
|
|
@ -206,6 +206,10 @@ NOTES:
|
|||
"connection refused" and other problems when you increase the smtpd process
|
||||
limit.
|
||||
|
||||
* Line 8: reject_unauth_destination is not needed here if the mail relay
|
||||
policy is specified with smtpd_relay_restrictions (available with Postfix
|
||||
2.10 and later).
|
||||
|
||||
* Lines 8, 9: always specify "check_policy_service" AFTER
|
||||
"reject_unauth_destination" or else your system could become an open relay.
|
||||
|
||||
|
@ -221,7 +225,8 @@ NOTES:
|
|||
(in the above example, "policy") and a built-in suffix (in the above
|
||||
example: "_time_limit").
|
||||
|
||||
* Solaris UNIX-domain sockets do not work reliably. Use TCP sockets instead:
|
||||
* With Solaris < 9, or Postfix < 2.10 on any Solaris version, use TCP sockets
|
||||
instead of UNIX-domain sockets:
|
||||
|
||||
1 /etc/postfix/master.cf:
|
||||
2 127.0.0.1:9998 inet n n n - 0 spawn
|
||||
|
@ -323,14 +328,19 @@ Notes:
|
|||
it. See the spawn(8) manpage for more information about the
|
||||
transport_time_limit parameter.
|
||||
|
||||
* Line 9: reject_unauth_destination is not needed here if the mail relay
|
||||
policy is specified with smtpd_relay_restrictions (available with Postfix
|
||||
2.10 and later).
|
||||
|
||||
Note: the "greylist_time_limit" parameter will not show up in
|
||||
"postconf" command output before Postfix version 2.9. This limitation
|
||||
applies to many parameters whose name is a combination of a master.cf
|
||||
service name (in the above example, "greylist") and a built-in suffix
|
||||
(in the above example: "_time_limit").
|
||||
|
||||
On Solaris you must use inet: style sockets instead of unix: style, as detailed
|
||||
in the "Policy client/server configuration" section above.
|
||||
With Solaris < 9, or Postfix < 2.10 on any Solaris version, use inet: style
|
||||
sockets instead of unix: style, as detailed in the "Policy client/server
|
||||
configuration" section above.
|
||||
|
||||
1 /etc/postfix/master.cf:
|
||||
2 127.0.0.1:9998 inet n n n - 0 spawn
|
||||
|
@ -369,8 +379,13 @@ filtering/sender-domain-validate.in.
|
|||
|
||||
NOTES:
|
||||
|
||||
* Line 9: On Solaris you must use inet: style sockets instead of unix: style,
|
||||
as detailed in the "Example: greylist policy server" section above.
|
||||
* Line 9: On Solaris < 9, or Postfix < 2.10 on any Solaris version, use inet:
|
||||
style sockets instead of unix: style, as detailed in the "Example: greylist
|
||||
policy server" section above.
|
||||
|
||||
* Line 5: reject_unauth_destination is not needed here if the mail relay
|
||||
policy is specified with smtpd_relay_restrictions (available with Postfix
|
||||
2.10 and later).
|
||||
|
||||
* Line 6: Be sure to specify "check_sender_access" AFTER
|
||||
"reject_unauth_destination" or else your system could become an open mail
|
||||
|
@ -407,8 +422,13 @@ avoids most of the delays and most of the database pollution problem.
|
|||
|
||||
NOTES:
|
||||
|
||||
* Line 7: On Solaris you must use inet: style sockets instead of unix: style,
|
||||
as detailed in the "Example: greylist policy server" section above.
|
||||
* Line 7: On Solaris < 9, or Postfix < 2.10 on any Solaris version, use inet:
|
||||
style sockets instead of unix: style, as detailed in the "Example: greylist
|
||||
policy server" section above.
|
||||
|
||||
* Line 5: reject_unauth_destination is not needed here if the mail relay
|
||||
policy is specified with smtpd_relay_restrictions (available with Postfix
|
||||
2.10 and later).
|
||||
|
||||
* Lines 6-7: Be sure to specify check_sender_access and check_policy_service
|
||||
AFTER reject_unauth_destination or else your system could become an open
|
||||
|
|
|
@ -125,8 +125,8 @@ This is configured by editing the master.cf file:
|
|||
smtp inet n - n - 20 smtpd
|
||||
-o smtpd_proxy_filter=127.0.0.1:10025
|
||||
-o smtpd_client_connection_count_limit=10
|
||||
# Postfix 2.7 and later performance feature.
|
||||
# -o smtpd_proxy_options=speed_adjust
|
||||
# Postfix 2.7 and later performance feature.
|
||||
# -o smtpd_proxy_options=speed_adjust
|
||||
#
|
||||
# After-filter SMTP server. Receive mail from the content filter
|
||||
# on localhost port 10026.
|
||||
|
@ -136,6 +136,8 @@ This is configured by editing the master.cf file:
|
|||
-o smtpd_client_restrictions=
|
||||
-o smtpd_helo_restrictions=
|
||||
-o smtpd_sender_restrictions=
|
||||
# Postfix 2.10 and later: specify empty smtpd_relay_restrictions.
|
||||
-o smtpd_relay_restrictions=
|
||||
-o smtpd_recipient_restrictions=permit_mynetworks,reject
|
||||
-o smtpd_data_restrictions=
|
||||
-o mynetworks=127.0.0.0/8
|
||||
|
|
|
@ -63,32 +63,38 @@ the network, and it does not deliver any mail locally. A null client typically
|
|||
uses POP, IMAP or NFS for mailbox access.
|
||||
|
||||
In this example we assume that the Internet domain name is "example.com" and
|
||||
that the machine is named "nullclient.example.com". As usual, the examples show
|
||||
that the machine is named "hostname.example.com". As usual, the examples show
|
||||
only parameters that are not left at their default settings.
|
||||
|
||||
1 /etc/postfix/main.cf:
|
||||
2 myorigin = $mydomain
|
||||
3 relayhost = $mydomain
|
||||
4 inet_interfaces = loopback-only
|
||||
5 local_transport = error:local delivery is disabled
|
||||
6
|
||||
7 /etc/postfix/master.cf:
|
||||
8 Comment out the local delivery agent entry
|
||||
2 myhostname = hostname.example.com
|
||||
3 myorigin = $mydomain
|
||||
4 relayhost = $mydomain
|
||||
5 inet_interfaces = loopback-only
|
||||
6 mydestination =
|
||||
|
||||
Translation:
|
||||
|
||||
* Line 2: Send mail as "user@example.com" (instead of
|
||||
"user@nullclient.example.com"), so that nothing ever has a reason to send
|
||||
mail to "user@nullclient.example.com".
|
||||
* Line 2: Set myhostname to hostname.example.com, in case the machine name
|
||||
isn't set to a fully-qualified domain name (use the command "postconf -
|
||||
d myhostname" to find out what the machine name is).
|
||||
|
||||
* Line 3: Forward all mail to the mail server that is responsible for the
|
||||
* Line 2: The myhostname value also provides the default value for the
|
||||
mydomain parameter (here, "mydomain = example.com").
|
||||
|
||||
* Line 3: Send mail as "user@example.com" (instead of
|
||||
"user@hostname.example.com"), so that nothing ever has a reason to send
|
||||
mail to "user@hostname.example.com".
|
||||
|
||||
* Line 4: Forward all mail to the mail server that is responsible for the
|
||||
"example.com" domain. This prevents mail from getting stuck on the null
|
||||
client if it is turned off while some remote destination is unreachable.
|
||||
Specify a real hostname here if your "example.com" domain has no MX record.
|
||||
|
||||
* Line 4: Do not accept mail from the network.
|
||||
* Line 5: Do not accept mail from the network.
|
||||
|
||||
* Lines 5-8: Disable local mail delivery. All mail goes to the mail server as
|
||||
specified in line 3.
|
||||
* Line 6: Disable local mail delivery. All mail goes to the mail server as
|
||||
specified in line 4.
|
||||
|
||||
PPoossttffiixx oonn aa llooccaall nneettwwoorrkk
|
||||
|
||||
|
@ -242,34 +248,44 @@ purpose of the firewall email function.
|
|||
3 relay_domains = example.com
|
||||
4 parent_domain_matches_subdomains =
|
||||
5 debug_peer_list smtpd_access_maps
|
||||
6 smtpd_recipient_restrictions =
|
||||
7 permit_mynetworks reject_unauth_destination
|
||||
8
|
||||
9 relay_recipient_maps = hash:/etc/postfix/relay_recipients
|
||||
10 transport_maps = hash:/etc/postfix/transport
|
||||
11
|
||||
12 /etc/postfix/relay_recipients:
|
||||
13 user1@example.com x
|
||||
14 user2@example.com x
|
||||
15 . . .
|
||||
16
|
||||
17 /etc/postfix/transport:
|
||||
18 example.com smtp:[inside-gateway.example.com]
|
||||
|
||||
6a # Postfix 2.10 and later support separate relay control and
|
||||
7a # spam control.
|
||||
8a smtpd_relay_restrictions =
|
||||
9a permit_mynetworks reject_unauth_destination
|
||||
10a smtpd_recipient_restrictions = ...spam blocking rules....
|
||||
|
||||
6b # Older configurations combine relay control and spam control. To
|
||||
7b # use this with Postfix >= 2.10 specify "smtpd_relay_restrictions=".
|
||||
8b smtpd_recipient_restrictions =
|
||||
9b permit_mynetworks reject_unauth_destination
|
||||
10b ...spam blocking rules....
|
||||
|
||||
11 relay_recipient_maps = hash:/etc/postfix/relay_recipients
|
||||
12 transport_maps = hash:/etc/postfix/transport
|
||||
13
|
||||
14 /etc/postfix/relay_recipients:
|
||||
15 user1@example.com x
|
||||
16 user2@example.com x
|
||||
17 . . .
|
||||
18
|
||||
19 /etc/postfix/transport:
|
||||
20 example.com smtp:[inside-gateway.example.com]
|
||||
|
||||
Translation:
|
||||
|
||||
* Lines 1-7: Accept mail from local systems in $mynetworks, and accept mail
|
||||
* Lines 1-10: Accept mail from local systems in $mynetworks, and accept mail
|
||||
from outside for "user@example.com" but not for
|
||||
"user@anything.example.com". The magic is in lines 4-5.
|
||||
|
||||
* Lines 9, 12-14: Define the list of valid addresses in the "example.com"
|
||||
* Lines 11, 13-16: Define the list of valid addresses in the "example.com"
|
||||
domain that can receive mail from the Internet. This prevents the mail
|
||||
queue from filling up with undeliverable MAILER-DAEMON messages. If you
|
||||
can't maintain a list of valid recipients then you must specify
|
||||
"relay_recipient_maps =" (that is, an empty value), or you must specify an
|
||||
"@example.com x" wild-card in the relay_recipients table.
|
||||
|
||||
* Lines 10, 17-18: Route mail for "example.com" to the inside gateway
|
||||
* Lines 12, 19-20: Route mail for "example.com" to the inside gateway
|
||||
machine. The [] forces Postfix to do no MX lookup.
|
||||
|
||||
Specify ddbbmm instead of hhaasshh if your system uses ddbbmm files instead of ddbb files.
|
||||
|
@ -379,26 +395,36 @@ When your system is SECONDARY MX host for a remote site this is all you need:
|
|||
3
|
||||
4 /etc/postfix/main.cf:
|
||||
5 relay_domains = . . . the.backed-up.domain.tld
|
||||
6 smtpd_recipient_restrictions =
|
||||
7 permit_mynetworks reject_unauth_destination
|
||||
8
|
||||
9 # You must specify your NAT/proxy external address.
|
||||
10 #proxy_interfaces = 1.2.3.4
|
||||
11
|
||||
12 relay_recipient_maps = hash:/etc/postfix/relay_recipients
|
||||
|
||||
6a # Postfix 2.10 and later support separate relay control and
|
||||
7a # spam control.
|
||||
8a smtpd_relay_restrictions =
|
||||
9a permit_mynetworks reject_unauth_destination
|
||||
10a smtpd_recipient_restrictions = ...spam blocking rules....
|
||||
|
||||
6b # Older configurations combine relay control and spam control. To
|
||||
7b # use this with Postfix >= 2.10 specify "smtpd_relay_restrictions=".
|
||||
8b smtpd_recipient_restrictions =
|
||||
9b permit_mynetworks reject_unauth_destination
|
||||
10b ...spam blocking rules....
|
||||
|
||||
11 # You must specify your NAT/proxy external address.
|
||||
12 #proxy_interfaces = 1.2.3.4
|
||||
13
|
||||
14 /etc/postfix/relay_recipients:
|
||||
15 user1@the.backed-up.domain.tld x
|
||||
16 user2@the.backed-up.domain.tld x
|
||||
17 . . .
|
||||
14 relay_recipient_maps = hash:/etc/postfix/relay_recipients
|
||||
15
|
||||
16 /etc/postfix/relay_recipients:
|
||||
17 user1@the.backed-up.domain.tld x
|
||||
18 user2@the.backed-up.domain.tld x
|
||||
19 . . .
|
||||
|
||||
When your system is PRIMARY MX host for a remote site you need the above, plus:
|
||||
|
||||
18 /etc/postfix/main.cf:
|
||||
19 transport_maps = hash:/etc/postfix/transport
|
||||
20
|
||||
21 /etc/postfix/transport:
|
||||
22 the.backed-up.domain.tld relay:[their.mail.host.tld]
|
||||
20 /etc/postfix/main.cf:
|
||||
21 transport_maps = hash:/etc/postfix/transport
|
||||
22
|
||||
23 /etc/postfix/transport:
|
||||
24 the.backed-up.domain.tld relay:[their.mail.host.tld]
|
||||
|
||||
Important notes:
|
||||
|
||||
|
@ -408,20 +434,20 @@ Important notes:
|
|||
|
||||
* Do not list the.backed-up.domain.tld in virtual_mailbox_domains.
|
||||
|
||||
* Lines 1-7: Forward mail from the Internet for "the.backed-up.domain.tld" to
|
||||
* Lines 1-9: Forward mail from the Internet for "the.backed-up.domain.tld" to
|
||||
the primary MX host for that domain.
|
||||
|
||||
* Line 10: This is a must if Postfix receives mail via a NAT relay or proxy
|
||||
* Line 12: This is a must if Postfix receives mail via a NAT relay or proxy
|
||||
that presents a different IP address to the world than the local machine.
|
||||
|
||||
* Lines 12-16: Define the list of valid addresses in the "the.backed-
|
||||
* Lines 14-18: Define the list of valid addresses in the "the.backed-
|
||||
up.domain.tld" domain. This prevents your mail queue from filling up with
|
||||
undeliverable MAILER-DAEMON messages. If you can't maintain a list of valid
|
||||
recipients then you must specify "relay_recipient_maps =" (that is, an
|
||||
empty value), or you must specify an "@the.backed-up.domain.tld x" wild-
|
||||
card in the relay_recipients table.
|
||||
|
||||
* Line 22: The [] forces Postfix to do no MX lookup.
|
||||
* Line 24: The [] forces Postfix to do no MX lookup.
|
||||
|
||||
Specify ddbbmm instead of hhaasshh if your system uses ddbbmm files instead of ddbb files.
|
||||
To find out what lookup tables Postfix supports, use the command "ppoossttccoonnff --mm".
|
||||
|
|
|
@ -383,15 +383,12 @@ accept remote connections.
|
|||
|
||||
OOtthheerr mmeeaassuurreess ttoo ooffff--llooaadd zzoommbbiieess
|
||||
|
||||
OpenBSD spamd implements a daemon that handles all connections from "new"
|
||||
clients. Only well-behaved mail clients are allowed to talk to the mail server.
|
||||
Other clients are tarpitted, and will never get a chance to affect mail server
|
||||
performance.
|
||||
|
||||
At some point in the future, Postfix may come with a simple front-end daemon
|
||||
that does basic greylisting and pipelining detection to keep zombies and other
|
||||
ratware away from Postfix itself. This would use the "pass" service type which
|
||||
has been available in stable Postfix releases since Postfix 2.5.
|
||||
The postscreen(8) daemon, introduced with Postfix 2.8, provides additional
|
||||
protection against mail server overload. One postscreen(8) process handles
|
||||
multiple inbound SMTP connections, and decides which clients may to talk to a
|
||||
Postfix SMTP server process. By keeping spambots away, postscreen(8) leaves
|
||||
more SMTP server processes available for legitimate clients, and delays the
|
||||
onset of server overload conditions.
|
||||
|
||||
CCrreeddiittss
|
||||
|
||||
|
|
|
@ -77,8 +77,8 @@ When Postfix responds slowly to SMTP clients:
|
|||
|
||||
* If the number of smtpd(8) processes has reached the process limit as
|
||||
specified in master.cf, new SMTP clients must wait until a process becomes
|
||||
available. Increase the number of processes if memory permits. See the
|
||||
instructions given under "Tuning the number of Postfix processes".
|
||||
available. See the STRESS_README and POSTSCREEN_README documents for
|
||||
measures that help to prevent SMTP server overload.
|
||||
|
||||
DDooiinngg mmoorree wwoorrkk wwiitthh yyoouurr SSMMTTPP sseerrvveerr pprroocceesssseess
|
||||
|
||||
|
@ -268,12 +268,12 @@ should never be the default. They should be used only for transports that
|
|||
deliver mail to a small number of high volume domains.
|
||||
|
||||
A common situation where high concurrency is called for is on gateways relaying
|
||||
a high volume of mail from between the Internet and an intranet mail
|
||||
environment. Approximately half the mail (assuming equal volumes inbound and
|
||||
outbound) will be destined for the internal mail hubs. Since the internal mail
|
||||
hubs will be receiving all external mail exclusively from the gateway, it is
|
||||
reasonable to configure the gateway to make greater demands on the capacity of
|
||||
the internal SMTP servers.
|
||||
a high volume of mail between the Internet and an intranet mail environment.
|
||||
Approximately half the mail (assuming equal volumes inbound and outbound) will
|
||||
be destined for the internal mail hubs. Since the internal mail hubs will be
|
||||
receiving all external mail exclusively from the gateway, it is reasonable to
|
||||
configure the gateway to make greater demands on the capacity of the internal
|
||||
SMTP servers.
|
||||
|
||||
The tuning of the inbound concurrency limits need not be trial and error. A
|
||||
high volume capable mailhub should be able to easily handle 50 or 100 (rather
|
||||
|
@ -312,8 +312,8 @@ Postfix queue manager breaks up the list of recipients into smaller lists.
|
|||
Postfix will attempt to send multiple copies of the message in parallel.
|
||||
|
||||
IMPORTANT: Be careful when increasing the recipient limit per message delivery;
|
||||
some smtpd(8) servers abort the connection when they run out of memory or when
|
||||
a hard recipient limit is reached, so that the message will never be delivered.
|
||||
some SMTP servers abort the connection when they run out of memory or when a
|
||||
hard recipient limit is reached, so that the message will never be delivered.
|
||||
|
||||
The smtpd_recipient_limit parameter (default: 1000) controls how many
|
||||
recipients the Postfix smtpd(8) server will take per delivery. The default
|
||||
|
@ -400,14 +400,14 @@ client processes, 10 SMTP server processes, and so on:
|
|||
/etc/postfix/main.cf:
|
||||
default_process_limit = 10
|
||||
|
||||
You need to execute "postfix reload" to make the change effective. The limits
|
||||
are enforced by the Postfix master(8) daemon which does not automatically read
|
||||
You need to execute "postfix reload" to make the change effective. This limit
|
||||
is enforced by the Postfix master(8) daemon which does not automatically read
|
||||
main.cf when it changes.
|
||||
|
||||
You can override the process limit for specific Postfix daemons by editing the
|
||||
master.cf file. For example, if you do not wish to receive 100 SMTP messages at
|
||||
the same time, but do not want to change the process limits for local mail
|
||||
deliveries, you could specify:
|
||||
the same time, but do not want to change the process limits for other Postfix
|
||||
daemons, you could specify:
|
||||
|
||||
/etc/postfix/master.cf:
|
||||
# ====================================================================
|
||||
|
|
|
@ -138,7 +138,7 @@ The first form uses the default main.cf VERP delimiters, the second form
|
|||
overrides them explicitly. The values shown are the recommended ones.
|
||||
|
||||
You can use the smtpd_command_filter feature to append XVERP to SMTP commands
|
||||
from legacy sofware. This requires Postfix 2.7 or later.
|
||||
from legacy software. This requires Postfix 2.7 or later.
|
||||
|
||||
/etc/postfix/main.cf:
|
||||
smtpd_command_filter = pcre:/etc/postfix/append_verp.pcre
|
||||
|
|
|
@ -259,7 +259,10 @@ More details about the virtual mailbox delivery agent are given in the virtual
|
|||
NNoonn--PPoossttffiixx mmaaiillbbooxx ssttoorree:: sseeppaarraattee ddoommaaiinnss,, nnoonn--UUNNIIXX aaccccoouunnttss
|
||||
|
||||
This is a variation on the Postfix virtual mailbox example. Again, every hosted
|
||||
address can have its own mailbox.
|
||||
address can have its own mailbox. However, most parameters that control the
|
||||
virtual(8) delivery agent are no longer applicable: only
|
||||
virtual_mailbox_domains and virtual_mailbox_maps stay in effect. These
|
||||
parameters are needed to reject mail for unknown recipients.
|
||||
|
||||
While non-Postfix software is being used for final delivery, some Postfix
|
||||
concepts are still needed in order to glue everything together. For additional
|
||||
|
|
|
@ -1,33 +1,251 @@
|
|||
The stable Postfix release is called postfix-2.9.x where 2=major
|
||||
release number, 9=minor release number, x=patchlevel. The stable
|
||||
The stable Postfix release is called postfix-2.10.x where 2=major
|
||||
release number, 10=minor release number, x=patchlevel. The stable
|
||||
release never changes except for patches that address bugs or
|
||||
emergencies. Patches change the patchlevel and the release date.
|
||||
|
||||
New features are developed in snapshot releases. These are called
|
||||
postfix-2.10-yyyymmdd where yyyymmdd is the release date (yyyy=year,
|
||||
postfix-2.11-yyyymmdd where yyyymmdd is the release date (yyyy=year,
|
||||
mm=month, dd=day). Patches are never issued for snapshot releases;
|
||||
instead, a new snapshot is released.
|
||||
|
||||
The mail_release_date configuration parameter (format: yyyymmdd)
|
||||
specifies the release date of a stable release or snapshot release.
|
||||
|
||||
If you upgrade from Postfix 2.7 or earlier, read RELEASE_NOTES-2.8
|
||||
If you upgrade from Postfix 2.8 or earlier, read RELEASE_NOTES-2.9
|
||||
before proceeding.
|
||||
|
||||
Major changes with Postfix 2.9.6
|
||||
--------------------------------
|
||||
Debian Exim before 4.80-3 interoperability workaround
|
||||
-----------------------------------------------------
|
||||
|
||||
Thanks to OpenSSL documentation, the Postfix 2.9.0..2.9.5 SMTP
|
||||
client and server computed incorrect TLS certificate PUBLIC-KEY
|
||||
fingerprints. Support for certificate PUBLIC-KEY finger prints
|
||||
was introduced with Postfix 2.9; there is no known problem with the
|
||||
certificate fingerprint algorithms available since Postfix 2.2.
|
||||
Debian Exim versions before 4.80-3 may fail to communicate with
|
||||
Postfix and possibly other MTAs, with the following Exim SMTP client
|
||||
error message:
|
||||
|
||||
TLS error on connection to server-name [server-address]
|
||||
(gnutls_handshake): The Diffie-Hellman prime sent by the server
|
||||
is not acceptable (not long enough)
|
||||
|
||||
This problem may affect Debian Exim versions before 4.80-3 that use
|
||||
TLS with EDH (Ephemeral Diffie-Hellman) key exchanges. For details
|
||||
see http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=676563
|
||||
|
||||
To restore Postfix SMTP server interoperability with affected Exim
|
||||
SMTP clients, configure the Postfix SMTP server to use a 2048-bit
|
||||
prime number instead of 1024:
|
||||
|
||||
# cd /etc/postfix
|
||||
# openssl dhparam -out dh2048.pem 2048
|
||||
# postconf -e 'smtpd_tls_dh1024_param_file = ${config_directory}/dh2048.pem'
|
||||
|
||||
This change increases the CPU cost of EDH key exchanges (rarely a
|
||||
problem for SMTP servers) and is unlikely to cause problems with
|
||||
other SMTP client implementations.
|
||||
|
||||
This problem should not affect EECDH (Ephemeral Elliptic Curve
|
||||
Diffie-Hellman) key exchanges.
|
||||
|
||||
Major changes - laptop-friendliness
|
||||
-----------------------------------
|
||||
|
||||
[Incompat 20120924] Postfix no longer uses FIFOs to emulate UNIX-domain
|
||||
sockets on Solaris 9 (Vintage 2002!) and later. If you install
|
||||
Postfix for the first time on an older Solaris system, edit the
|
||||
master.cf file and replace "unix" with "fifo" for the pickup and
|
||||
qmgr services.
|
||||
|
||||
[Feature 20120924] the default master.cf file now uses "unix" instead
|
||||
of "fifo" for the pickup and qmgr services. This avoids periodic
|
||||
disk drive spin-up.
|
||||
|
||||
Major changes - permit logging
|
||||
------------------------------
|
||||
|
||||
[Feature 20120303] [Feature 20120303] New control for "permit"
|
||||
logging in smtpd_mumble_restrictions (by default, the SMTP server
|
||||
logs "reject" actions but not "permit" actions). Specify
|
||||
"smtpd_log_access_permit_actions = static:all" to log all "permit"-style
|
||||
actions, or specify a list of explicit action names. More details
|
||||
are in the postconf(5) manpage.
|
||||
|
||||
Major changes - postconf
|
||||
------------------------
|
||||
|
||||
[Incompat 20121224] The postconf command produces more warnings:
|
||||
|
||||
- An attempt to modify a read-only parameter (process_name, process_id)
|
||||
in main.cf or master.cf.
|
||||
|
||||
- An undefined $name in a parameter value in main.cf or master.cf
|
||||
(except for backwards-compatibility parameters such as $virtual_maps).
|
||||
|
||||
[Feature 20121224] The postconf command has been updated to make
|
||||
trouble-shooting (and support) easier. In summary, use "postconf
|
||||
-Mxf" and "postconf -nxf" to review master.cf and main.cf parameter
|
||||
settings with expanded parameter values.
|
||||
|
||||
- "postconf -x" now expands $name in main.cf and master.cf parameter
|
||||
values.
|
||||
|
||||
- postconf warns about attempts to modify a read-only parameter
|
||||
(process_name, process_id) in main.cf or master.cf.
|
||||
|
||||
- postconf warns about an undefined $name in a parameter value in
|
||||
main.cf or master.cf (except for backwards-compatibility parameters
|
||||
such as $virtual_maps).
|
||||
|
||||
[Feature 20121227]
|
||||
|
||||
- "postconf -o name=value" overrides main.cf parameter settings.
|
||||
This can be used, for example, to examine stress-dependent settings
|
||||
with "postconf -x -o stress=yes".
|
||||
|
||||
Major changes - postscreen
|
||||
--------------------------
|
||||
|
||||
[Incompat 20121123] The postscreen deep protocol tests now log the
|
||||
last command before a protocol error ("UNIMPLEMENTED" when the last
|
||||
command is not implemented, "CONNECT" when there was no prior
|
||||
command). The changed logfile messages are:
|
||||
|
||||
NON-SMTP COMMAND from [address]:port after command: text
|
||||
BARE NEWLINE from [address]:port after command
|
||||
COMMAND TIME LIMIT from [address]:port after command
|
||||
COMMAND COUNT LIMIT from [address]:port after command
|
||||
COMMAND LENGTH LIMIT from [address]:port after command
|
||||
|
||||
Major changes - load-balancer support
|
||||
-------------------------------------
|
||||
|
||||
[Incompat 20120625] The postscreen(8)-to-smtpd(8) protocol has
|
||||
changed. To avoid "cannot receive connection attributes" warnings
|
||||
and dropped connections, execute the command "postfix reload". No
|
||||
mail will be lost as long as the remote SMTP client tries again
|
||||
later.
|
||||
|
||||
[Feature 20120625] Support for upstream proxy agent in the postscreen(8)
|
||||
and smtpd(8) daemons. To enable the haproxy protocol, specify one
|
||||
of the following:
|
||||
|
||||
postscreen_upstream_proxy_protocol = haproxy
|
||||
smtpd_upstream_proxy_protocol = haproxy
|
||||
|
||||
Note 1: smtpd_upstream_proxy_protocol can't be used in smtpd processes
|
||||
that are behind postscreen. Configure postscreen_upstream_proxy_protocol
|
||||
instead.
|
||||
|
||||
Note 2: To use the nginx proxy with smtpd(8), enable the XCLIENT
|
||||
protocol with smtpd_authorized_xclient_hosts. This supports SASL
|
||||
authentication in the proxy agent (Postfix 2.9 and later).
|
||||
|
||||
Major changes - relay safety
|
||||
----------------------------
|
||||
|
||||
[Incompat 20130613] New smtpd_relay_restrictions parameter built-in
|
||||
default settings:
|
||||
|
||||
smtpd_relay_restrictions =
|
||||
permit_mynetworks
|
||||
permit_sasl_authenticated
|
||||
defer_unauth_destination
|
||||
|
||||
This safety net prevents open relay problems due to mistakes
|
||||
with spam filter rules in smtpd_recipient_restrictions.
|
||||
|
||||
If your site has a complex mail relay policy configured under
|
||||
smtpd_recipient_restrictions, this safety net may defer mail that
|
||||
Postfix should accept.
|
||||
|
||||
To fix this safety net, take one of the following actions:
|
||||
|
||||
- Set smtpd_relay_restrictions empty, and keep using the existing
|
||||
mail relay authorization policy in smtpd_recipient_restrictions.
|
||||
|
||||
- Copy the existing mail relay authorization policy from
|
||||
smtpd_recipient_restrictions to smtpd_relay_restrictions.
|
||||
|
||||
There is no need to change the value of smtpd_recipient_restrictions.
|
||||
|
||||
[Feature 20130613] This version introduces the smtpd_relay_restrictions
|
||||
feature for mail relay control. The new built-in default settings
|
||||
are:
|
||||
|
||||
smtpd_relay_restrictions =
|
||||
permit_mynetworks
|
||||
permit_sasl_authenticated
|
||||
defer_unauth_destination
|
||||
|
||||
smtpd_recipient_restrictions =
|
||||
( optional spam blocking rules would go here )
|
||||
|
||||
For comparison, this is the Postfix before 2.10 default:
|
||||
|
||||
smtpd_recipient_restrictions =
|
||||
permit_mynetworks
|
||||
reject_unauth_destination
|
||||
( optional spam blocking rules would go here )
|
||||
|
||||
With Postfix versions before 2.10, the mail relay policy and spam
|
||||
blocking policy were combined under smtpd_recipient_restrictions,
|
||||
resulting in error-prone configuration.
|
||||
|
||||
As of Postfix 2.10, the mail relay policy is preferably implemented
|
||||
with smtpd_relay_restrictions, so that a permissive spam blocking
|
||||
policy under smtpd_recipient_restrictions will not unexpectedly
|
||||
result in a permissive mail relay policy.
|
||||
|
||||
As of Postfix 2.10.0 the smtpd_relay_restrictions parameter built-in
|
||||
default settings are:
|
||||
|
||||
smtpd_relay_restrictions =
|
||||
permit_mynetworks
|
||||
permit_sasl_authenticated
|
||||
defer_unauth_destination
|
||||
|
||||
If your site has a complex mail relay policy configured under
|
||||
smtpd_recipient_restrictions, this safety net may defer mail that
|
||||
Postfix should accept.
|
||||
|
||||
To migrate from an earlier Postfix release with the least amount
|
||||
of pain:
|
||||
|
||||
- Set smtpd_relay_restrictions empty, and keep using the existing
|
||||
mail relay authorization policy in smtpd_recipient_restrictions.
|
||||
|
||||
- There is no need to change the value of smtpd_recipient_restrictions.
|
||||
|
||||
To take advantage of the new smtpd_relay_restrictions feature:
|
||||
|
||||
- Copy the existing mail relay authorization policy from
|
||||
smtpd_recipient_restrictions to smtpd_relay_restrictions.
|
||||
|
||||
- There is no need to change the value of smtpd_recipient_restrictions.
|
||||
|
||||
Major changes - start-up
|
||||
------------------------
|
||||
|
||||
[Feature 20120306] New master "-w" option, to wait for master daemon
|
||||
process initialization to complete. This feature returns an error
|
||||
exit status if master daemon initialization fails, or if it does
|
||||
not complete in a reasonable amount of time. The exit status is
|
||||
used by "postfix start" to provide more accurate information to
|
||||
system start-up scripts.
|
||||
|
||||
Major changes - tls
|
||||
-------------------
|
||||
|
||||
[Incompat 20130203] Thanks to OpenSSL documentation, the Postfix
|
||||
2.9.0..2.9.5 SMTP client and server server used an incorrect procedure
|
||||
to compute TLS certificate PUBLIC-KEY fingerprints (these may be
|
||||
used in the check_ccert_access and in smtp_tls_policy_maps features).
|
||||
Support for certificate PUBLIC-KEY finger prints was introduced
|
||||
with Postfix 2.9; there is no known problem with the certificate
|
||||
fingerprint algorithms available since Postfix 2.2.
|
||||
|
||||
Certificate PUBLIC-KEY finger prints may be used in the Postfix
|
||||
SMTP server (with "check_ccert_access") and in the Postfix SMTP
|
||||
client (with the "fingerprint" security level).
|
||||
|
||||
Specify "tls_legacy_public_key_fingerprints = yes" temporarily,
|
||||
Specify "tls_legacy_public_key_fingerprints = yes" temporarily,
|
||||
pending a migration from configuration files with incorrect Postfix
|
||||
2.9.0..2.9.5 certificate PUBLIC-KEY finger prints, to the correct
|
||||
fingerprints used by Postfix 2.9.6 and later.
|
||||
|
@ -44,12 +262,10 @@ $ openssl x509 -in cert.pem -noout -pubkey | \
|
|||
openssl rsa -pubin -outform DER | \
|
||||
openssl dgst -md5 -c
|
||||
|
||||
Major changes with Postfix 2.9.2
|
||||
--------------------------------
|
||||
|
||||
This release adds support to turn off the TLSv1.1 and TLSv1.2
|
||||
protocols. Introduced with OpenSSL version 1.0.1, these are known
|
||||
to cause inter-operability problems with for example hotmail.
|
||||
[Feature 20120422] This release adds support to turn off the TLSv1.1
|
||||
and TLSv1.2 protocols. Introduced with OpenSSL version 1.0.1, these
|
||||
are known to cause inter-operability problems with for example
|
||||
hotmail.
|
||||
|
||||
The radical workaround is to temporarily turn off problematic
|
||||
protocols globally:
|
||||
|
@ -80,340 +296,3 @@ Important:
|
|||
override the next-hop destination with transport_maps, relayhost,
|
||||
sender_dependent_relayhost_maps, or otherwise, you need to specify
|
||||
the same destination for the smtp_tls_policy_maps lookup key.
|
||||
|
||||
Major changes - critical
|
||||
------------------------
|
||||
|
||||
[Incompat 20110321] You need to "postfix reload" after upgrade from
|
||||
snapshot 20110320 or earlier. The hash_queue_names algorithm was
|
||||
changed to provide better performance with long queue IDs.
|
||||
|
||||
[Incompat 20110313] Use "postfix reload" after "make upgrade" on a
|
||||
running Postfix system. This is needed because the protocol between
|
||||
postscreen(8) and dnsblog(8) has changed.
|
||||
|
||||
Major changes - library API
|
||||
---------------------------
|
||||
|
||||
[Incompat 20110130] The VSTREAM error flags are now split into
|
||||
separate read and write error flags. As a result of this change,
|
||||
all programs that use Postfix VSTREAMs MUST be recompiled.
|
||||
|
||||
Major changes - compatibility
|
||||
-----------------------------
|
||||
|
||||
[Incompat 20111012] For consistency with the SMTP standard, the
|
||||
(client-side) smtp_line_length_limit default value was increased
|
||||
from 990 characters to 999 (i.e. 1000 characters including <CR><LF>).
|
||||
Specify "smtp_line_length_limit = 990" to restore historical Postfix
|
||||
behavior.
|
||||
|
||||
[Incompat 20111012] To simplify integration with third-party
|
||||
applications, the Postfix sendmail command now always transforms
|
||||
all input lines ending in <CR><LF> into UNIX format (lines ending
|
||||
in <LF>). Specify "sendmail_fix_line_endings = strict" to restore
|
||||
historical Postfix behavior (i.e. convert all input lines ending
|
||||
in <CR><LF> only if the first line ends in <CR><LF>).
|
||||
|
||||
[Incompat 20111106] To work around broken remote SMTP servers, the
|
||||
Postfix SMTP client by default no longer appends the "AUTH=<>"
|
||||
option to the MAIL FROM command. Specify "smtp_send_dummy_mail_auth
|
||||
= yes" to restore the old behavior.
|
||||
|
||||
Major changes - gradual degradation
|
||||
-----------------------------------
|
||||
|
||||
[Incompat 20120114] Logfile-based alerting systems may need to be
|
||||
updated to look for "error" messages in addition to "fatal" messages.
|
||||
Specify "daemon_table_open_error_is_fatal = yes" to get the historical
|
||||
behavior (immediate termination with "fatal" message).
|
||||
|
||||
[Feature 20120114] Instead of terminating immediately with a "fatal"
|
||||
message when a database file can't be opened, a Postfix daemon
|
||||
program now logs an "error" message, and continues execution with
|
||||
reduced functionality. For the sake of sanity, the number of
|
||||
"errors" over the life of a process is limited to 13.
|
||||
|
||||
Features that don't depend on the unavailable table will continue
|
||||
to work; attempts to use features that depend on the table will
|
||||
fail, and will be logged with a "warning" message.
|
||||
|
||||
[Feature 20120108] Instead of terminating with a fatal error, the
|
||||
LDAP, *SQL and memcache clients now handle table lookup errors in
|
||||
the "domain" feature, instead of terminating with a fatal error.
|
||||
|
||||
[Feature 20120102] Degrade gradually when some or all network
|
||||
protocols specified with inet_protocols are unavailable, instead
|
||||
of terminating with a fatal error. This eliminates build errors on
|
||||
non-standard systems where opening an IPv4 socket results in an
|
||||
error, and on non-standard systems where opening an IPv6 socket
|
||||
results in an error. In the worst case, the master daemon will log
|
||||
a message that it disables all type "inet" services. This will still
|
||||
allow local submission and local delivery.
|
||||
|
||||
[Feature 20111222] Instead of terminating with a fatal error, the
|
||||
Postfix SMTP server now handles errors with database lookups in
|
||||
mynetworks, TLS client certificate tables, debug_peer_list,
|
||||
smtpd_client_event_limit_exceptions, permit_mx_backup_networks and
|
||||
local_header_rewrite_clients, and reports "server local data error"
|
||||
or "temporary lookup error".
|
||||
|
||||
[Feature 20111229] Instead of terminating with a fatal error, the
|
||||
trivial-rewrite server now handles errors with database lookups in
|
||||
virtual_alias_domains, relay_domains, virtual_mailbox_domains. This
|
||||
means fewer occasions where trivial-rewrite clients (such as the
|
||||
SMTP server) will appear to hang.
|
||||
|
||||
Major changes - long queue IDs
|
||||
------------------------------
|
||||
|
||||
Postfix 2.9 introduces support for non-repeating queue IDs (also
|
||||
used as queue file names). These names are encoded in a mix of upper
|
||||
case, lower case and decimal digit characters. Long queue IDs are
|
||||
disabled by default to avoid breaking tools that parse logfiles and
|
||||
that expect queue IDs with the smaller [A-F0-9] character set.
|
||||
|
||||
[Incompat 20110320] If you enable support for long queue file names,
|
||||
you need to be aware that these file names are not compatible with
|
||||
Postfix <= 2.8. If you must migrate back to Postfix <= 2.8, you
|
||||
must first convert all long queue file names into short names,
|
||||
otherwise the old Postfix version will complain.
|
||||
|
||||
The conversion procedure before migration to Postfix <= 2.8 is:
|
||||
|
||||
# postfix stop
|
||||
# postconf enable_long_queue_ids=no
|
||||
# postsuper
|
||||
|
||||
Run the postsuper command repeatedly until it no longer reports
|
||||
queue file name changes.
|
||||
|
||||
[Feature 20110320] Support for long, non-repeating, queue IDs (queue
|
||||
file names). The benefit of non-repeating names is simpler logfile
|
||||
analysis, and easier queue migration (if you don't merge different
|
||||
queues, there is no need to run "postsuper" to change queue file
|
||||
names that don't match their message file inode number).
|
||||
|
||||
Specify "enable_long_queue_ids = yes" to enable the feature. This
|
||||
does not change the names of existing queue files. See postconf(5)
|
||||
or postconf.5.html#enable_long_queue_ids for a detailed description
|
||||
of the differences with the old short queue IDs.
|
||||
|
||||
This changes new Postfix queue IDs from the short form 0FCEE9247A9
|
||||
into the longer form 3Ps0FS1Zhtz1PFjb, and changes new Message-ID
|
||||
header values from YYMMDDHHMMSS.queueid@myhostname into the shorter
|
||||
form queueid@myhostname.
|
||||
|
||||
Major changes - memcache
|
||||
------------------------
|
||||
|
||||
[Feature 20111209] memcache lookup and update support. This provides
|
||||
a way to share postscreen(8) or verify(8) caches between Postfix
|
||||
instances. See MEMCACHE_README and memcache_table(5) for details
|
||||
and limitations.
|
||||
|
||||
[Feature 20111213] Support for a persistent backup database in the
|
||||
memcache client. The memcache client updates the memcache whenever
|
||||
it looks up or modifies information in the persistent database.
|
||||
|
||||
Major changes - postconf
|
||||
------------------------
|
||||
|
||||
The postconf command was restructured - it now warns about unused
|
||||
parameter name=value settings in main.cf or master.cf (likely to
|
||||
be mistakes), it now understands "dynamic" parameter names such as
|
||||
parameters whose name depends on the name of a master.cf entry, and
|
||||
it can display main.cf and master.cf in a more user-friendly format.
|
||||
|
||||
[Feature 20120117] support for legacy database parameter names
|
||||
(main.cf parameter names that are generated by prepending a suffix
|
||||
to the database name).
|
||||
|
||||
[Feature 20111118] The "postconf -M" (display master.cf) command
|
||||
now supports filtering. For example, specify "postconf -M inet"
|
||||
to display only services that listen on the network.
|
||||
|
||||
[Feature 20111113] postconf support to warn about unused "name=value"
|
||||
entries in main.cf, and about unused "-o name=value" entries in
|
||||
master.cf. This should help to eliminate common errors with mis-typed
|
||||
names.
|
||||
|
||||
[Feature 20111108] postconf support for parameter names that are
|
||||
generated automatically from master.cf entries (delivery agents,
|
||||
spawn services), and for parameter names that are defined with
|
||||
main.cf smtpd_restriction_classes.
|
||||
|
||||
[Feature 20111106] "postconf -M" support to print master.cf entries,
|
||||
and "postconf -f" support to fold long main.cf or master.cf lines
|
||||
for human readability.
|
||||
|
||||
Major changes - trickle defense
|
||||
-------------------------------
|
||||
|
||||
[Feature 20110212] Support for per-record deadlines. These change
|
||||
the behavior of Postfix timeout parameters, from a time limit per
|
||||
read or write system call, to a time limit to send or receive a
|
||||
complete record (an SMTP command line, SMTP response line, SMTP
|
||||
message content line, or TLS protocol message). This limits the
|
||||
impact from hostile peers that trickle data one byte at a time.
|
||||
|
||||
The new configuration parameters and their default settings are:
|
||||
smtpd_per_record_deadline (normal: no, overload: yes),
|
||||
smtp_per_record_deadline (no), and lmtp_per_record_deadline (no).
|
||||
|
||||
Note: when per-record deadlines are enabled, a short time limit may
|
||||
cause problems with TLS over very slow network connections. The
|
||||
reason is that a TLS protocol message can be up to 16 kbytes long
|
||||
(with TLSv1), and that an entire TLS protocol message must be sent
|
||||
or received within the per-record deadline.
|
||||
|
||||
Per-record deadlines were introduced with postscreen(8) in Postfix
|
||||
2.8. This program does not receive mail, and therefore it has no
|
||||
problems with TLS over slow connections.
|
||||
|
||||
Major changes - postscreen
|
||||
--------------------------
|
||||
|
||||
[Feature 20111211] The proxymap(8) server can now be used to share
|
||||
postscreen(8) or verify(8) caches between Postfix instances. Support
|
||||
for proxymap-over-TCP, to share a Postfix database between hosts,
|
||||
is expected to be completed in the Postfix 2.10 development cycle.
|
||||
|
||||
[Feature 20111209] memcache lookup and update support. This provides
|
||||
a way to share postscreen(8) or verify(8) caches between Postfix
|
||||
instances.
|
||||
|
||||
[Feature 20110228] postscreen(8) support to force remote SMTP clients
|
||||
to implement proper MX lookup policy. By listening on both primary
|
||||
and backup MX addresses, postscreen(8) can deny the temporary
|
||||
whitelist status to clients that connect only to backup MX hosts,
|
||||
and prevent them from talking to a Postfix SMTP server process.
|
||||
|
||||
Example: when 1.2.3.4 is a local backup IP address, specify
|
||||
"postscreen_whitelist_interfaces = !1.2.3.4 static:all".
|
||||
|
||||
Major changes - tls
|
||||
-------------------
|
||||
|
||||
[Incompat 20111205] Postfix now logs the result of successful TLS
|
||||
negotiation with TLS logging levels of 0. See the smtp_tls_loglevel
|
||||
and smtpd_tls_loglevel descriptions in the postconf(5) manpage for
|
||||
other minor differences.
|
||||
|
||||
[Feature 20111205] Support for TLS public key fingerprint matching
|
||||
in the Postfix SMTP client (in smtp_tls_policy_maps) and server (in
|
||||
check_ccert access maps). Public key fingerprints are inherently
|
||||
more specific than fingerprints over the entire certificate.
|
||||
|
||||
[Feature 20111205] Revision of Postfix TLS logging. The main
|
||||
difference is that Postfix now logs the result of successful TLS
|
||||
negotiation with TLS logging levels of 0. See the smtp_tls_loglevel
|
||||
and smtpd_tls_loglevel descriptions in the postconf(5) manpage for
|
||||
other minor differences.
|
||||
|
||||
Major changes - sasl authentication
|
||||
-----------------------------------
|
||||
|
||||
[Incompat 20111218] To support external SASL authentication, e.g.,
|
||||
in an NGINX proxy daemon, the Postfix SMTP server now always checks
|
||||
the smtpd_sender_login_maps table, even without having
|
||||
"smtpd_sasl_auth_enable = yes" in main.cf.
|
||||
|
||||
[Feature 20111218] Support for external SASL authentication via the
|
||||
XCLIENT command. This is used to accept SASL authentication from
|
||||
an SMTP proxy such as NGINX. This support works even without having
|
||||
to specify "smtpd_sasl_auth_enable = yes" in main.cf.
|
||||
|
||||
[Incompat 20111106] To work around broken remote SMTP servers, the
|
||||
Postfix SMTP client by default no longer appends the "AUTH=<>"
|
||||
option to the MAIL FROM command. Specify "smtp_send_dummy_mail_auth
|
||||
= yes" to restore the old behavior.
|
||||
|
||||
Major changes - large file support
|
||||
----------------------------------
|
||||
|
||||
[Feature 20110219] Postfix now uses long integers for message_size_limit,
|
||||
mailbox_size_limit and virtual_mailbox_limit. On LP64 systems (64-bit
|
||||
long and pointer, but 32-bit integer), these limits can now exceed
|
||||
2GB.
|
||||
|
||||
Major changes - ipv6
|
||||
--------------------
|
||||
|
||||
[Incompat 20110918] The following changes were made in default
|
||||
settings, in preparation for general availability of IPv6:
|
||||
|
||||
- The default inet_protocols value is now "all" instead of "ipv4",
|
||||
meaning use both IPv4 and IPv6.
|
||||
|
||||
To avoid an unexpected loss of performance for sites without
|
||||
global IPv6 connectivity, the commands "make upgrade" and "postfix
|
||||
upgrade-configuration" now append "inet_protocols = ipv4" to
|
||||
main.cf when no explicit inet_protocols setting is already present.
|
||||
This workaround will be removed in a future release.
|
||||
|
||||
- The default smtp_address_preference value is now "any" instead
|
||||
of "ipv6", meaning choose randomly between IPv6 and IPv4. With
|
||||
this the Postfix SMTP client will have more success delivering
|
||||
mail to sites that have problematic IPv6 configurations.
|
||||
|
||||
Major changes - address verification
|
||||
------------------------------------
|
||||
|
||||
[Feature 20111211] The proxymap(8) server can now be used to share
|
||||
postscreen(8) or verify(8) caches between Postfix instances. Support
|
||||
for proxymap-over-TCP, to share a Postfix database between hosts,
|
||||
is expected to be completed in the Postfix 2.10 development cycle.
|
||||
|
||||
[Feature 20111209] memcache lookup and update support. This provides
|
||||
a way to share postscreen(8) or verify(8) caches between Postfix
|
||||
instances.
|
||||
|
||||
[Feature 20111203] Support for time-dependent sender addresses
|
||||
of address verification probes. The default address, double-bounce,
|
||||
may end up on spammer blacklists. Although Postfix discards mail
|
||||
for this address, such mail still uses up network bandwidth and
|
||||
server resources. Specify an address_verify_sender_ttl value of
|
||||
several hours or more to frustrate address harvesting.
|
||||
|
||||
Major changes - session transcript notification
|
||||
-----------------------------------------------
|
||||
|
||||
[Incompat 20120114] By default the Postfix SMTP server no longer
|
||||
reports transcripts of sessions where a client command is rejected
|
||||
because a lookup table is unavailable. Postfix now implements gradual
|
||||
degradation, for example, the SMTP server keeps running instead of
|
||||
terminating with a fatal error. This change in error handling would
|
||||
result in a very large number of "transcript of session" email
|
||||
notifications when an LDAP or *SQL server goes down).
|
||||
|
||||
To receive such reports, add the new "data" class to the notify_classes
|
||||
parameter value. The reports will be sent to the error_notice_recipient
|
||||
address as before. This class is also used by the Postfix SMTP
|
||||
client to report about sessions that fail because a table is
|
||||
unavailable.
|
||||
|
||||
Major changes - logging
|
||||
----------------------------------------
|
||||
|
||||
[Incompat 20120114] Logfile-based alerting systems may need to be
|
||||
updated to look for "error" messages in addition to "fatal" messages.
|
||||
Specify "daemon_table_open_error_is_fatal = yes" to get the historical
|
||||
behavior (immediate termination with "fatal" message).
|
||||
|
||||
[Incompat 20111214] Logfile-based analysis tools may need to be
|
||||
updated. The submission and smtps examples in the sample master.cf
|
||||
file were updated to make their logging easier to distinguish.
|
||||
|
||||
See the source file pflogsumm_quickfix.txt for a "quick fix".
|
||||
|
||||
[Incompat 20111205] Postfix now logs the result of successful TLS
|
||||
negotiation with TLS logging levels of 0. See the smtp_tls_loglevel
|
||||
and smtpd_tls_loglevel descriptions in the postconf(5) manpage for
|
||||
other minor differences.
|
||||
|
||||
[Incompat 20110219] The Postfix SMTP and QMQP servers now log
|
||||
"hostname X does not resolve to address Y", when a "reverse hostname"
|
||||
lookup result does not resolve to the client IP address. Until now
|
||||
these servers logged "Y: hostname X verification failed" or "Y:
|
||||
address not listed for hostname X" which people found confusing.
|
||||
|
|
|
@ -0,0 +1,352 @@
|
|||
The stable Postfix release is called postfix-2.9.x where 2=major
|
||||
release number, 9=minor release number, x=patchlevel. The stable
|
||||
release never changes except for patches that address bugs or
|
||||
emergencies. Patches change the patchlevel and the release date.
|
||||
|
||||
New features are developed in snapshot releases. These are called
|
||||
postfix-2.10-yyyymmdd where yyyymmdd is the release date (yyyy=year,
|
||||
mm=month, dd=day). Patches are never issued for snapshot releases;
|
||||
instead, a new snapshot is released.
|
||||
|
||||
The mail_release_date configuration parameter (format: yyyymmdd)
|
||||
specifies the release date of a stable release or snapshot release.
|
||||
|
||||
If you upgrade from Postfix 2.7 or earlier, read RELEASE_NOTES-2.8
|
||||
before proceeding.
|
||||
|
||||
Major changes - critical
|
||||
------------------------
|
||||
|
||||
[Incompat 20110321] You need to "postfix reload" after upgrade from
|
||||
snapshot 20110320 or earlier. The hash_queue_names algorithm was
|
||||
changed to provide better performance with long queue IDs.
|
||||
|
||||
[Incompat 20110313] Use "postfix reload" after "make upgrade" on a
|
||||
running Postfix system. This is needed because the protocol between
|
||||
postscreen(8) and dnsblog(8) has changed.
|
||||
|
||||
Major changes - library API
|
||||
---------------------------
|
||||
|
||||
[Incompat 20110130] The VSTREAM error flags are now split into
|
||||
separate read and write error flags. As a result of this change,
|
||||
all programs that use Postfix VSTREAMs MUST be recompiled.
|
||||
|
||||
Major changes - compatibility
|
||||
-----------------------------
|
||||
|
||||
[Incompat 20111012] For consistency with the SMTP standard, the
|
||||
(client-side) smtp_line_length_limit default value was increased
|
||||
from 990 characters to 999 (i.e. 1000 characters including <CR><LF>).
|
||||
Specify "smtp_line_length_limit = 990" to restore historical Postfix
|
||||
behavior.
|
||||
|
||||
[Incompat 20111012] To simplify integration with third-party
|
||||
applications, the Postfix sendmail command now always transforms
|
||||
all input lines ending in <CR><LF> into UNIX format (lines ending
|
||||
in <LF>). Specify "sendmail_fix_line_endings = strict" to restore
|
||||
historical Postfix behavior (i.e. convert all input lines ending
|
||||
in <CR><LF> only if the first line ends in <CR><LF>).
|
||||
|
||||
[Incompat 20111106] To work around broken remote SMTP servers, the
|
||||
Postfix SMTP client by default no longer appends the "AUTH=<>"
|
||||
option to the MAIL FROM command. Specify "smtp_send_dummy_mail_auth
|
||||
= yes" to restore the old behavior.
|
||||
|
||||
Major changes - gradual degradation
|
||||
-----------------------------------
|
||||
|
||||
[Incompat 20120114] Logfile-based alerting systems may need to be
|
||||
updated to look for "error" messages in addition to "fatal" messages.
|
||||
Specify "daemon_table_open_error_is_fatal = yes" to get the historical
|
||||
behavior (immediate termination with "fatal" message).
|
||||
|
||||
[Feature 20120114] Instead of terminating immediately with a "fatal"
|
||||
message when a database file can't be opened, a Postfix daemon
|
||||
program now logs an "error" message, and continues execution with
|
||||
reduced functionality. For the sake of sanity, the number of
|
||||
"errors" over the life of a process is limited to 13.
|
||||
|
||||
Features that don't depend on the unavailable table will continue
|
||||
to work; attempts to use features that depend on the table will
|
||||
fail, and will be logged with a "warning" message.
|
||||
|
||||
[Feature 20120108] Instead of terminating with a fatal error, the
|
||||
LDAP, *SQL and memcache clients now handle table lookup errors in
|
||||
the "domain" feature, instead of terminating with a fatal error.
|
||||
|
||||
[Feature 20120102] Degrade gradually when some or all network
|
||||
protocols specified with inet_protocols are unavailable, instead
|
||||
of terminating with a fatal error. This eliminates build errors on
|
||||
non-standard systems where opening an IPv4 socket results in an
|
||||
error, and on non-standard systems where opening an IPv6 socket
|
||||
results in an error. In the worst case, the master daemon will log
|
||||
a message that it disables all type "inet" services. This will still
|
||||
allow local submission and local delivery.
|
||||
|
||||
[Feature 20111222] Instead of terminating with a fatal error, the
|
||||
Postfix SMTP server now handles errors with database lookups in
|
||||
mynetworks, TLS client certificate tables, debug_peer_list,
|
||||
smtpd_client_event_limit_exceptions, permit_mx_backup_networks and
|
||||
local_header_rewrite_clients, and reports "server local data error"
|
||||
or "temporary lookup error".
|
||||
|
||||
[Feature 20111229] Instead of terminating with a fatal error, the
|
||||
trivial-rewrite server now handles errors with database lookups in
|
||||
virtual_alias_domains, relay_domains, virtual_mailbox_domains. This
|
||||
means fewer occasions where trivial-rewrite clients (such as the
|
||||
SMTP server) will appear to hang.
|
||||
|
||||
Major changes - long queue IDs
|
||||
------------------------------
|
||||
|
||||
Postfix 2.9 introduces support for non-repeating queue IDs (also
|
||||
used as queue file names). These names are encoded in a mix of upper
|
||||
case, lower case and decimal digit characters. Long queue IDs are
|
||||
disabled by default to avoid breaking tools that parse logfiles and
|
||||
that expect queue IDs with the smaller [A-F0-9] character set.
|
||||
|
||||
[Incompat 20110320] If you enable support for long queue file names,
|
||||
you need to be aware that these file names are not compatible with
|
||||
Postfix <= 2.8. If you must migrate back to Postfix <= 2.8, you
|
||||
must first convert all long queue file names into short names,
|
||||
otherwise the old Postfix version will complain.
|
||||
|
||||
The conversion procedure before migration to Postfix <= 2.8 is:
|
||||
|
||||
# postfix stop
|
||||
# postconf enable_long_queue_ids=no
|
||||
# postsuper
|
||||
|
||||
Run the postsuper command repeatedly until it no longer reports
|
||||
queue file name changes.
|
||||
|
||||
[Feature 20110320] Support for long, non-repeating, queue IDs (queue
|
||||
file names). The benefit of non-repeating names is simpler logfile
|
||||
analysis, and easier queue migration (if you don't merge different
|
||||
queues, there is no need to run "postsuper" to change queue file
|
||||
names that don't match their message file inode number).
|
||||
|
||||
Specify "enable_long_queue_ids = yes" to enable the feature. This
|
||||
does not change the names of existing queue files. See postconf(5)
|
||||
or postconf.5.html#enable_long_queue_ids for a detailed description
|
||||
of the differences with the old short queue IDs.
|
||||
|
||||
This changes new Postfix queue IDs from the short form 0FCEE9247A9
|
||||
into the longer form 3Ps0FS1Zhtz1PFjb, and changes new Message-ID
|
||||
header values from YYMMDDHHMMSS.queueid@myhostname into the shorter
|
||||
form queueid@myhostname.
|
||||
|
||||
Major changes - memcache
|
||||
------------------------
|
||||
|
||||
[Feature 20111209] memcache lookup and update support. This provides
|
||||
a way to share postscreen(8) or verify(8) caches between Postfix
|
||||
instances. See MEMCACHE_README and memcache_table(5) for details
|
||||
and limitations.
|
||||
|
||||
[Feature 20111213] Support for a persistent backup database in the
|
||||
memcache client. The memcache client updates the memcache whenever
|
||||
it looks up or modifies information in the persistent database.
|
||||
|
||||
Major changes - postconf
|
||||
------------------------
|
||||
|
||||
The postconf command was restructured - it now warns about unused
|
||||
parameter name=value settings in main.cf or master.cf (likely to
|
||||
be mistakes), it now understands "dynamic" parameter names such as
|
||||
parameters whose name depends on the name of a master.cf entry, and
|
||||
it can display main.cf and master.cf in a more user-friendly format.
|
||||
|
||||
[Feature 20120117] support for legacy database parameter names
|
||||
(main.cf parameter names that are generated by prepending a suffix
|
||||
to the database name).
|
||||
|
||||
[Feature 20111118] The "postconf -M" (display master.cf) command
|
||||
now supports filtering. For example, specify "postconf -M inet"
|
||||
to display only services that listen on the network.
|
||||
|
||||
[Feature 20111113] postconf support to warn about unused "name=value"
|
||||
entries in main.cf, and about unused "-o name=value" entries in
|
||||
master.cf. This should help to eliminate common errors with mis-typed
|
||||
names.
|
||||
|
||||
[Feature 20111108] postconf support for parameter names that are
|
||||
generated automatically from master.cf entries (delivery agents,
|
||||
spawn services), and for parameter names that are defined with
|
||||
main.cf smtpd_restriction_classes.
|
||||
|
||||
[Feature 20111106] "postconf -M" support to print master.cf entries,
|
||||
and "postconf -f" support to fold long main.cf or master.cf lines
|
||||
for human readability.
|
||||
|
||||
Major changes - trickle defense
|
||||
-------------------------------
|
||||
|
||||
[Feature 20110212] Support for per-record deadlines. These change
|
||||
the behavior of Postfix timeout parameters, from a time limit per
|
||||
read or write system call, to a time limit to send or receive a
|
||||
complete record (an SMTP command line, SMTP response line, SMTP
|
||||
message content line, or TLS protocol message). This limits the
|
||||
impact from hostile peers that trickle data one byte at a time.
|
||||
|
||||
The new configuration parameters and their default settings are:
|
||||
smtpd_per_record_deadline (normal: no, overload: yes),
|
||||
smtp_per_record_deadline (no), and lmtp_per_record_deadline (no).
|
||||
|
||||
Note: when per-record deadlines are enabled, a short time limit may
|
||||
cause problems with TLS over very slow network connections. The
|
||||
reason is that a TLS protocol message can be up to 16 kbytes long
|
||||
(with TLSv1), and that an entire TLS protocol message must be sent
|
||||
or received within the per-record deadline.
|
||||
|
||||
Per-record deadlines were introduced with postscreen(8) in Postfix
|
||||
2.8. This program does not receive mail, and therefore it has no
|
||||
problems with TLS over slow connections.
|
||||
|
||||
Major changes - postscreen
|
||||
--------------------------
|
||||
|
||||
[Feature 20111211] The proxymap(8) server can now be used to share
|
||||
postscreen(8) or verify(8) caches between Postfix instances. Support
|
||||
for proxymap-over-TCP, to share a Postfix database between hosts,
|
||||
is expected to be completed in the Postfix 2.10 development cycle.
|
||||
|
||||
[Feature 20111209] memcache lookup and update support. This provides
|
||||
a way to share postscreen(8) or verify(8) caches between Postfix
|
||||
instances.
|
||||
|
||||
[Feature 20110228] postscreen(8) support to force remote SMTP clients
|
||||
to implement proper MX lookup policy. By listening on both primary
|
||||
and backup MX addresses, postscreen(8) can deny the temporary
|
||||
whitelist status to clients that connect only to backup MX hosts,
|
||||
and prevent them from talking to a Postfix SMTP server process.
|
||||
|
||||
Example: when 1.2.3.4 is a local backup IP address, specify
|
||||
"postscreen_whitelist_interfaces = !1.2.3.4 static:all".
|
||||
|
||||
Major changes - tls
|
||||
-------------------
|
||||
|
||||
[Incompat 20111205] Postfix now logs the result of successful TLS
|
||||
negotiation with TLS logging levels of 0. See the smtp_tls_loglevel
|
||||
and smtpd_tls_loglevel descriptions in the postconf(5) manpage for
|
||||
other minor differences.
|
||||
|
||||
[Feature 20111205] Support for TLS public key fingerprint matching
|
||||
in the Postfix SMTP client (in smtp_tls_policy_maps) and server (in
|
||||
check_ccert access maps). Public key fingerprints are inherently
|
||||
more specific than fingerprints over the entire certificate.
|
||||
|
||||
[Feature 20111205] Revision of Postfix TLS logging. The main
|
||||
difference is that Postfix now logs the result of successful TLS
|
||||
negotiation with TLS logging levels of 0. See the smtp_tls_loglevel
|
||||
and smtpd_tls_loglevel descriptions in the postconf(5) manpage for
|
||||
other minor differences.
|
||||
|
||||
Major changes - sasl authentication
|
||||
-----------------------------------
|
||||
|
||||
[Incompat 20111218] To support external SASL authentication, e.g.,
|
||||
in an NGINX proxy daemon, the Postfix SMTP server now always checks
|
||||
the smtpd_sender_login_maps table, even without having
|
||||
"smtpd_sasl_auth_enable = yes" in main.cf.
|
||||
|
||||
[Feature 20111218] Support for external SASL authentication via the
|
||||
XCLIENT command. This is used to accept SASL authentication from
|
||||
an SMTP proxy such as NGINX. This support works even without having
|
||||
to specify "smtpd_sasl_auth_enable = yes" in main.cf.
|
||||
|
||||
[Incompat 20111106] To work around broken remote SMTP servers, the
|
||||
Postfix SMTP client by default no longer appends the "AUTH=<>"
|
||||
option to the MAIL FROM command. Specify "smtp_send_dummy_mail_auth
|
||||
= yes" to restore the old behavior.
|
||||
|
||||
Major changes - large file support
|
||||
----------------------------------
|
||||
|
||||
[Feature 20110219] Postfix now uses long integers for message_size_limit,
|
||||
mailbox_size_limit and virtual_mailbox_limit. On LP64 systems (64-bit
|
||||
long and pointer, but 32-bit integer), these limits can now exceed
|
||||
2GB.
|
||||
|
||||
Major changes - ipv6
|
||||
--------------------
|
||||
|
||||
[Incompat 20110918] The following changes were made in default
|
||||
settings, in preparation for general availability of IPv6:
|
||||
|
||||
- The default inet_protocols value is now "all" instead of "ipv4",
|
||||
meaning use both IPv4 and IPv6.
|
||||
|
||||
To avoid an unexpected loss of performance for sites without
|
||||
global IPv6 connectivity, the commands "make upgrade" and "postfix
|
||||
upgrade-configuration" now append "inet_protocols = ipv4" to
|
||||
main.cf when no explicit inet_protocols setting is already present.
|
||||
This workaround will be removed in a future release.
|
||||
|
||||
- The default smtp_address_preference value is now "any" instead
|
||||
of "ipv6", meaning choose randomly between IPv6 and IPv4. With
|
||||
this the Postfix SMTP client will have more success delivering
|
||||
mail to sites that have problematic IPv6 configurations.
|
||||
|
||||
Major changes - address verification
|
||||
------------------------------------
|
||||
|
||||
[Feature 20111211] The proxymap(8) server can now be used to share
|
||||
postscreen(8) or verify(8) caches between Postfix instances. Support
|
||||
for proxymap-over-TCP, to share a Postfix database between hosts,
|
||||
is expected to be completed in the Postfix 2.10 development cycle.
|
||||
|
||||
[Feature 20111209] memcache lookup and update support. This provides
|
||||
a way to share postscreen(8) or verify(8) caches between Postfix
|
||||
instances.
|
||||
|
||||
[Feature 20111203] Support for time-dependent sender addresses
|
||||
of address verification probes. The default address, double-bounce,
|
||||
may end up on spammer blacklists. Although Postfix discards mail
|
||||
for this address, such mail still uses up network bandwidth and
|
||||
server resources. Specify an address_verify_sender_ttl value of
|
||||
several hours or more to frustrate address harvesting.
|
||||
|
||||
Major changes - session transcript notification
|
||||
-----------------------------------------------
|
||||
|
||||
[Incompat 20120114] By default the Postfix SMTP server no longer
|
||||
reports transcripts of sessions where a client command is rejected
|
||||
because a lookup table is unavailable. Postfix now implements gradual
|
||||
degradation, for example, the SMTP server keeps running instead of
|
||||
terminating with a fatal error. This change in error handling would
|
||||
result in a very large number of "transcript of session" email
|
||||
notifications when an LDAP or *SQL server goes down).
|
||||
|
||||
To receive such reports, add the new "data" class to the notify_classes
|
||||
parameter value. The reports will be sent to the error_notice_recipient
|
||||
address as before. This class is also used by the Postfix SMTP
|
||||
client to report about sessions that fail because a table is
|
||||
unavailable.
|
||||
|
||||
Major changes - logging
|
||||
----------------------------------------
|
||||
|
||||
[Incompat 20120114] Logfile-based alerting systems may need to be
|
||||
updated to look for "error" messages in addition to "fatal" messages.
|
||||
Specify "daemon_table_open_error_is_fatal = yes" to get the historical
|
||||
behavior (immediate termination with "fatal" message).
|
||||
|
||||
[Incompat 20111214] Logfile-based analysis tools may need to be
|
||||
updated. The submission and smtps examples in the sample master.cf
|
||||
file were updated to make their logging easier to distinguish.
|
||||
|
||||
See the source file pflogsumm_quickfix.txt for a "quick fix".
|
||||
|
||||
[Incompat 20111205] Postfix now logs the result of successful TLS
|
||||
negotiation with TLS logging levels of 0. See the smtp_tls_loglevel
|
||||
and smtpd_tls_loglevel descriptions in the postconf(5) manpage for
|
||||
other minor differences.
|
||||
|
||||
[Incompat 20110219] The Postfix SMTP and QMQP servers now log
|
||||
"hostname X does not resolve to address Y", when a "reverse hostname"
|
||||
lookup result does not resolve to the client IP address. Until now
|
||||
these servers logged "Y: hostname X verification failed" or "Y:
|
||||
address not listed for hostname X" which people found confusing.
|
|
@ -56,9 +56,15 @@ decode: root
|
|||
# newaliases in order to rebuild the indexed file after
|
||||
# changing the Postfix alias database.
|
||||
#
|
||||
# The input and output file formats are expected to be com-
|
||||
# patible with Sendmail version 8, and are expected to be
|
||||
# suitable for the use as NIS maps.
|
||||
# When the table is provided via other means such as NIS,
|
||||
# LDAP or SQL, the same lookups are done as for ordinary
|
||||
# indexed files.
|
||||
#
|
||||
# Alternatively, the table can be provided as a regular-
|
||||
# expression map where patterns are given as regular expres-
|
||||
# sions. In this case, the lookups are done in a slightly
|
||||
# different way as described below under "REGULAR EXPRESSION
|
||||
# TABLES".
|
||||
#
|
||||
# Users can control delivery of their own mail by setting up
|
||||
# .forward files in their home directory. Lines in per-user
|
||||
|
@ -143,6 +149,25 @@ decode: root
|
|||
# The local(8) delivery agent always folds the search string
|
||||
# to lowercase before database lookup.
|
||||
#
|
||||
# REGULAR EXPRESSION TABLES
|
||||
# This section describes how the table lookups change when
|
||||
# the table is given in the form of regular expressions. For
|
||||
# a description of regular expression lookup table syntax,
|
||||
# see regexp_table(5) or pcre_table(5). NOTE: these formats
|
||||
# do not use ":" at the end of a pattern.
|
||||
#
|
||||
# Each regular expression is applied to the entire search
|
||||
# string. Thus, a search string user+foo is not broken up
|
||||
# into user and foo.
|
||||
#
|
||||
# Regular expressions are applied in the order as specified
|
||||
# in the table, until a regular expression is found that
|
||||
# matches the search string.
|
||||
#
|
||||
# Lookup results are the same as with indexed file lookups.
|
||||
# For security reasons there is no support for $1, $2 etc.
|
||||
# substring interpolation.
|
||||
#
|
||||
# SECURITY
|
||||
# The local(8) delivery agent disallows regular expression
|
||||
# substitution of $1 etc. in alias_maps, because that would
|
||||
|
|
|
@ -108,11 +108,11 @@
|
|||
# This document assumes that header and body_checks rules
|
||||
# are specified in the form of Postfix regular expression
|
||||
# lookup tables. Usually the best performance is obtained
|
||||
# with pcre (Perl Compatible Regular Expression) tables, but
|
||||
# the slower regexp (POSIX regular expressions) support is
|
||||
# more widely available. Use the command "postconf -m" to
|
||||
# find out what lookup table types your Postfix system sup-
|
||||
# ports.
|
||||
# with pcre (Perl Compatible Regular Expression) tables. The
|
||||
# regexp (POSIX regular expressions) tables are usually
|
||||
# slower, but more widely available. Use the command "post-
|
||||
# conf -m" to find out what lookup table types your Postfix
|
||||
# system supports.
|
||||
#
|
||||
# The general format of Postfix regular expression tables is
|
||||
# given below. For a discussion of specific pattern or
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
#!/bin/sh
|
||||
# $NetBSD: post-install,v 1.1.1.3 2013/01/02 18:58:35 tron Exp $
|
||||
# $NetBSD: post-install,v 1.1.1.4 2013/09/25 19:06:20 tron Exp $
|
||||
#
|
||||
|
||||
# To view the formatted manual page of this file, type:
|
||||
|
@ -801,12 +801,36 @@ EOF
|
|||
# when IPv6 support is not compiled in. See util/sys_defs.h.
|
||||
|
||||
test "`$POSTCONF -dh inet_protocols`" = "ipv4" ||
|
||||
test -n "`$POSTCONF -c $config_directory -nh inet_protocols`" || {
|
||||
echo COMPATIBILITY: editing main.cf, setting inet_protocols=ipv4.
|
||||
echo Specify inet_protocols explicitly if you want to enable IPv6.
|
||||
echo In a future release IPv6 will be enabled by default.
|
||||
test -n "`$POSTCONF -c $config_directory -n inet_protocols`" || {
|
||||
cat <<EOF | ${FMT}
|
||||
COMPATIBILITY: editing $config_directory/main.cf, setting
|
||||
inet_protocols=ipv4. Specify inet_protocols explicitly if you
|
||||
want to enable IPv6.
|
||||
In a future release IPv6 will be enabled by default.
|
||||
EOF
|
||||
$POSTCONF -c $config_directory inet_protocols=ipv4 || exit 1
|
||||
}
|
||||
|
||||
# Disabled because unhelpful down-stream maintainers disable the safety net.
|
||||
# # Postfix 2.10.
|
||||
# # Safety net for incompatible changes due to the introduction
|
||||
# # of the smtpd_relay_restrictions feature to separate the
|
||||
# # mail relay policy from the spam blocking policy.
|
||||
# # PLEASE DO NOT REMOVE THIS CODE. ITS PURPOSE IS TO PREVENT
|
||||
# # INBOUND MAIL FROM UNEXPECTEDLY BOUNCING AFTER UPGRADING FROM
|
||||
# # POSTFIX BEFORE 2.10.
|
||||
# test -n "`$POSTCONF -c $config_directory -n smtpd_relay_restrictions`" || {
|
||||
# cat <<EOF | ${FMT}
|
||||
# COMPATIBILITY: editing $config_directory/main.cf, overriding
|
||||
# smtpd_relay_restrictions to prevent inbound mail from
|
||||
# unexpectedly bouncing.
|
||||
# Specify an empty smtpd_relay_restrictions value to keep using
|
||||
# smtpd_recipient_restrictions as before.
|
||||
#EOF
|
||||
# $POSTCONF -c $config_directory "smtpd_relay_restrictions = \
|
||||
# permit_mynetworks permit_sasl_authenticated \
|
||||
# defer_unauth_destination" || exit 1
|
||||
# }
|
||||
}
|
||||
|
||||
# A reminder if this is the first time Postfix is being installed.
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
#!/bin/sh
|
||||
# $NetBSD: postfix-script,v 1.1.1.2 2010/06/17 18:06:08 tron Exp $
|
||||
# $NetBSD: postfix-script,v 1.1.1.3 2013/09/25 19:06:20 tron Exp $
|
||||
#
|
||||
|
||||
#++
|
||||
|
@ -126,7 +126,11 @@ start)
|
|||
$daemon_directory/postfix-script check-warn
|
||||
fi
|
||||
$INFO starting the Postfix mail system
|
||||
$daemon_directory/master &
|
||||
# NOTE: wait in foreground process to get the initialization status.
|
||||
$daemon_directory/master -w || {
|
||||
$FATAL "mail system startup failed"
|
||||
exit 1
|
||||
}
|
||||
;;
|
||||
|
||||
drain)
|
||||
|
|
|
@ -370,6 +370,15 @@ created with the <a href="postmap.1.html">postmap(1)</a> or <a href="postalias.1
|
|||
table name as used in "sdbm:table" is the database file name without
|
||||
the ".dir" or ".pag" suffix. </dd>
|
||||
|
||||
<dt> <b>socketmap</b> (read-only) </dt>
|
||||
|
||||
<dd> Query a Sendmail-style socketmap server. The name of the table
|
||||
specifies <b>inet</b>:<i>host</i>:<i>port</i>:<i>socketmap-name</i>
|
||||
for a TCP-based server, or
|
||||
<b>unix</b>:<i>pathname</i>:<i>socketmap-name</i> for a UNIX-domain
|
||||
server. In both cases <i>socketmap-name</i> is the name of the
|
||||
socketmap. </dd>
|
||||
|
||||
<dt> <b>sqlite</b> (read-only) </dt>
|
||||
|
||||
<dd> Perform SQLite database lookups. Configuration details are given
|
||||
|
|
|
@ -218,24 +218,24 @@ document for an introduction to the Postfix architecture. </p>
|
|||
|
||||
<td colspan="2"> </td>
|
||||
|
||||
<td bgcolor="#f0f0ff" align="center" valign="middle">
|
||||
<a href="QSHAPE_README.html#maildrop_queue"> maildrop <br>
|
||||
queue </a> </td>
|
||||
<td bgcolor="#f0f0ff" align="center" valign="middle">
|
||||
<a href="QSHAPE_README.html#maildrop_queue"> maildrop <br>
|
||||
queue </a> </td>
|
||||
|
||||
<td align="center" valign="middle"> <tt> <- </tt> </td>
|
||||
|
||||
<td bgcolor="#f0f0ff" align="center" valign="middle">Postfix<br>
|
||||
<a href="postdrop.1.html">postdrop(1)</a> </td>
|
||||
<td bgcolor="#f0f0ff" align="center" valign="middle">Postfix<br>
|
||||
<a href="postdrop.1.html">postdrop(1)</a> </td>
|
||||
|
||||
<td align="center" valign="middle"> <tt> <- </tt> </td>
|
||||
|
||||
<td bgcolor="#f0f0ff" align="center" valign="middle">Postfix<br>
|
||||
<a href="sendmail.1.html">sendmail(1)</a> </td>
|
||||
<td bgcolor="#f0f0ff" align="center" valign="middle">Postfix<br>
|
||||
<a href="sendmail.1.html">sendmail(1)</a> </td>
|
||||
|
||||
<td align="center" valign="middle"> <tt> <- </tt> </td>
|
||||
|
||||
<td bgcolor="#f0f0ff" align="center" valign="middle">Content
|
||||
<br> filter </td>
|
||||
<td bgcolor="#f0f0ff" align="center" valign="middle">Content
|
||||
<br> filter </td>
|
||||
|
||||
<td colspan="2"> </td>
|
||||
|
||||
|
@ -750,6 +750,8 @@ that injects mail back into Postfix. </p>
|
|||
-o <a href="postconf.5.html#smtpd_helo_restrictions">smtpd_helo_restrictions</a>=
|
||||
-o <a href="postconf.5.html#smtpd_client_restrictions">smtpd_client_restrictions</a>=
|
||||
-o <a href="postconf.5.html#smtpd_sender_restrictions">smtpd_sender_restrictions</a>=
|
||||
# Postfix 2.10 and later: specify empty <a href="postconf.5.html#smtpd_relay_restrictions">smtpd_relay_restrictions</a>.
|
||||
-o <a href="postconf.5.html#smtpd_relay_restrictions">smtpd_relay_restrictions</a>=
|
||||
-o <a href="postconf.5.html#smtpd_recipient_restrictions">smtpd_recipient_restrictions</a>=<a href="postconf.5.html#permit_mynetworks">permit_mynetworks</a>,reject
|
||||
-o <a href="postconf.5.html#mynetworks">mynetworks</a>=127.0.0.0/8
|
||||
-o <a href="postconf.5.html#smtpd_authorized_xforward_hosts">smtpd_authorized_xforward_hosts</a>=127.0.0.0/8
|
||||
|
|
|
@ -204,12 +204,13 @@ confused with a "<i><a href="DATABASE_README.html">type:table</a></i>" pattern.
|
|||
|
||||
<ul>
|
||||
|
||||
<li> <p> The order of IPv6/IPv4 outgoing connection attempts is
|
||||
not yet configurable. Currently, IPv6 is tried before IPv4. </p>
|
||||
<li> <p> Postfix SMTP clients before version 2.8 try to connect
|
||||
over IPv6 before trying IPv4. With more recent Postfix versions,
|
||||
the order of IPv6 versus IPv4 outgoing connection attempts is
|
||||
configurable with the <a href="postconf.5.html#smtp_address_preference">smtp_address_preference</a> parameter. </p>
|
||||
|
||||
<li> <p> Postfix currently does not support DNSBL (real-time
|
||||
blackhole list) lookups for IPv6 client IP addresses; currently
|
||||
there are no blacklists that cover the IPv6 address space. </p>
|
||||
<li> <p> Postfix versions before 2.6 do not support DNSBL (real-time
|
||||
blackhole list) lookups for IPv6 client IP addresses. </p>
|
||||
|
||||
<li> <p> IPv6 does not have class A, B, C, etc. networks. With IPv6
|
||||
networks, the setting "<a href="postconf.5.html#mynetworks_style">mynetworks_style</a> = class" has the
|
||||
|
|
|
@ -17,6 +17,34 @@
|
|||
|
||||
<hr>
|
||||
|
||||
<h2> Host lookup issues </h2>
|
||||
|
||||
<p> By default Linux /etc/hosts lookups do not support multiple IP
|
||||
address per hostname. This causes warnings from the Postfix SMTP
|
||||
server that "hostname XXX does not resolve to address YYY", and is
|
||||
especially a problem with hosts that have both IPv4 and IPv6
|
||||
addresses. To fix, turn on support for multiple IP addresses: </p>
|
||||
|
||||
<blockquote>
|
||||
<pre>
|
||||
/etc/host.conf:
|
||||
...
|
||||
# We have machines with multiple IP addresses.
|
||||
multi on
|
||||
...
|
||||
</pre>
|
||||
</blockquote>
|
||||
|
||||
<p> Alternatively, specify the RESOLV_MULTI environment variable
|
||||
in <a href="postconf.5.html">main.cf</a>: </p>
|
||||
|
||||
<blockquote>
|
||||
<pre>
|
||||
/etc/postfix/<a href="postconf.5.html">main.cf</a>:
|
||||
<a href="postconf.5.html#import_environment">import_environment</a> = MAIL_CONFIG MAIL_DEBUG MAIL_LOGTAG TZ XAUTHORITY DISPLAY LANG=C RESOLV_MULTI=on
|
||||
</pre>
|
||||
</blockquote>
|
||||
|
||||
<h2>Berkeley DB issues</h2>
|
||||
|
||||
<p> If you can't compile Postfix because the file "db.h"
|
||||
|
|
|
@ -374,6 +374,8 @@ post-filter re-injection SMTP service. Typical additions include: </p>
|
|||
# With multiple instances, rarely need "-o param=value" overrides
|
||||
# in <a href="master.5.html">master.cf</a>, each instance gets its own <a href="postconf.5.html">main.cf</a> file.
|
||||
#
|
||||
# Postfix 2.10 and later: specify empty <a href="postconf.5.html#smtpd_relay_restrictions">smtpd_relay_restrictions</a>.
|
||||
<a href="postconf.5.html#smtpd_relay_restrictions">smtpd_relay_restrictions</a> =
|
||||
<a href="postconf.5.html#smtpd_recipient_restrictions">smtpd_recipient_restrictions</a> = <a href="postconf.5.html#permit_mynetworks">permit_mynetworks</a>, reject
|
||||
|
||||
# Tolerate occasional high latency in the content filter.
|
||||
|
|
|
@ -17,25 +17,30 @@
|
|||
|
||||
<h2> <a name="intro">Introduction</a> </h2>
|
||||
|
||||
<p> The Postfix <a href="postscreen.8.html">postscreen(8)</a> server performs triage on multiple
|
||||
inbound SMTP connections at the same time. While a single <a href="postscreen.8.html">postscreen(8)</a>
|
||||
process keeps zombies away from Postfix SMTP server processes, more
|
||||
Postfix SMTP server processes remain available for legitimate
|
||||
clients. </p>
|
||||
<p> This document describes features that are available in Postfix
|
||||
2.8 and later. </p>
|
||||
|
||||
<p> The Postfix <a href="postscreen.8.html">postscreen(8)</a> daemon provides additional protection
|
||||
against mail server overload. One <a href="postscreen.8.html">postscreen(8)</a> process handles
|
||||
multiple inbound SMTP connections, and decides which clients may
|
||||
talk to a Postfix SMTP server process. By keeping spambots away,
|
||||
<a href="postscreen.8.html">postscreen(8)</a> leaves more SMTP server processes available for
|
||||
legitimate clients, and delays the onset of <a
|
||||
href="STRESS_README.html">server overload</a> conditions. </p>
|
||||
|
||||
<p> <a href="postscreen.8.html">postscreen(8)</a> should not be used on SMTP ports that receive
|
||||
mail from end-user clients (MUAs). In a typical deployment,
|
||||
<a href="postscreen.8.html">postscreen(8)</a> handles the MX service on TCP port 25, while MUA
|
||||
clients submit mail via the submission service on TCP 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. </p>
|
||||
|
||||
<p> <a href="postscreen.8.html">postscreen(8)</a> maintains a temporary whitelist for clients that
|
||||
pass its tests; by allowing whitelisted clients to skip tests,
|
||||
<a href="postscreen.8.html">postscreen(8)</a> minimizes its impact on legitimate email traffic.
|
||||
</p>
|
||||
|
||||
<p> <a href="postscreen.8.html">postscreen(8)</a> should not be used on SMTP ports that receive
|
||||
mail from end-user clients (MUAs). In a typical deployment,
|
||||
<a href="postscreen.8.html">postscreen(8)</a> is used on the "port 25" service, while MUA clients
|
||||
submit mail via the submission service (port 587) which normally
|
||||
requires client authentication, or via a "port 25" server that
|
||||
provides no MX service (i.e. a dedicated server that provides
|
||||
submission service on port 25). </p>
|
||||
|
||||
<p> <a href="postscreen.8.html">postscreen(8)</a> is part of a multi-layer defense. <p>
|
||||
|
||||
<ul>
|
||||
|
@ -43,11 +48,12 @@ submission service on port 25). </p>
|
|||
<li> <p> As the first layer, <a href="postscreen.8.html">postscreen(8)</a> blocks connections from
|
||||
zombies and other spambots that are responsible for about 90% of
|
||||
all spam. It is implemented as a single process to make this defense
|
||||
as cheap as possible. </p>
|
||||
as inexpensive as possible. </p>
|
||||
|
||||
<li> <p> The second layer implements more complex SMTP-level access
|
||||
checks with Postfix SMTP servers, policy daemons, and Milter
|
||||
applications. </p>
|
||||
checks with <a href="SMTPD_ACCESS_README.html">Postfix SMTP servers</a>,
|
||||
<a href="SMTPD_POLICY_README.html">policy daemons</a>, and
|
||||
<a href="MILTER_README.html">Milter applications</a>. </p>
|
||||
|
||||
<li> <p> The third layer performs light-weight content inspection
|
||||
with the Postfix built-in <a href="postconf.5.html#header_checks">header_checks</a> and <a href="postconf.5.html#body_checks">body_checks</a>. This can
|
||||
|
@ -55,8 +61,10 @@ block unacceptable attachments such as executable programs, and
|
|||
worms or viruses with easy-to-recognize signatures. </p>
|
||||
|
||||
<li> <p> The fourth layer provides heavy-weight content inspection
|
||||
with external content filters. Typical examples are Amavisd-new,
|
||||
SpamAssassin, and Milter applications. </p>
|
||||
with external content filters. Typical examples are <a
|
||||
href="http://www.ijs.si/software/amavisd/">Amavisd-new</a>, <a
|
||||
href="http://spamassassin.apache.org/">SpamAssassin</a>, and <a
|
||||
href="MILTER_README.html">Milter applications</a>. </p>
|
||||
|
||||
</ul>
|
||||
|
||||
|
@ -127,7 +135,8 @@ and that is the problem that <a href="postscreen.8.html">postscreen(8)</a> is fo
|
|||
|
||||
<h2> <a name="general"> General operation </a> </h2>
|
||||
|
||||
<p> The <a href="postscreen.8.html">postscreen(8)</a> triage process involves a number of tests,
|
||||
<p> For each connection from an SMTP client, <a href="postscreen.8.html">postscreen(8)</a> performs
|
||||
a number of tests
|
||||
in the order as described below. Some tests introduce a delay of
|
||||
a few seconds. <a href="postscreen.8.html">postscreen(8)</a> maintains a temporary whitelist for
|
||||
clients that pass its tests; by allowing whitelisted clients to
|
||||
|
@ -218,15 +227,24 @@ specifies the location of the temporary whitelist. The
|
|||
temporary whitelist is not used for SMTP client addresses
|
||||
that appear on the <i>permanent</i> access list. </p>
|
||||
|
||||
<blockquote> <p> NOTE: To share a <a href="postscreen.8.html">postscreen(8)</a> cache between
|
||||
multiple <a href="postscreen.8.html">postscreen(8)</a> instances, use "<tt><a href="postconf.5.html#postscreen_cache_map">postscreen_cache_map</a> =
|
||||
<a href="proxymap.8.html">proxy</a>:btree:$<a href="postconf.5.html#data_directory">data_directory</a>/postscreen_cache</tt>", and disable
|
||||
cache cleanup (<a href="postconf.5.html#postscreen_cache_cleanup_interval">postscreen_cache_cleanup_interval</a> = 0) in all
|
||||
<a href="postscreen.8.html">postscreen(8)</a> instances except one that is responsible for cache
|
||||
cleanup. </p> <p> <a href="postscreen.8.html">postscreen(8)</a> cache sharing requires Postfix 2.9
|
||||
or later; earlier <a href="proxymap.8.html">proxymap(8)</a> implementations don't support cache
|
||||
cleanup. </p> <p> For an alternative <a href="postscreen.8.html">postscreen(8)</a> cache sharing
|
||||
approach see the <a href="memcache_table.5.html">memcache_table(5)</a> manpage. </p> </blockquote>
|
||||
<blockquote>
|
||||
|
||||
<p> NOTE: To share a <a href="postscreen.8.html">postscreen(8)</a> cache between multiple
|
||||
<a href="postscreen.8.html">postscreen(8)</a> instances under the same <a href="master.8.html">master(8)</a> daemon, use
|
||||
"<tt><a href="postconf.5.html#postscreen_cache_map">postscreen_cache_map</a> =
|
||||
<a href="proxymap.8.html">proxy</a>:btree:$<a href="postconf.5.html#data_directory">data_directory</a>/postscreen_cache</tt>", and disable
|
||||
cache cleanup (<a href="postconf.5.html#postscreen_cache_cleanup_interval">postscreen_cache_cleanup_interval</a> = 0) in all
|
||||
<a href="postscreen.8.html">postscreen(8)</a> instances except one that is responsible for cache
|
||||
cleanup. </p>
|
||||
|
||||
<p> <a href="postscreen.8.html">postscreen(8)</a> cache sharing requires Postfix 2.9 or later;
|
||||
earlier <a href="proxymap.8.html">proxymap(8)</a> implementations don't support cache cleanup.
|
||||
</p>
|
||||
|
||||
<p> For an alternative <a href="postscreen.8.html">postscreen(8)</a> cache sharing approach,
|
||||
see the <a href="memcache_table.5.html">memcache_table(5)</a> manpage. </p>
|
||||
|
||||
</blockquote>
|
||||
|
||||
<p> When the SMTP client address appears on the temporary
|
||||
whitelist, <a href="postscreen.8.html">postscreen(8)</a> logs this with the client address and port
|
||||
|
@ -249,12 +267,17 @@ or temporary whitelist, <a href="postscreen.8.html">postscreen(8)</a> can implem
|
|||
whitelist tests, before it grants the client a temporary whitelist
|
||||
status that allows it to talk to a Postfix SMTP server process. </p>
|
||||
|
||||
<p> By listening on both primary and backup MX addresses, <a href="postscreen.8.html">postscreen(8)</a>
|
||||
can deny the temporary whitelist status to clients that connect
|
||||
only to backup MX hosts (an old spammer trick to take advantage of
|
||||
backup MX hosts with weaker anti-spam policies than primary MX
|
||||
<p> When <a href="postscreen.8.html">postscreen(8)</a> is configured to monitor all primary and
|
||||
backup MX addresses, it can refuse to whitelist 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). </p>
|
||||
|
||||
<blockquote> <p> NOTE: The following solution is for small sites.
|
||||
Larger sites would have to share the <a href="postscreen.8.html">postscreen(8)</a> cache between
|
||||
primary and backup MTAs, which would introduce a common point of
|
||||
failure. </p> </blockquote>
|
||||
|
||||
<ul>
|
||||
|
||||
<li> <p> First, configure the host to listen on both primary and
|
||||
|
@ -262,6 +285,10 @@ backup MX addresses. Use the appropriate <tt>ifconfig</tt> command
|
|||
for the local operating system, or update the appropriate configuration
|
||||
files and "refresh" the network protocol stack. </p>
|
||||
|
||||
<p> <p> Second, configure Postfix to listen on the new IP address
|
||||
(this step is needed when you have specified <a href="postconf.5.html#inet_interfaces">inet_interfaces</a> in
|
||||
<a href="postconf.5.html">main.cf</a>). </p>
|
||||
|
||||
<li> <p> Then, configure <a href="postscreen.8.html">postscreen(8)</a> to deny the temporary whitelist
|
||||
status on the backup MX address(es). An example for Wietse's
|
||||
server is: </p>
|
||||
|
@ -538,12 +565,15 @@ logging more informative. </p>
|
|||
as: </p>
|
||||
|
||||
<pre>
|
||||
<b>NON-SMTP COMMAND from</b> <i>[address]:port command</i>
|
||||
<b>NON-SMTP COMMAND from</b> <i>[address]:port</i> <b>after</b> <i>command: text</i>
|
||||
</pre>
|
||||
|
||||
<p> Translation: the SMTP client at <i>[address]:port</i> sent a
|
||||
<i>command</i> that matches the <a href="postconf.5.html#postscreen_forbidden_commands">postscreen_forbidden_commands</a>
|
||||
parameter, or that has the syntax of a message header label. </p>
|
||||
command that matches the <a href="postconf.5.html#postscreen_forbidden_commands">postscreen_forbidden_commands</a>
|
||||
parameter, or that has the syntax of a message header label (text
|
||||
followed by optional space and ":").
|
||||
The "<tt><b>after</b> <i>command</i></tt>" portion is logged with
|
||||
Postfix 2.10 and later. </p>
|
||||
|
||||
<p> The <a href="postconf.5.html#postscreen_non_smtp_command_action">postscreen_non_smtp_command_action</a> parameter specifies
|
||||
the action that is taken next. See "<a href="#fail_after_220">When
|
||||
|
@ -570,12 +600,14 @@ this as:
|
|||
</p>
|
||||
|
||||
<pre>
|
||||
<b>BARE NEWLINE from</b> <i>[address]:port</i>
|
||||
<b>BARE NEWLINE from</b> <i>[address]:port</i> <b>after</b> <i>command</i>
|
||||
</pre>
|
||||
|
||||
<p> Translation: the SMTP client at <i>[address]:port</i> sent a bare
|
||||
newline character, that is newline not preceded by carriage
|
||||
return. </p>
|
||||
return.
|
||||
The "<tt><b>after</b> <i>command</i></tt>" portion is logged with
|
||||
Postfix 2.10 and later. </p>
|
||||
|
||||
<p> The <a href="postconf.5.html#postscreen_bare_newline_action">postscreen_bare_newline_action</a> parameter specifies the
|
||||
action that is taken next. See "<a href="#fail_after_220">When
|
||||
|
@ -652,29 +684,35 @@ This engine never accepts mail, therefore it has per-session limits
|
|||
on the number of commands and on the session length. </p>
|
||||
|
||||
<pre>
|
||||
<b>COMMAND TIME LIMIT</b> <b>from</b> <i>[address]:port</i>
|
||||
<b>COMMAND TIME LIMIT</b> <b>from</b> <i>[address]:port</i> <b>after</b> <i>command</i>
|
||||
</pre>
|
||||
|
||||
<p> Translation: the SMTP client at <i>[address]:port</i> reached the
|
||||
per-command time limit as specified with the <a href="postconf.5.html#postscreen_command_time_limit">postscreen_command_time_limit</a>
|
||||
parameter. The session is terminated immediately. </p>
|
||||
parameter. The session is terminated immediately.
|
||||
The "<tt><b>after</b> <i>command</i></tt>" portion is logged with
|
||||
Postfix 2.10 and later. </p>
|
||||
|
||||
<pre>
|
||||
<b>COMMAND COUNT LIMIT from</b> <i>[address]:port</i>
|
||||
<b>COMMAND COUNT LIMIT from</b> <i>[address]:port</i> <b>after</b> <i>command</i>
|
||||
</pre>
|
||||
|
||||
<p> Translation: the SMTP client at <i>[address]:port</i> reached the
|
||||
per-session command count limit as specified with the
|
||||
<a href="postconf.5.html#postscreen_command_count_limit">postscreen_command_count_limit</a> parameter. The session is terminated
|
||||
immediately. </p>
|
||||
immediately.
|
||||
The "<tt><b>after</b> <i>command</i></tt>" portion is logged with
|
||||
Postfix 2.10 and later. </p>
|
||||
|
||||
<pre>
|
||||
<b>COMMAND LENGTH LIMIT from</b> <i>[address]:port</i>
|
||||
<b>COMMAND LENGTH LIMIT from</b> <i>[address]:port</i> <b>after</b> <i>command</i>
|
||||
</pre>
|
||||
|
||||
<p> Translation: the SMTP client at <i>[address]:port</i> reached the
|
||||
per-command length limit, as specified with the <a href="postconf.5.html#line_length_limit">line_length_limit</a>
|
||||
parameter. The session is terminated immediately. </p>
|
||||
parameter. The session is terminated immediately.
|
||||
The "<tt><b>after</b> <i>command</i></tt>" portion is logged with
|
||||
Postfix 2.10 and later. </p>
|
||||
|
||||
<p> When an SMTP client makes too many connections at the same time,
|
||||
or when all <a href="postscreen.8.html">postscreen(8)</a> ports are busy, <a href="postscreen.8.html">postscreen(8)</a> rejects the
|
||||
|
@ -1044,6 +1082,15 @@ collect real-world statistics. This version still used the embarrassing
|
|||
implementation introduces the <a href="tlsproxy.8.html">tlsproxy(8)</a> event-driven TLS proxy
|
||||
that decrypts/encrypts the sessions for multiple SMTP clients. </p>
|
||||
|
||||
<p> The <a href="tlsproxy.8.html">tlsproxy(8)</a> implementation led to the discovery of a "new"
|
||||
class of vulnerability (<a
|
||||
href="http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2011-0411"
|
||||
>CVE-2011-0411</a>) that affected multiple implementations of SMTP,
|
||||
POP, IMAP, NNTP, and FTP over TLS. </p>
|
||||
|
||||
<p> <a href="postscreen.8.html">postscreen(8)</a> was officially released as part of the Postfix
|
||||
2.8 stable release in January 2011.</p>
|
||||
|
||||
</body>
|
||||
|
||||
</html>
|
||||
|
|
|
@ -48,13 +48,17 @@ care about these low-level details. </p>
|
|||
permissive = permit
|
||||
|
||||
<a href="postconf.5.html#smtpd_recipient_restrictions">smtpd_recipient_restrictions</a> =
|
||||
<a href="postconf.5.html#permit_mynetworks">permit_mynetworks</a>
|
||||
<a href="postconf.5.html#reject_unauth_destination">reject_unauth_destination</a>
|
||||
<a href="postconf.5.html#check_recipient_access">check_recipient_access</a> hash:/etc/postfix/recipient_access
|
||||
<a href="postconf.5.html#permit_mynetworks">permit_mynetworks</a>
|
||||
# <a href="postconf.5.html#reject_unauth_destination">reject_unauth_destination</a> is not needed here if the mail
|
||||
# relay policy is specified with <a href="postconf.5.html#smtpd_relay_restrictions">smtpd_relay_restrictions</a>
|
||||
# (available with Postfix 2.10 and later).
|
||||
<a href="postconf.5.html#reject_unauth_destination">reject_unauth_destination</a>
|
||||
<a href="postconf.5.html#check_recipient_access">check_recipient_access</a> hash:/etc/postfix/recipient_access
|
||||
...
|
||||
|
||||
/etc/postfix/recipient_access:
|
||||
joe@my.domain permissive
|
||||
jane@my.domain restrictive
|
||||
joe@my.domain permissive
|
||||
jane@my.domain restrictive
|
||||
</pre>
|
||||
</blockquote>
|
||||
|
||||
|
@ -102,6 +106,7 @@ to IP spoofing. </p>
|
|||
<pre>
|
||||
/etc/postfix/<a href="postconf.5.html">main.cf</a>:
|
||||
<a href="postconf.5.html#smtpd_recipient_restrictions">smtpd_recipient_restrictions</a> =
|
||||
...
|
||||
<a href="postconf.5.html#check_recipient_access">check_recipient_access</a> hash:/etc/postfix/access
|
||||
<i>...the usual stuff...</i>
|
||||
|
||||
|
@ -133,6 +138,7 @@ therefore is subject to SMTP sender spoofing. </p>
|
|||
<pre>
|
||||
/etc/postfix/<a href="postconf.5.html">main.cf</a>:
|
||||
<a href="postconf.5.html#smtpd_recipient_restrictions">smtpd_recipient_restrictions</a> =
|
||||
...
|
||||
<a href="postconf.5.html#check_recipient_access">check_recipient_access</a> hash:/etc/postfix/protected_destinations
|
||||
<i>...the usual stuff...</i>
|
||||
|
||||
|
@ -193,6 +199,7 @@ with LDAP or SQL. </p>
|
|||
<pre>
|
||||
/etc/postfix/<a href="postconf.5.html">main.cf</a>:
|
||||
<a href="postconf.5.html#smtpd_recipient_restrictions">smtpd_recipient_restrictions</a> =
|
||||
...
|
||||
<a href="postconf.5.html#check_sender_access">check_sender_access</a> hash:/etc/postfix/restricted_senders
|
||||
<i>...other stuff...</i>
|
||||
|
||||
|
|
|
@ -87,7 +87,7 @@ what envelope sender addresses the client may use. </p> </li>
|
|||
|
||||
<p> Successful authentication in the Postfix SMTP server requires
|
||||
a functional SASL framework. Configuring SASL should therefore
|
||||
always be the first step. </p>
|
||||
always be the first step, before configuring Postfix. </p>
|
||||
|
||||
<p> You can read more about the following topics: </p>
|
||||
|
||||
|
@ -1367,20 +1367,33 @@ for. Examples of possible SMTP clients authorizations are: </p>
|
|||
|
||||
<h4><a name="server_sasl_authz_relay">Mail relay authorization</a></h4>
|
||||
|
||||
<p> The <code><a href="postconf.5.html#permit_sasl_authenticated">permit_sasl_authenticated</a></code> restriction allows
|
||||
<p> With <code><a href="postconf.5.html#permit_sasl_authenticated">permit_sasl_authenticated</a></code> the Postfix SMTP
|
||||
server can allow
|
||||
SASL-authenticated SMTP clients to send mail to remote destinations.
|
||||
Add it to the list of <code><a href="postconf.5.html#smtpd_recipient_restrictions">smtpd_recipient_restrictions</a></code> as
|
||||
follows: </p>
|
||||
Examples:
|
||||
</p>
|
||||
|
||||
<blockquote>
|
||||
<pre>
|
||||
# With Postfix 2.10 and later, the mail relay policy is
|
||||
# preferably specified under <a href="postconf.5.html#smtpd_relay_restrictions">smtpd_relay_restrictions</a>.
|
||||
/etc/postfix/<a href="postconf.5.html">main.cf</a>:
|
||||
<a href="postconf.5.html#smtpd_relay_restrictions">smtpd_relay_restrictions</a> =
|
||||
<a href="postconf.5.html#permit_mynetworks">permit_mynetworks</a>
|
||||
<strong><a href="postconf.5.html#permit_sasl_authenticated">permit_sasl_authenticated</a></strong>
|
||||
<a href="postconf.5.html#reject_unauth_destination">reject_unauth_destination</a>
|
||||
</pre>
|
||||
|
||||
<pre>
|
||||
# Older configurations combine relay control and spam control under
|
||||
# <a href="postconf.5.html#smtpd_recipient_restrictions">smtpd_recipient_restrictions</a>. To use this example with Postfix ≥
|
||||
# 2.10 specify "<a href="postconf.5.html#smtpd_relay_restrictions">smtpd_relay_restrictions</a>=".
|
||||
/etc/postfix/<a href="postconf.5.html">main.cf</a>:
|
||||
<a href="postconf.5.html#smtpd_recipient_restrictions">smtpd_recipient_restrictions</a> =
|
||||
...
|
||||
<a href="postconf.5.html#permit_mynetworks">permit_mynetworks</a>
|
||||
<strong><a href="postconf.5.html#permit_sasl_authenticated">permit_sasl_authenticated</a></strong>
|
||||
<a href="postconf.5.html#reject_unauth_destination">reject_unauth_destination</a>
|
||||
...
|
||||
<a href="postconf.5.html#permit_mynetworks">permit_mynetworks</a>
|
||||
<strong><a href="postconf.5.html#permit_sasl_authenticated">permit_sasl_authenticated</a></strong>
|
||||
<a href="postconf.5.html#reject_unauth_destination">reject_unauth_destination</a>
|
||||
...other rules...
|
||||
</pre>
|
||||
</blockquote>
|
||||
|
||||
|
@ -1406,9 +1419,7 @@ use a particular envelope sender address: </p>
|
|||
<a href="postconf.5.html#smtpd_recipient_restrictions">smtpd_recipient_restrictions</a> =
|
||||
...
|
||||
<strong><a href="postconf.5.html#reject_sender_login_mismatch">reject_sender_login_mismatch</a></strong>
|
||||
<a href="postconf.5.html#permit_sasl_authenticated">permit_sasl_authenticated</a>
|
||||
<a href="postconf.5.html#permit_mynetworks">permit_mynetworks</a>
|
||||
<a href="postconf.5.html#reject_unauth_destination">reject_unauth_destination</a>
|
||||
<a href="postconf.5.html#permit_sasl_authenticated">permit_sasl_authenticated</a>
|
||||
...
|
||||
</pre>
|
||||
</blockquote>
|
||||
|
@ -1926,7 +1937,7 @@ font. </p>
|
|||
</blockquote>
|
||||
|
||||
<p> Instead of port 25 (smtp), specify port 587 (submission) where
|
||||
appriopriate. </p>
|
||||
appropriate. </p>
|
||||
|
||||
<h4>Encrypted SMTP session (TLS)</h4>
|
||||
|
||||
|
|
|
@ -60,10 +60,19 @@ anti-spammer blacklists. See, for example, the information on
|
|||
|
||||
<p> By default, Postfix has a moderately restrictive approach to
|
||||
mail relaying. Postfix forwards mail only from clients in trusted
|
||||
networks, or to domains that are configured as authorized relay
|
||||
destinations. For a description of the default policy, see the
|
||||
<a href="postconf.5.html#smtpd_recipient_restrictions">smtpd_recipient_restrictions</a> parameter in the <a href="postconf.5.html">postconf(5)</a> manual
|
||||
page, and the information that is referenced from there. </p>
|
||||
networks, from clients that have authenticated with SASL, or to
|
||||
domains that are configured as authorized relay
|
||||
destinations. For a description of the default mail relay policy,
|
||||
see the <a href="postconf.5.html#smtpd_relay_restrictions">smtpd_relay_restrictions</a> parameter in the <a href="postconf.5.html">postconf(5)</a> manual
|
||||
page, and the information that is referenced from there. </p>
|
||||
|
||||
<blockquote> <p> NOTE: Postfix versions before 2.10 did not have
|
||||
<a href="postconf.5.html#smtpd_relay_restrictions">smtpd_relay_restrictions</a>. They combined the mail relay and spam
|
||||
blocking policies, under <a href="postconf.5.html#smtpd_recipient_restrictions">smtpd_recipient_restrictions</a>. This could
|
||||
lead to unexpected results. For example, a permissive spam blocking
|
||||
policy could unexpectedly result in a permissive mail relay policy.
|
||||
An example of this is documented under "<a href="#danger">Dangerous
|
||||
use of smtpd_recipient_restrictions</a>". </p> </blockquote>
|
||||
|
||||
<p> Most of the Postfix SMTP server access controls are targeted
|
||||
at stopping junk email. </p>
|
||||
|
@ -178,8 +187,23 @@ described in the <a href="postconf.5.html">postconf(5)</a> manual page. </p>
|
|||
# Don't accept mail from domains that don't exist.
|
||||
<a href="postconf.5.html#smtpd_sender_restrictions">smtpd_sender_restrictions</a> = <a href="postconf.5.html#reject_unknown_sender_domain">reject_unknown_sender_domain</a>
|
||||
|
||||
# Whitelisting: local clients may specify any destination domain.
|
||||
<a href="postconf.5.html#smtpd_recipient_restrictions">smtpd_recipient_restrictions</a> = <a href="postconf.5.html#permit_mynetworks">permit_mynetworks</a>, <a href="postconf.5.html#reject_unauth_destination">reject_unauth_destination</a>
|
||||
# Relay control (Postfix 2.10 and later): local clients and
|
||||
# authenticated clients may specify any destination domain.
|
||||
<a href="postconf.5.html#smtpd_relay_restrictions">smtpd_relay_restrictions</a> = <a href="postconf.5.html#permit_mynetworks">permit_mynetworks</a>,
|
||||
<a href="postconf.5.html#permit_sasl_authenticated">permit_sasl_authenticated</a>,
|
||||
<a href="postconf.5.html#reject_unauth_destination">reject_unauth_destination</a>
|
||||
|
||||
# Spam control: exclude local clients and authenticated clients
|
||||
# from DNSBL lookups.
|
||||
<a href="postconf.5.html#smtpd_recipient_restrictions">smtpd_recipient_restrictions</a> = <a href="postconf.5.html#permit_mynetworks">permit_mynetworks</a>,
|
||||
<a href="postconf.5.html#permit_sasl_authenticated">permit_sasl_authenticated</a>,
|
||||
# <a href="postconf.5.html#reject_unauth_destination">reject_unauth_destination</a> is not needed here if the mail
|
||||
# relay policy is specified under <a href="postconf.5.html#smtpd_relay_restrictions">smtpd_relay_restrictions</a>
|
||||
# (available with Postfix 2.10 and later).
|
||||
<a href="postconf.5.html#reject_unauth_destination">reject_unauth_destination</a>
|
||||
<a href="postconf.5.html#reject_rbl_client">reject_rbl_client</a> zen.spamhaus.org,
|
||||
<a href="postconf.5.html#reject_rhsbl_helo">reject_rhsbl_helo</a> dbl.spamhaus.org,
|
||||
<a href="postconf.5.html#reject_rhsbl_sender">reject_rhsbl_sender</a> dbl.spamhaus.org
|
||||
|
||||
# Block clients that speak too early.
|
||||
<a href="postconf.5.html#smtpd_data_restrictions">smtpd_data_restrictions</a> = <a href="postconf.5.html#reject_unauth_pipelining">reject_unauth_pipelining</a>
|
||||
|
@ -205,28 +229,47 @@ DEFER result. </p>
|
|||
|
||||
<table border="1">
|
||||
|
||||
<tr> <th> Restriction list name </th> <th> Status </th> <th> Effect
|
||||
<tr> <th> Restriction list name </th> <th> Version </th> <th> Status
|
||||
</th> <th> Effect
|
||||
of REJECT or DEFER result </th> </tr>
|
||||
|
||||
<tr> <td> <a href="postconf.5.html#smtpd_client_restrictions">smtpd_client_restrictions</a> </td> <td> Optional </td> <td>
|
||||
<tr> <td> <a href="postconf.5.html#smtpd_client_restrictions">smtpd_client_restrictions</a> </td> <td> All </td> <td>
|
||||
Optional </td> <td>
|
||||
Reject all client commands </td> </tr>
|
||||
|
||||
<tr> <td> <a href="postconf.5.html#smtpd_helo_restrictions">smtpd_helo_restrictions</a> </td> <td> Optional </td> <td>
|
||||
<tr> <td> <a href="postconf.5.html#smtpd_helo_restrictions">smtpd_helo_restrictions</a> </td> <td> All </td> <td> Optional
|
||||
</td> <td>
|
||||
Reject HELO/EHLO information </td> </tr>
|
||||
|
||||
<tr> <td> <a href="postconf.5.html#smtpd_sender_restrictions">smtpd_sender_restrictions</a> </td> <td> Optional </td> <td>
|
||||
<tr> <td> <a href="postconf.5.html#smtpd_sender_restrictions">smtpd_sender_restrictions</a> </td> <td> All </td> <td>
|
||||
Optional </td> <td>
|
||||
Reject MAIL FROM information </td> </tr>
|
||||
|
||||
<tr> <td> <a href="postconf.5.html#smtpd_recipient_restrictions">smtpd_recipient_restrictions</a> </td> <td> Required </td>
|
||||
<td> Reject RCPT TO information </td> </tr>
|
||||
<tr> <td rowspan="2"> <a href="postconf.5.html#smtpd_relay_restrictions">smtpd_relay_restrictions</a> </td> <td> ≥ 2.10
|
||||
</td> <td> Required if <a href="postconf.5.html#smtpd_recipient_restrictions">smtpd_recipient_restrictions</a> does not enforce
|
||||
relay policy</td>
|
||||
<td rowspan="2"> Reject RCPT TO information </td> </tr>
|
||||
|
||||
<tr> <td> <a href="postconf.5.html#smtpd_data_restrictions">smtpd_data_restrictions</a> </td> <td> Optional </td> <td>
|
||||
<tr> <td> < 2.10</td> <td> Not available </td>
|
||||
</tr>
|
||||
|
||||
<tr> <td rowspan="2"> <a href="postconf.5.html#smtpd_recipient_restrictions">smtpd_recipient_restrictions</a> </td> <td> ≥
|
||||
2.10 </td> <td> Required if <a href="postconf.5.html#smtpd_relay_restrictions">smtpd_relay_restrictions</a> does not enforce
|
||||
relay policy</td>
|
||||
<td rowspan="2"> Reject RCPT TO information </td> </tr>
|
||||
|
||||
<tr> <td> < 2.10</td> <td> Required </td> </tr>
|
||||
|
||||
<tr> <td> <a href="postconf.5.html#smtpd_data_restrictions">smtpd_data_restrictions</a> </td> <td> ≥ 2.0 </td> <td>
|
||||
Optional </td> <td>
|
||||
Reject DATA command </td> </tr>
|
||||
|
||||
<tr> <td> <a href="postconf.5.html#smtpd_end_of_data_restrictions">smtpd_end_of_data_restrictions</a> </td> <td> Optional </td> <td>
|
||||
<tr> <td> <a href="postconf.5.html#smtpd_end_of_data_restrictions">smtpd_end_of_data_restrictions</a> </td> <td> ≥ 2.2 </td>
|
||||
<td> Optional </td> <td>
|
||||
Reject END-OF-DATA command </td> </tr>
|
||||
|
||||
<tr> <td> <a href="postconf.5.html#smtpd_etrn_restrictions">smtpd_etrn_restrictions</a> </td> <td> Optional </td> <td>
|
||||
<tr> <td> <a href="postconf.5.html#smtpd_etrn_restrictions">smtpd_etrn_restrictions</a> </td> <td> All </td> <td> Optional
|
||||
</td> <td>
|
||||
Reject ETRN command </td> </tr>
|
||||
|
||||
</table>
|
||||
|
@ -248,10 +291,10 @@ and so on. This approach turned out to be difficult to use. </p>
|
|||
helo and sender restriction lists until the RCPT TO or ETRN command.
|
||||
This behavior is controlled by the <a href="postconf.5.html#smtpd_delay_reject">smtpd_delay_reject</a> parameter.
|
||||
Restriction lists are still evaluated in the proper order of (client,
|
||||
helo, etrn) or (client, helo, sender, recipient, data, or end-of-data)
|
||||
restrictions.
|
||||
helo, etrn) or (client, helo, sender, relay, recipient, data, or
|
||||
end-of-data) restrictions.
|
||||
When a restriction list (example: client) evaluates to REJECT or
|
||||
DEFER the other restriction lists (example: helo, sender, etc.)
|
||||
DEFER the restriction lists that follow (example: helo, sender, etc.)
|
||||
are skipped. </p>
|
||||
|
||||
<p> Around the time that <a href="postconf.5.html#smtpd_delay_reject">smtpd_delay_reject</a> was introduced, Postfix
|
||||
|
@ -300,6 +343,12 @@ list evaluates to REJECT or DEFER, the recipient address is rejected;
|
|||
no surprises here. If the result is PERMIT, then the recipient
|
||||
address is accepted. And this is where surprises can happen. </p>
|
||||
|
||||
<p> The problem is that Postfix versions before 2.10 did not have
|
||||
<a href="postconf.5.html#smtpd_relay_restrictions">smtpd_relay_restrictions</a>. They combined the mail relay and spam
|
||||
blocking policies, under <a href="postconf.5.html#smtpd_recipient_restrictions">smtpd_recipient_restrictions</a>. The result
|
||||
is that a permissive spam blocking policy could unexpectedly result
|
||||
in a permissive mail relay policy. </p>
|
||||
|
||||
<p> Here is an example that shows when a PERMIT result can result
|
||||
in too much access permission: </p>
|
||||
|
||||
|
@ -309,7 +358,7 @@ in too much access permission: </p>
|
|||
3 <a href="postconf.5.html#permit_mynetworks">permit_mynetworks</a>
|
||||
4 <a href="postconf.5.html#check_helo_access">check_helo_access</a> hash:/etc/postfix/helo_access
|
||||
5 <a href="postconf.5.html#reject_unknown_helo_hostname">reject_unknown_helo_hostname</a>
|
||||
6 <a href="postconf.5.html#reject_unauth_destination">reject_unauth_destination</a>
|
||||
6 <b><a href="postconf.5.html#reject_unauth_destination">reject_unauth_destination</a></b>
|
||||
7
|
||||
8 /etc/postfix/helo_access:
|
||||
9 localhost.localdomain PERMIT
|
||||
|
@ -326,14 +375,31 @@ localhost.localdomain". </p>
|
|||
that announces itself as "localhost.localdomain", making Postfix
|
||||
an open relay for all such hosts. </p>
|
||||
|
||||
<p> In order to avoid surprises like these with
|
||||
<a href="postconf.5.html#smtpd_recipient_restrictions">smtpd_recipient_restrictions</a>, you should place non-recipient
|
||||
<p> With Postfix before version 2.10 you should place non-recipient
|
||||
restrictions AFTER the <a href="postconf.5.html#reject_unauth_destination">reject_unauth_destination</a> restriction, not
|
||||
before. In the above example, the HELO based restrictions should
|
||||
be placed AFTER <a href="postconf.5.html#reject_unauth_destination">reject_unauth_destination</a>, or better, the HELO
|
||||
based restrictions should be placed under <a href="postconf.5.html#smtpd_helo_restrictions">smtpd_helo_restrictions</a>
|
||||
where they can do no harm. </p>
|
||||
|
||||
<pre>
|
||||
1 /etc/postfix/<a href="postconf.5.html">main.cf</a>:
|
||||
2 <a href="postconf.5.html#smtpd_recipient_restrictions">smtpd_recipient_restrictions</a> =
|
||||
3 <a href="postconf.5.html#permit_mynetworks">permit_mynetworks</a>
|
||||
4 <b><a href="postconf.5.html#reject_unauth_destination">reject_unauth_destination</a></b>
|
||||
5 <a href="postconf.5.html#check_helo_access">check_helo_access</a> hash:/etc/postfix/helo_access
|
||||
6 <a href="postconf.5.html#reject_unknown_helo_hostname">reject_unknown_helo_hostname</a>
|
||||
7
|
||||
8 /etc/postfix/helo_access:
|
||||
9 localhost.localdomain PERMIT
|
||||
</pre>
|
||||
|
||||
<p> The above mistake will not happen with Postfix 2.10 and later,
|
||||
when the relay policy is specified under <a href="postconf.5.html#smtpd_relay_restrictions">smtpd_relay_restrictions</a>,
|
||||
and the spam blocking policy under <a href="postconf.5.html#smtpd_recipient_restrictions">smtpd_recipient_restrictions</a>.
|
||||
Then, a permissive spam blocking policy will not result in a
|
||||
permissive mail relay policy. </p>
|
||||
|
||||
<h2> <a name="testing"> SMTP access rule testing </a> </h2>
|
||||
|
||||
<p> Postfix has several features that aid in SMTP access rule
|
||||
|
@ -348,18 +414,21 @@ sender. Specify "<a href="postconf.5.html#soft_bounce">soft_bounce</a> = yes" in
|
|||
the Postfix SMTP server from rejecting mail permanently, by changing
|
||||
all 5xx SMTP reply codes into 4xx. </p> </dd>
|
||||
|
||||
<dt> <a href="postconf.5.html#warn_if_reject">warn_if_reject</a> </dt> <dd> <p> This is a different safety net
|
||||
that changes SMTP server REJECT actions into warnings. Instead of
|
||||
rejecting a command, Postfix logs what it would reject. Specify
|
||||
"<a href="postconf.5.html#warn_if_reject">warn_if_reject</a>" in an SMTP access restriction list, before the
|
||||
restriction that you want to test without actually rejecting mail.
|
||||
</p> </dd>
|
||||
<dt> <a href="postconf.5.html#warn_if_reject">warn_if_reject</a> </dt> <dd> <p> When placed before a reject-type
|
||||
restriction, access table query, or <a href="postconf.5.html#check_policy_service">check_policy_service</a> query,
|
||||
this logs a "reject_warning" message instead of rejecting a request
|
||||
(when a reject-type restriction fails due to a temporary error,
|
||||
this logs a "reject_warning" message for any implicit "<a href="postconf.5.html#defer_if_permit">defer_if_permit</a>"
|
||||
actions that would normally prevent mail from being accepted by
|
||||
some later access restriction). This feature has no effect on
|
||||
<a href="postconf.5.html#defer_if_reject">defer_if_reject</a> restrictions. </p> </dd>
|
||||
|
||||
<dt> XCLIENT </dt> <dd> <p> With this Postfix 2.1 feature, authorized
|
||||
SMTP clients can impersonate other systems, so that you can do
|
||||
realistic SMTP access rule tests. Examples of how to impersonate
|
||||
other systems for access rule testing are given at the end of the
|
||||
<a href="XCLIENT_README.html">XCLIENT_README</a> document. </p> </dd>
|
||||
<dt> XCLIENT </dt> <dd> <p> With this feature, an authorized SMTP
|
||||
client can impersonate other systems and perform realistic SMTP
|
||||
access rule tests. Examples of how to impersonate other systems
|
||||
for access rule testing are given at the end of the <a href="XCLIENT_README.html">XCLIENT_README</a>
|
||||
document. <br> This feature is available in Postfix 2.1. </p>
|
||||
</dd>
|
||||
|
||||
</dl>
|
||||
|
||||
|
|
|
@ -281,6 +281,10 @@ specified with the <b>user</b> attribute. </p>
|
|||
"-", to avoid "connection refused" and other problems when you
|
||||
increase the smtpd process limit. </p>
|
||||
|
||||
<li> <p> Line 8: <a href="postconf.5.html#reject_unauth_destination">reject_unauth_destination</a> is not needed here if
|
||||
the mail relay policy is specified with <a href="postconf.5.html#smtpd_relay_restrictions">smtpd_relay_restrictions</a>
|
||||
(available with Postfix 2.10 and later). </p>
|
||||
|
||||
<li> <p> Lines 8, 9: always specify "<a href="postconf.5.html#check_policy_service">check_policy_service</a>" AFTER
|
||||
"<a href="postconf.5.html#reject_unauth_destination">reject_unauth_destination</a>" or else your system could become an
|
||||
open relay. </p>
|
||||
|
@ -299,8 +303,8 @@ of a <a href="master.5.html">master.cf</a> service name (in the above example, "
|
|||
built-in suffix (in the above example: "_time_limit"). </p>
|
||||
</blockquote>
|
||||
|
||||
<li> <p> Solaris UNIX-domain sockets do not work reliably. Use
|
||||
TCP sockets instead: </p>
|
||||
<li> <p> With Solaris < 9, or Postfix < 2.10 on any Solaris
|
||||
version, use TCP sockets instead of UNIX-domain sockets: </p>
|
||||
|
||||
</ul>
|
||||
|
||||
|
@ -436,6 +440,10 @@ SMTP server process that talks to it.
|
|||
See the <a href="spawn.8.html">spawn(8)</a> manpage for more information about the
|
||||
<a href="postconf.5.html#transport_time_limit"><i>transport</i>_time_limit</a> parameter. </p>
|
||||
|
||||
<li> <p> Line 9: <a href="postconf.5.html#reject_unauth_destination">reject_unauth_destination</a> is not needed here if
|
||||
the mail relay policy is specified with <a href="postconf.5.html#smtpd_relay_restrictions">smtpd_relay_restrictions</a>
|
||||
(available with Postfix 2.10 and later). </p>
|
||||
|
||||
<blockquote> <p> Note: the "<a href="postconf.5.html#transport_time_limit">greylist_time_limit</a>" parameter will not
|
||||
show up in "postconf" command output before Postfix version 2.9.
|
||||
This limitation applies to many parameters whose name is a combination
|
||||
|
@ -445,7 +453,8 @@ a built-in suffix (in the above example: "_time_limit"). </p>
|
|||
|
||||
</ul>
|
||||
|
||||
<p> On Solaris you must use inet: style sockets instead of unix:
|
||||
<p> With Solaris < 9, or Postfix < 2.10 on any Solaris
|
||||
version, use inet: style sockets instead of unix:
|
||||
style, as detailed in the "<a href="#client_config">Policy
|
||||
client/server configuration</a>" section above. </p>
|
||||
|
||||
|
@ -497,10 +506,15 @@ forged MAIL FROM domains could be found at
|
|||
|
||||
<ul>
|
||||
|
||||
<li> <p> Line 9: On Solaris you must use inet: style sockets
|
||||
<li> <p> Line 9: On Solaris < 9, or Postfix < 2.10 on any
|
||||
Solaris version, use inet: style sockets
|
||||
instead of unix: style, as detailed in the "<a href="#greylist">Example:
|
||||
greylist policy server</a>" section above. </p>
|
||||
|
||||
<li> <p> Line 5: <a href="postconf.5.html#reject_unauth_destination">reject_unauth_destination</a> is not needed here if
|
||||
the mail relay policy is specified with <a href="postconf.5.html#smtpd_relay_restrictions">smtpd_relay_restrictions</a>
|
||||
(available with Postfix 2.10 and later). </p>
|
||||
|
||||
<li> <p> Line 6: Be sure to specify "<a href="postconf.5.html#check_sender_access">check_sender_access</a>" AFTER
|
||||
"<a href="postconf.5.html#reject_unauth_destination">reject_unauth_destination</a>" or else your system could become an
|
||||
open mail relay. </p>
|
||||
|
@ -547,10 +561,15 @@ most of the delays and most of the database pollution problem. </p>
|
|||
|
||||
<ul>
|
||||
|
||||
<li> <p> Line 7: On Solaris you must use inet: style sockets
|
||||
<li> <p> Line 7: On Solaris < 9, or Postfix < 2.10 on any
|
||||
Solaris version, use inet: style sockets
|
||||
instead of unix: style, as detailed in the "<a href="#greylist">Example:
|
||||
greylist policy server</a>" section above. </p>
|
||||
|
||||
<li> <p> Line 5: <a href="postconf.5.html#reject_unauth_destination">reject_unauth_destination</a> is not needed here if
|
||||
the mail relay policy is specified with <a href="postconf.5.html#smtpd_relay_restrictions">smtpd_relay_restrictions</a>
|
||||
(available with Postfix 2.10 and later). </p>
|
||||
|
||||
<li> <p> Lines 6-7: Be sure to specify <a href="postconf.5.html#check_sender_access">check_sender_access</a> and
|
||||
<a href="postconf.5.html#check_policy_service">check_policy_service</a> AFTER <a href="postconf.5.html#reject_unauth_destination">reject_unauth_destination</a> or else your
|
||||
system could become an open mail relay. </p>
|
||||
|
|
|
@ -40,43 +40,43 @@ except that the latter uses a dedicated protocol instead of SMTP.
|
|||
|
||||
<tr>
|
||||
|
||||
<td bgcolor="#f0f0ff" align="center" valign="middle"
|
||||
width="10%"> Internet </td>
|
||||
<td bgcolor="#f0f0ff" align="center" valign="middle"
|
||||
width="10%"> Internet </td>
|
||||
|
||||
<td align="center" valign="middle" width="5%"> <tt> -> </tt> </td>
|
||||
|
||||
<td bgcolor="#f0f0ff" align="center" valign="middle"
|
||||
width="10%"> <a href="smtpd.8.html">Postfix SMTP server</a>
|
||||
</td>
|
||||
<td bgcolor="#f0f0ff" align="center" valign="middle"
|
||||
width="10%"> <a href="smtpd.8.html">Postfix SMTP server</a>
|
||||
</td>
|
||||
|
||||
<td align="center" valign="middle" width="5%"> <tt> -> </tt> </td>
|
||||
|
||||
<td bgcolor="#f0f0ff" align="center" valign="middle"
|
||||
width="10%"> <b>Before</b> <b>queue</b> <b>filter</b> </td>
|
||||
<td bgcolor="#f0f0ff" align="center" valign="middle"
|
||||
width="10%"> <b>Before</b> <b>queue</b> <b>filter</b> </td>
|
||||
|
||||
<td align="center" valign="middle" width="5%"> <tt> -> </tt> </td>
|
||||
|
||||
<td bgcolor="#f0f0ff" align="center" valign="middle"
|
||||
width="10%"> <a href="smtpd.8.html">Postfix SMTP server</a>
|
||||
</td>
|
||||
<td bgcolor="#f0f0ff" align="center" valign="middle"
|
||||
width="10%"> <a href="smtpd.8.html">Postfix SMTP server</a>
|
||||
</td>
|
||||
|
||||
<td align="center" valign="middle" width="5%"> <tt> -> </tt> </td>
|
||||
|
||||
<td bgcolor="#f0f0ff" align="center" valign="middle"
|
||||
width="10%"> <a href="cleanup.8.html">Postfix cleanup
|
||||
server</a> </td>
|
||||
<td bgcolor="#f0f0ff" align="center" valign="middle"
|
||||
width="10%"> <a href="cleanup.8.html">Postfix cleanup
|
||||
server</a> </td>
|
||||
|
||||
<td align="center" valign="middle" width="5%"> <tt> -> </tt> </td>
|
||||
|
||||
<td bgcolor="#f0f0ff" align="center" valign="middle"
|
||||
width="10%"> Postfix queue </td>
|
||||
<td bgcolor="#f0f0ff" align="center" valign="middle"
|
||||
width="10%"> Postfix queue </td>
|
||||
|
||||
<td align="center" valign="middle" width="5%"> <tt> -< </tt> </td>
|
||||
|
||||
<td bgcolor="#f0f0ff" align="center" valign="middle"
|
||||
width="10%"> <a href="smtp.8.html">smtp</a><br> <a
|
||||
href="local.8.html">local</a><br> <a
|
||||
href="virtual.8.html">virtual</a> </td>
|
||||
<td bgcolor="#f0f0ff" align="center" valign="middle"
|
||||
width="10%"> <a href="smtp.8.html">smtp</a><br> <a
|
||||
href="local.8.html">local</a><br> <a
|
||||
href="virtual.8.html">virtual</a> </td>
|
||||
|
||||
</tr>
|
||||
|
||||
|
@ -213,26 +213,26 @@ PERL/SMTP content filtering framework. See:
|
|||
|
||||
<td align="center" valign="middle" width="5%"> <tt> -> </tt> </td>
|
||||
|
||||
<td bgcolor="#f0f0ff" align="center" valign="middle"
|
||||
width="10%"> <a href="smtpd.8.html">Postfix SMTP server on
|
||||
port 25</a> </td>
|
||||
<td bgcolor="#f0f0ff" align="center" valign="middle"
|
||||
width="10%"> <a href="smtpd.8.html">Postfix SMTP server on
|
||||
port 25</a> </td>
|
||||
|
||||
<td align="center" valign="middle" width="5%"> <tt> -> </tt> </td>
|
||||
|
||||
<td bgcolor="#f0f0ff" align="center" valign="middle"
|
||||
width="10%"> filter on localhost port 10025 </td>
|
||||
<td bgcolor="#f0f0ff" align="center" valign="middle"
|
||||
width="10%"> filter on localhost port 10025 </td>
|
||||
|
||||
<td align="center" valign="middle" width="5%"> <tt> -> </tt> </td>
|
||||
|
||||
<td bgcolor="#f0f0ff" align="center" valign="middle"
|
||||
width="10%"> <a href="smtpd.8.html">Postfix SMTP server on
|
||||
localhost port 10026</a> </td>
|
||||
<td bgcolor="#f0f0ff" align="center" valign="middle"
|
||||
width="10%"> <a href="smtpd.8.html">Postfix SMTP server on
|
||||
localhost port 10026</a> </td>
|
||||
|
||||
<td align="center" valign="middle" width="5%"> <tt> -> </tt> </td>
|
||||
|
||||
<td bgcolor="#f0f0ff" align="center" valign="middle"
|
||||
width="10%"> <a href="cleanup.8.html">Postfix cleanup
|
||||
server</a> </td>
|
||||
<td bgcolor="#f0f0ff" align="center" valign="middle"
|
||||
width="10%"> <a href="cleanup.8.html">Postfix cleanup
|
||||
server</a> </td>
|
||||
|
||||
<td align="center" valign="middle" width="5%"> <tt> -> </tt> </td>
|
||||
|
||||
|
@ -261,8 +261,8 @@ PERL/SMTP content filtering framework. See:
|
|||
smtp inet n - n - 20 smtpd
|
||||
-o <a href="postconf.5.html#smtpd_proxy_filter">smtpd_proxy_filter</a>=127.0.0.1:10025
|
||||
-o <a href="postconf.5.html#smtpd_client_connection_count_limit">smtpd_client_connection_count_limit</a>=10
|
||||
# Postfix 2.7 and later performance feature.
|
||||
# -o <a href="postconf.5.html#smtpd_proxy_options">smtpd_proxy_options</a>=speed_adjust
|
||||
# Postfix 2.7 and later performance feature.
|
||||
# -o <a href="postconf.5.html#smtpd_proxy_options">smtpd_proxy_options</a>=speed_adjust
|
||||
#
|
||||
# After-filter SMTP server. Receive mail from the content filter
|
||||
# on localhost port 10026.
|
||||
|
@ -272,6 +272,8 @@ PERL/SMTP content filtering framework. See:
|
|||
-o <a href="postconf.5.html#smtpd_client_restrictions">smtpd_client_restrictions</a>=
|
||||
-o <a href="postconf.5.html#smtpd_helo_restrictions">smtpd_helo_restrictions</a>=
|
||||
-o <a href="postconf.5.html#smtpd_sender_restrictions">smtpd_sender_restrictions</a>=
|
||||
# Postfix 2.10 and later: specify empty <a href="postconf.5.html#smtpd_relay_restrictions">smtpd_relay_restrictions</a>.
|
||||
-o <a href="postconf.5.html#smtpd_relay_restrictions">smtpd_relay_restrictions</a>=
|
||||
-o <a href="postconf.5.html#smtpd_recipient_restrictions">smtpd_recipient_restrictions</a>=<a href="postconf.5.html#permit_mynetworks">permit_mynetworks</a>,reject
|
||||
-o <a href="postconf.5.html#smtpd_data_restrictions">smtpd_data_restrictions</a>=
|
||||
-o <a href="postconf.5.html#mynetworks">mynetworks</a>=127.0.0.0/8
|
||||
|
|
|
@ -102,20 +102,18 @@ mail from the network, and it does not deliver any mail locally. A
|
|||
null client typically uses POP, IMAP or NFS for mailbox access. </p>
|
||||
|
||||
<p> In this example we assume that the Internet domain name is
|
||||
"example.com" and that the machine is named "nullclient.example.com".
|
||||
"example.com" and that the machine is named "hostname.example.com".
|
||||
As usual, the examples show only parameters that are not left at
|
||||
their default settings. </p>
|
||||
|
||||
<blockquote>
|
||||
<pre>
|
||||
1 /etc/postfix/<a href="postconf.5.html">main.cf</a>:
|
||||
2 <a href="postconf.5.html#myorigin">myorigin</a> = $<a href="postconf.5.html#mydomain">mydomain</a>
|
||||
3 <a href="postconf.5.html#relayhost">relayhost</a> = $<a href="postconf.5.html#mydomain">mydomain</a>
|
||||
4 <a href="postconf.5.html#inet_interfaces">inet_interfaces</a> = loopback-only
|
||||
5 <a href="postconf.5.html#local_transport">local_transport</a> = <a href="error.8.html">error</a>:local delivery is disabled
|
||||
6
|
||||
7 /etc/postfix/<a href="master.5.html">master.cf</a>:
|
||||
8 Comment out the local delivery agent entry
|
||||
2 <a href="postconf.5.html#myhostname">myhostname</a> = hostname.example.com
|
||||
3 <a href="postconf.5.html#myorigin">myorigin</a> = $<a href="postconf.5.html#mydomain">mydomain</a>
|
||||
4 <a href="postconf.5.html#relayhost">relayhost</a> = $<a href="postconf.5.html#mydomain">mydomain</a>
|
||||
5 <a href="postconf.5.html#inet_interfaces">inet_interfaces</a> = loopback-only
|
||||
6 <a href="postconf.5.html#mydestination">mydestination</a> =
|
||||
</pre>
|
||||
</blockquote>
|
||||
|
||||
|
@ -123,19 +121,29 @@ their default settings. </p>
|
|||
|
||||
<ul>
|
||||
|
||||
<li> <p> Line 2: Send mail as "user@example.com" (instead of
|
||||
"user@nullclient.example.com"), so that nothing ever has a reason
|
||||
to send mail to "user@nullclient.example.com". </p>
|
||||
<li> <p> Line 2: Set <a href="postconf.5.html#myhostname">myhostname</a> to hostname.example.com, in case
|
||||
the machine name isn't set to a fully-qualified domain name (use
|
||||
the command "postconf -d <a href="postconf.5.html#myhostname">myhostname</a>" to find out what the machine
|
||||
name is). </p>
|
||||
|
||||
<li> <p> Line 3: Forward all mail to the mail server that is
|
||||
<li> <p> Line 2: The <a href="postconf.5.html#myhostname">myhostname</a> value also provides the default
|
||||
value for the <a href="postconf.5.html#mydomain">mydomain</a> parameter (here, "<a href="postconf.5.html#mydomain">mydomain</a> = example.com").
|
||||
</p>
|
||||
|
||||
<li> <p> Line 3: Send mail as "user@example.com" (instead of
|
||||
"user@hostname.example.com"), so that nothing ever has a reason
|
||||
to send mail to "user@hostname.example.com". </p>
|
||||
|
||||
<li> <p> Line 4: Forward all mail to the mail server that is
|
||||
responsible for the "example.com" domain. This prevents mail from
|
||||
getting stuck on the null client if it is turned off while some
|
||||
remote destination is unreachable. </p>
|
||||
remote destination is unreachable. Specify a real hostname
|
||||
here if your "example.com" domain has no MX record. </p>
|
||||
|
||||
<li> <p> Line 4: Do not accept mail from the network. </p>
|
||||
<li> <p> Line 5: Do not accept mail from the network. </p>
|
||||
|
||||
<li> <p> Lines 5-8: Disable local mail delivery. All mail goes to
|
||||
the mail server as specified in line 3. </p>
|
||||
<li> <p> Line 6: Disable local mail delivery. All mail goes to
|
||||
the mail server as specified in line 4. </p>
|
||||
|
||||
</ul>
|
||||
|
||||
|
@ -347,31 +355,41 @@ is the real purpose of the firewall email function. </p>
|
|||
3 <a href="postconf.5.html#relay_domains">relay_domains</a> = example.com
|
||||
4 <a href="postconf.5.html#parent_domain_matches_subdomains">parent_domain_matches_subdomains</a> =
|
||||
5 <a href="postconf.5.html#debug_peer_list">debug_peer_list</a> smtpd_access_maps
|
||||
6 <a href="postconf.5.html#smtpd_recipient_restrictions">smtpd_recipient_restrictions</a> =
|
||||
7 <a href="postconf.5.html#permit_mynetworks">permit_mynetworks</a> <a href="postconf.5.html#reject_unauth_destination">reject_unauth_destination</a>
|
||||
8
|
||||
9 <a href="postconf.5.html#relay_recipient_maps">relay_recipient_maps</a> = hash:/etc/postfix/relay_recipients
|
||||
10 <a href="postconf.5.html#transport_maps">transport_maps</a> = hash:/etc/postfix/transport
|
||||
11
|
||||
12 /etc/postfix/relay_recipients:
|
||||
13 user1@example.com x
|
||||
14 user2@example.com x
|
||||
15 . . .
|
||||
16
|
||||
17 /etc/postfix/transport:
|
||||
18 example.com <a href="smtp.8.html">smtp</a>:[inside-gateway.example.com]
|
||||
<br>
|
||||
6a # Postfix 2.10 and later support separate relay control and
|
||||
7a # spam control.
|
||||
8a <a href="postconf.5.html#smtpd_relay_restrictions">smtpd_relay_restrictions</a> =
|
||||
9a <a href="postconf.5.html#permit_mynetworks">permit_mynetworks</a> <a href="postconf.5.html#reject_unauth_destination">reject_unauth_destination</a>
|
||||
10a <a href="postconf.5.html#smtpd_recipient_restrictions">smtpd_recipient_restrictions</a> = ...spam blocking rules....
|
||||
<br>
|
||||
6b # Older configurations combine relay control and spam control. To
|
||||
7b # use this with Postfix ≥ 2.10 specify "<a href="postconf.5.html#smtpd_relay_restrictions">smtpd_relay_restrictions</a>=".
|
||||
8b <a href="postconf.5.html#smtpd_recipient_restrictions">smtpd_recipient_restrictions</a> =
|
||||
9b <a href="postconf.5.html#permit_mynetworks">permit_mynetworks</a> <a href="postconf.5.html#reject_unauth_destination">reject_unauth_destination</a>
|
||||
10b ...spam blocking rules....
|
||||
<br>
|
||||
11 <a href="postconf.5.html#relay_recipient_maps">relay_recipient_maps</a> = hash:/etc/postfix/relay_recipients
|
||||
12 <a href="postconf.5.html#transport_maps">transport_maps</a> = hash:/etc/postfix/transport
|
||||
13
|
||||
14 /etc/postfix/relay_recipients:
|
||||
15 user1@example.com x
|
||||
16 user2@example.com x
|
||||
17 . . .
|
||||
18
|
||||
19 /etc/postfix/transport:
|
||||
20 example.com <a href="smtp.8.html">smtp</a>:[inside-gateway.example.com]
|
||||
</pre>
|
||||
</blockquote>
|
||||
|
||||
<p> Translation: </p>
|
||||
|
||||
<ul>
|
||||
|
||||
<li><p> Lines 1-7: Accept mail from local systems in $<a href="postconf.5.html#mynetworks">mynetworks</a>,
|
||||
|
||||
<li><p> Lines 1-10: Accept mail from local systems in $<a href="postconf.5.html#mynetworks">mynetworks</a>,
|
||||
and accept mail from outside for "user@example.com" but not for
|
||||
"user@anything.example.com". The magic is in lines 4-5. </p>
|
||||
|
||||
<li> <p> Lines 9, 12-14: Define the list of valid addresses in the
|
||||
<li> <p> Lines 11, 13-16: Define the list of valid addresses in the
|
||||
"example.com" domain that can receive mail from the Internet. This
|
||||
prevents the mail queue from filling up with undeliverable
|
||||
MAILER-DAEMON messages. If you can't maintain a list of valid
|
||||
|
@ -379,7 +397,7 @@ recipients then you must specify "<a href="postconf.5.html#relay_recipient_maps"
|
|||
is, an empty value), or you must specify an "@example.com x"
|
||||
wild-card in the relay_recipients table. </p>
|
||||
|
||||
<li> <p> Lines 10, 17-18: Route mail for "example.com" to the inside
|
||||
<li> <p> Lines 12, 19-20: Route mail for "example.com" to the inside
|
||||
gateway machine. The <tt>[]</tt> forces Postfix to do no MX lookup.
|
||||
</p>
|
||||
|
||||
|
@ -521,18 +539,28 @@ is all you need: </p>
|
|||
3
|
||||
4 /etc/postfix/<a href="postconf.5.html">main.cf</a>:
|
||||
5 <a href="postconf.5.html#relay_domains">relay_domains</a> = . . . the.backed-up.domain.tld
|
||||
6 <a href="postconf.5.html#smtpd_recipient_restrictions">smtpd_recipient_restrictions</a> =
|
||||
7 <a href="postconf.5.html#permit_mynetworks">permit_mynetworks</a> <a href="postconf.5.html#reject_unauth_destination">reject_unauth_destination</a>
|
||||
8
|
||||
9 # You must specify your NAT/proxy external address.
|
||||
10 #<a href="postconf.5.html#proxy_interfaces">proxy_interfaces</a> = 1.2.3.4
|
||||
11
|
||||
12 <a href="postconf.5.html#relay_recipient_maps">relay_recipient_maps</a> = hash:/etc/postfix/relay_recipients
|
||||
<br>
|
||||
6a # Postfix 2.10 and later support separate relay control and
|
||||
7a # spam control.
|
||||
8a <a href="postconf.5.html#smtpd_relay_restrictions">smtpd_relay_restrictions</a> =
|
||||
9a <a href="postconf.5.html#permit_mynetworks">permit_mynetworks</a> <a href="postconf.5.html#reject_unauth_destination">reject_unauth_destination</a>
|
||||
10a <a href="postconf.5.html#smtpd_recipient_restrictions">smtpd_recipient_restrictions</a> = ...spam blocking rules....
|
||||
<br>
|
||||
6b # Older configurations combine relay control and spam control. To
|
||||
7b # use this with Postfix ≥ 2.10 specify "<a href="postconf.5.html#smtpd_relay_restrictions">smtpd_relay_restrictions</a>=".
|
||||
8b <a href="postconf.5.html#smtpd_recipient_restrictions">smtpd_recipient_restrictions</a> =
|
||||
9b <a href="postconf.5.html#permit_mynetworks">permit_mynetworks</a> <a href="postconf.5.html#reject_unauth_destination">reject_unauth_destination</a>
|
||||
10b ...spam blocking rules....
|
||||
<br>
|
||||
11 # You must specify your NAT/proxy external address.
|
||||
12 #<a href="postconf.5.html#proxy_interfaces">proxy_interfaces</a> = 1.2.3.4
|
||||
13
|
||||
14 /etc/postfix/relay_recipients:
|
||||
15 user1@the.backed-up.domain.tld x
|
||||
16 user2@the.backed-up.domain.tld x
|
||||
17 . . .
|
||||
14 <a href="postconf.5.html#relay_recipient_maps">relay_recipient_maps</a> = hash:/etc/postfix/relay_recipients
|
||||
15
|
||||
16 /etc/postfix/relay_recipients:
|
||||
17 user1@the.backed-up.domain.tld x
|
||||
18 user2@the.backed-up.domain.tld x
|
||||
19 . . .
|
||||
</pre>
|
||||
</blockquote>
|
||||
|
||||
|
@ -541,11 +569,11 @@ need the above, plus: </p>
|
|||
|
||||
<blockquote>
|
||||
<pre>
|
||||
18 /etc/postfix/<a href="postconf.5.html">main.cf</a>:
|
||||
19 <a href="postconf.5.html#transport_maps">transport_maps</a> = hash:/etc/postfix/transport
|
||||
20
|
||||
21 /etc/postfix/transport:
|
||||
22 the.backed-up.domain.tld relay:[their.mail.host.tld]
|
||||
20 /etc/postfix/<a href="postconf.5.html">main.cf</a>:
|
||||
21 <a href="postconf.5.html#transport_maps">transport_maps</a> = hash:/etc/postfix/transport
|
||||
22
|
||||
23 /etc/postfix/transport:
|
||||
24 the.backed-up.domain.tld relay:[their.mail.host.tld]
|
||||
</pre>
|
||||
</blockquote>
|
||||
|
||||
|
@ -559,15 +587,15 @@ need the above, plus: </p>
|
|||
|
||||
<li><p>Do not list the.backed-up.domain.tld in <a href="postconf.5.html#virtual_mailbox_domains">virtual_mailbox_domains</a>.</p>
|
||||
|
||||
<li> <p> Lines 1-7: Forward mail from the Internet for
|
||||
<li> <p> Lines 1-9: Forward mail from the Internet for
|
||||
"the.backed-up.domain.tld" to the primary MX host for that domain.
|
||||
</p>
|
||||
|
||||
<li> <p> Line 10: This is a must if Postfix receives mail via a
|
||||
<li> <p> Line 12: This is a must if Postfix receives mail via a
|
||||
NAT relay or proxy that presents a different IP address to the
|
||||
world than the local machine. </p>
|
||||
|
||||
<li> <p> Lines 12-16: Define the list of valid addresses in the
|
||||
<li> <p> Lines 14-18: Define the list of valid addresses in the
|
||||
"the.backed-up.domain.tld" domain. This prevents your mail queue
|
||||
from filling up with undeliverable MAILER-DAEMON messages. If you
|
||||
can't maintain a list of valid recipients then you must specify
|
||||
|
@ -575,7 +603,7 @@ can't maintain a list of valid recipients then you must specify
|
|||
specify an "@the.backed-up.domain.tld x" wild-card in the
|
||||
relay_recipients table. </p>
|
||||
|
||||
<li> <p> Line 22: The <tt>[]</tt> forces Postfix to do no MX lookup. </p>
|
||||
<li> <p> Line 24: The <tt>[]</tt> forces Postfix to do no MX lookup. </p>
|
||||
|
||||
</ul>
|
||||
|
||||
|
|
|
@ -514,17 +514,13 @@ services that accept remote connections. </p>
|
|||
|
||||
<h2><a name="other"> Other measures to off-load zombies </a> </h2>
|
||||
|
||||
<p> OpenBSD <a href="http://www.openbsd.org/spamd/">spamd</a>
|
||||
implements a daemon that handles all connections from "new" clients.
|
||||
Only well-behaved mail clients are allowed to talk to the mail
|
||||
server. Other clients are tarpitted, and will never get a chance
|
||||
to affect mail server performance. </p>
|
||||
|
||||
<p> At some point in the future, Postfix may come with a simple
|
||||
front-end daemon that does basic greylisting and pipelining detection
|
||||
to keep zombies and other ratware away from Postfix itself. This
|
||||
would use the "pass" service type which has been available in
|
||||
stable Postfix releases since Postfix 2.5. </p>
|
||||
<p> The <a href="postscreen.8.html">postscreen(8)</a> daemon, introduced with Postfix 2.8, provides
|
||||
additional protection against mail server overload. One <a href="postscreen.8.html">postscreen(8)</a>
|
||||
process handles multiple inbound SMTP connections, and decides which
|
||||
clients may to talk to a Postfix SMTP server process. By keeping
|
||||
spambots away, <a href="postscreen.8.html">postscreen(8)</a> leaves more SMTP server processes
|
||||
available for legitimate clients, and delays the onset of server
|
||||
overload conditions. </p>
|
||||
|
||||
<h2><a name="credits"> Credits </a></h2>
|
||||
|
||||
|
|
|
@ -137,10 +137,8 @@ the DNS requests or replies. </p>
|
|||
|
||||
<li> <p> If the number of <a href="smtpd.8.html">smtpd(8)</a> processes has reached the process
|
||||
limit as specified in <a href="master.5.html">master.cf</a>, new SMTP clients must wait until
|
||||
a process becomes available. Increase the number of processes if
|
||||
memory permits. See the instructions given under "<a
|
||||
href="#proc_limit">Tuning the number of Postfix processes</a>".
|
||||
</p>
|
||||
a process becomes available. See the <a href="STRESS_README.html">STRESS_README</a> and <a href="POSTSCREEN_README.html">POSTSCREEN_README</a>
|
||||
documents for measures that help to prevent SMTP server overload. </p>
|
||||
|
||||
</ul>
|
||||
|
||||
|
@ -391,7 +389,7 @@ default. They should be used only for transports that deliver mail
|
|||
to a small number of high volume domains. </p>
|
||||
|
||||
<p> A common situation where high concurrency is called for is on
|
||||
gateways relaying a high volume of mail from between the Internet
|
||||
gateways relaying a high volume of mail between the Internet
|
||||
and an intranet mail environment. Approximately half the mail
|
||||
(assuming equal volumes inbound and outbound) will be destined
|
||||
for the internal mail hubs. Since the internal mail hubs will be
|
||||
|
@ -441,7 +439,7 @@ recipients into smaller lists. Postfix will attempt to send multiple
|
|||
copies of the message in parallel. </p>
|
||||
|
||||
<p> IMPORTANT: Be careful when increasing the recipient limit per
|
||||
message delivery; some <a href="smtpd.8.html">smtpd(8)</a> servers abort the connection when they
|
||||
message delivery; some SMTP servers abort the connection when they
|
||||
run out of memory or when a hard recipient limit is reached, so
|
||||
that the message will never be delivered. </p>
|
||||
|
||||
|
@ -568,13 +566,13 @@ and so on: </p>
|
|||
</blockquote>
|
||||
|
||||
<p> You need to execute "postfix reload" to make the change effective.
|
||||
The limits are enforced by the Postfix <a href="master.8.html">master(8)</a> daemon which does
|
||||
This limit is enforced by the Postfix <a href="master.8.html">master(8)</a> daemon which does
|
||||
not automatically read <a href="postconf.5.html">main.cf</a> when it changes. </p>
|
||||
|
||||
<p> You can override the process limit for specific Postfix daemons
|
||||
by editing the <a href="master.5.html">master.cf</a> file. For example, if you do not wish to
|
||||
receive 100 SMTP messages at the same time, but do not want to
|
||||
change the process limits for local mail deliveries, you could
|
||||
change the process limits for other Postfix daemons, you could
|
||||
specify: </p>
|
||||
|
||||
<blockquote>
|
||||
|
|
|
@ -218,7 +218,7 @@ second form overrides them explicitly. The values shown are the
|
|||
recommended ones. </p>
|
||||
|
||||
<p> You can use the <a href="postconf.5.html#smtpd_command_filter">smtpd_command_filter</a> feature to append XVERP
|
||||
to SMTP commands from legacy sofware. This requires Postfix 2.7
|
||||
to SMTP commands from legacy software. This requires Postfix 2.7
|
||||
or later. </p>
|
||||
|
||||
<blockquote>
|
||||
|
|
|
@ -260,8 +260,8 @@ section at the top of this document.</p>
|
|||
3 <a href="postconf.5.html#virtual_mailbox_base">virtual_mailbox_base</a> = /var/mail/vhosts
|
||||
4 <a href="postconf.5.html#virtual_mailbox_maps">virtual_mailbox_maps</a> = hash:/etc/postfix/vmailbox
|
||||
5 <a href="postconf.5.html#virtual_minimum_uid">virtual_minimum_uid</a> = 100
|
||||
6 <a href="postconf.5.html#virtual_uid_maps">virtual_uid_maps</a> = static:5000
|
||||
7 <a href="postconf.5.html#virtual_gid_maps">virtual_gid_maps</a> = static:5000
|
||||
6 <a href="postconf.5.html#virtual_uid_maps">virtual_uid_maps</a> = <a href="DATABASE_README.html#types">static</a>:5000
|
||||
7 <a href="postconf.5.html#virtual_gid_maps">virtual_gid_maps</a> = <a href="DATABASE_README.html#types">static</a>:5000
|
||||
8 <a href="postconf.5.html#virtual_alias_maps">virtual_alias_maps</a> = hash:/etc/postfix/virtual
|
||||
9
|
||||
10 /etc/postfix/vmailbox:
|
||||
|
@ -357,7 +357,11 @@ in the <a href="virtual.8.html">virtual(8)</a> manual page. </p>
|
|||
domains, non-UNIX accounts</a></h2>
|
||||
|
||||
<p> This is a variation on the Postfix <a href="VIRTUAL_README.html#virtual_mailbox">virtual mailbox example</a>.
|
||||
Again, every hosted address can have its own mailbox. </p>
|
||||
Again, every hosted address can have its own mailbox. However, most
|
||||
parameters that control the <a href="virtual.8.html">virtual(8)</a> delivery agent are no longer
|
||||
applicable: only <a href="postconf.5.html#virtual_mailbox_domains">virtual_mailbox_domains</a> and <a href="postconf.5.html#virtual_mailbox_maps">virtual_mailbox_maps</a>
|
||||
stay in effect. These parameters are needed to reject mail for
|
||||
unknown recipients. </p>
|
||||
|
||||
<p> While non-Postfix software is being used for final delivery,
|
||||
some Postfix concepts are still needed in order to glue everything
|
||||
|
|
|
@ -24,9 +24,15 @@ ALIASES(5) ALIASES(5)
|
|||
<b>newaliases</b> in order to rebuild the indexed file after
|
||||
changing the Postfix alias database.
|
||||
|
||||
The input and output file formats are expected to be com-
|
||||
patible with Sendmail version 8, and are expected to be
|
||||
suitable for the use as NIS maps.
|
||||
When the table is provided via other means such as NIS,
|
||||
LDAP or SQL, the same lookups are done as for ordinary
|
||||
indexed files.
|
||||
|
||||
Alternatively, the table can be provided as a regular-
|
||||
expression map where patterns are given as regular expres-
|
||||
sions. In this case, the lookups are done in a slightly
|
||||
different way as described below under "REGULAR EXPRESSION
|
||||
TABLES".
|
||||
|
||||
Users can control delivery of their own mail by setting up
|
||||
<b>.forward</b> files in their home directory. Lines in per-user
|
||||
|
@ -111,6 +117,25 @@ ALIASES(5) ALIASES(5)
|
|||
The <a href="local.8.html">local(8)</a> delivery agent always folds the search string
|
||||
to lowercase before database lookup.
|
||||
|
||||
<b>REGULAR EXPRESSION TABLES</b>
|
||||
This section describes how the table lookups change when
|
||||
the table is given in the form of regular expressions. For
|
||||
a description of regular expression lookup table syntax,
|
||||
see <a href="regexp_table.5.html"><b>regexp_table</b>(5)</a> or <a href="pcre_table.5.html"><b>pcre_table</b>(5)</a>. NOTE: these formats
|
||||
do not use ":" at the end of a pattern.
|
||||
|
||||
Each regular expression is applied to the entire search
|
||||
string. Thus, a search string <i>user+foo</i> is not broken up
|
||||
into <i>user</i> and <i>foo</i>.
|
||||
|
||||
Regular expressions are applied in the order as specified
|
||||
in the table, until a regular expression is found that
|
||||
matches the search string.
|
||||
|
||||
Lookup results are the same as with indexed file lookups.
|
||||
For security reasons there is no support for <b>$1</b>, <b>$2</b> etc.
|
||||
substring interpolation.
|
||||
|
||||
<b>SECURITY</b>
|
||||
The <a href="local.8.html"><b>local</b>(8)</a> delivery agent disallows regular expression
|
||||
substitution of $1 etc. in <b><a href="postconf.5.html#alias_maps">alias_maps</a></b>, because that would
|
||||
|
|
|
@ -438,8 +438,8 @@ CLEANUP(8) CLEANUP(8)
|
|||
point when logging sub-second delay values.
|
||||
|
||||
<b><a href="postconf.5.html#delay_warning_time">delay_warning_time</a> (0h)</b>
|
||||
The time after which the sender receives the mes-
|
||||
sage headers of mail that is still queued.
|
||||
The time after which the sender receives a copy of
|
||||
the message headers of mail that is still queued.
|
||||
|
||||
<b><a href="postconf.5.html#ipc_timeout">ipc_timeout</a> (3600s)</b>
|
||||
The time limit for sending or receiving information
|
||||
|
|
|
@ -114,11 +114,11 @@ HEADER_CHECKS(5) HEADER_CHECKS(5)
|
|||
This document assumes that header and <a href="postconf.5.html#body_checks">body_checks</a> rules
|
||||
are specified in the form of Postfix regular expression
|
||||
lookup tables. Usually the best performance is obtained
|
||||
with <b>pcre</b> (Perl Compatible Regular Expression) tables, but
|
||||
the slower <b>regexp</b> (POSIX regular expressions) support is
|
||||
more widely available. Use the command "<b>postconf -m</b>" to
|
||||
find out what lookup table types your Postfix system sup-
|
||||
ports.
|
||||
with <b>pcre</b> (Perl Compatible Regular Expression) tables. The
|
||||
<b>regexp</b> (POSIX regular expressions) tables are usually
|
||||
slower, but more widely available. Use the command "<b>post-</b>
|
||||
<b>conf -m</b>" to find out what lookup table types your Postfix
|
||||
system supports.
|
||||
|
||||
The general format of Postfix regular expression tables is
|
||||
given below. For a discussion of specific pattern or
|
||||
|
|
|
@ -115,6 +115,7 @@ SMTP(8) SMTP(8)
|
|||
<a href="http://tools.ietf.org/html/rfc3461">RFC 3461</a> (SMTP DSN Extension)
|
||||
<a href="http://tools.ietf.org/html/rfc3463">RFC 3463</a> (Enhanced Status Codes)
|
||||
<a href="http://tools.ietf.org/html/rfc4954">RFC 4954</a> (AUTH command)
|
||||
<a href="http://tools.ietf.org/html/rfc5321">RFC 5321</a> (SMTP protocol)
|
||||
|
||||
<b>DIAGNOSTICS</b>
|
||||
Problems and transactions are logged to <b>syslogd</b>(8). Cor-
|
||||
|
@ -194,7 +195,7 @@ SMTP(8) SMTP(8)
|
|||
|
||||
<b><a href="postconf.5.html#smtp_quote_rfc821_envelope">smtp_quote_rfc821_envelope</a> (yes)</b>
|
||||
Quote addresses in Postfix SMTP client MAIL FROM
|
||||
and RCPT TO commands as required by <a href="http://tools.ietf.org/html/rfc2821">RFC 2821</a>.
|
||||
and RCPT TO commands as required by <a href="http://tools.ietf.org/html/rfc5321">RFC 5321</a>.
|
||||
|
||||
<b><a href="postconf.5.html#smtp_reply_filter">smtp_reply_filter</a> (empty)</b>
|
||||
A mechanism to transform replies from remote SMTP
|
||||
|
|
|
@ -93,85 +93,90 @@ SENDMAIL(1) SENDMAIL(1)
|
|||
<b>-bi</b> Initialize alias database. See the <b>newaliases</b> com-
|
||||
mand above.
|
||||
|
||||
<b>-bm</b> Read mail from standard input and arrange for
|
||||
<b>-bl</b> Go into daemon mode. To accept only local connec-
|
||||
tions as with Sendmail's <b>-bl</b> option, specify
|
||||
"<b><a href="postconf.5.html#inet_interfaces">inet_interfaces</a> = loopback</b>" in the Postfix <a href="postconf.5.html"><b>main.cf</b></a>
|
||||
configuration file.
|
||||
|
||||
<b>-bm</b> Read mail from standard input and arrange for
|
||||
delivery. This is the default mode of operation.
|
||||
|
||||
<b>-bp</b> List the mail queue. See the <b>mailq</b> command above.
|
||||
|
||||
<b>-bs</b> Stand-alone SMTP server mode. Read SMTP commands
|
||||
from standard input, and write responses to stan-
|
||||
<b>-bs</b> Stand-alone SMTP server mode. Read SMTP commands
|
||||
from standard input, and write responses to stan-
|
||||
dard output. In stand-alone SMTP server mode, mail
|
||||
relaying and other access controls are disabled by
|
||||
default. To enable them, run the process as the
|
||||
relaying and other access controls are disabled by
|
||||
default. To enable them, run the process as the
|
||||
<b><a href="postconf.5.html#mail_owner">mail_owner</a></b> user.
|
||||
|
||||
This mode of operation is implemented by running
|
||||
This mode of operation is implemented by running
|
||||
the <a href="smtpd.8.html"><b>smtpd</b>(8)</a> daemon.
|
||||
|
||||
<b>-bv</b> Do not collect or deliver a message. Instead, send
|
||||
an email report after verifying each recipient
|
||||
address. This is useful for testing address
|
||||
<b>-bv</b> Do not collect or deliver a message. Instead, send
|
||||
an email report after verifying each recipient
|
||||
address. This is useful for testing address
|
||||
rewriting and routing configurations.
|
||||
|
||||
This feature is available in Postfix version 2.1
|
||||
This feature is available in Postfix version 2.1
|
||||
and later.
|
||||
|
||||
<b>-C</b> <i>config</i><b>_</b><i>file</i>
|
||||
|
||||
<b>-C</b> <i>config</i><b>_</b><i>dir</i>
|
||||
The path name of the Postfix <a href="postconf.5.html"><b>main.cf</b></a> file, or of
|
||||
its parent directory. This information is ignored
|
||||
The path name of the Postfix <a href="postconf.5.html"><b>main.cf</b></a> file, or of
|
||||
its parent directory. This information is ignored
|
||||
with Postfix versions before 2.3.
|
||||
|
||||
With all Postfix versions, you can specify a direc-
|
||||
tory pathname with the MAIL_CONFIG environment
|
||||
variable to override the location of configuration
|
||||
variable to override the location of configuration
|
||||
files.
|
||||
|
||||
<b>-F</b> <i>full</i><b>_</b><i>name</i>
|
||||
Set the sender full name. This overrides the NAME
|
||||
environment variable, and is used only with mes-
|
||||
Set the sender full name. This overrides the NAME
|
||||
environment variable, and is used only with mes-
|
||||
sages that have no <b>From:</b> message header.
|
||||
|
||||
<b>-f</b> <i>sender</i>
|
||||
Set the envelope sender address. This is the
|
||||
address where delivery problems are sent to. With
|
||||
address where delivery problems are sent to. With
|
||||
Postfix versions before 2.1, the <b>Errors-To:</b> message
|
||||
header overrides the error return address.
|
||||
|
||||
<b>-G</b> Gateway (relay) submission, as opposed to initial
|
||||
user submission. Either do not rewrite addresses
|
||||
at all, or update incomplete addresses with the
|
||||
<b>-G</b> Gateway (relay) submission, as opposed to initial
|
||||
user submission. Either do not rewrite addresses
|
||||
at all, or update incomplete addresses with the
|
||||
domain information specified with <b>remote_header_re-</b>
|
||||
<b>write_domain</b>.
|
||||
|
||||
This option is ignored before Postfix version 2.3.
|
||||
This option is ignored before Postfix version 2.3.
|
||||
|
||||
<b>-h</b> <i>hop</i><b>_</b><i>count</i> (ignored)
|
||||
Hop count limit. Use the <b><a href="postconf.5.html#hopcount_limit">hopcount_limit</a></b> configura-
|
||||
Hop count limit. Use the <b><a href="postconf.5.html#hopcount_limit">hopcount_limit</a></b> configura-
|
||||
tion parameter instead.
|
||||
|
||||
<b>-I</b> Initialize alias database. See the <b>newaliases</b> com-
|
||||
<b>-I</b> Initialize alias database. See the <b>newaliases</b> com-
|
||||
mand above.
|
||||
|
||||
<b>-i</b> When reading a message from standard input, don't
|
||||
treat a line with only a <b>.</b> character as the end of
|
||||
<b>-i</b> When reading a message from standard input, don't
|
||||
treat a line with only a <b>.</b> character as the end of
|
||||
input.
|
||||
|
||||
<b>-L</b> <i>label</i> (ignored)
|
||||
The logging label. Use the <b><a href="postconf.5.html#syslog_name">syslog_name</a></b> configura-
|
||||
The logging label. Use the <b><a href="postconf.5.html#syslog_name">syslog_name</a></b> configura-
|
||||
tion parameter instead.
|
||||
|
||||
<b>-m</b> (ignored)
|
||||
Backwards compatibility.
|
||||
|
||||
<b>-N</b> <i>dsn</i> (default: 'delay, failure')
|
||||
Delivery status notification control. Specify
|
||||
either a comma-separated list with one or more of
|
||||
<b>failure</b> (send notification when delivery fails),
|
||||
Delivery status notification control. Specify
|
||||
either a comma-separated list with one or more of
|
||||
<b>failure</b> (send notification when delivery fails),
|
||||
<b>delay</b> (send notification when delivery is delayed),
|
||||
or <b>success</b> (send notification when the message is
|
||||
delivered); or specify <b>never</b> (don't send any noti-
|
||||
or <b>success</b> (send notification when the message is
|
||||
delivered); or specify <b>never</b> (don't send any noti-
|
||||
fications at all).
|
||||
|
||||
This feature is available in Postfix 2.3 and later.
|
||||
|
@ -180,11 +185,12 @@ SENDMAIL(1) SENDMAIL(1)
|
|||
Backwards compatibility.
|
||||
|
||||
<b>-oA</b><i>alias</i><b>_</b><i>database</i>
|
||||
Non-default alias database. Specify <i>pathname</i> or
|
||||
Non-default alias database. Specify <i>pathname</i> or
|
||||
<i>type</i>:<i>pathname</i>. See <a href="postalias.1.html"><b>postalias</b>(1)</a> for details.
|
||||
|
||||
<b>-O</b> <i>option=value</i> (ignored)
|
||||
Backwards compatibility.
|
||||
Set the named <i>option</i> to <i>value</i>. Use the equivalent
|
||||
configuration parameter in <a href="postconf.5.html"><b>main.cf</b></a> instead.
|
||||
|
||||
<b>-o7</b> (ignored)
|
||||
|
||||
|
@ -211,9 +217,17 @@ SENDMAIL(1) SENDMAIL(1)
|
|||
Postfix versions before 2.1, the <b>Errors-To:</b> message
|
||||
header overrides the error return address.
|
||||
|
||||
<b>-R</b> <i>return</i><b>_</b><i>limit</i> (ignored)
|
||||
Limit the size of bounced mail. Use the
|
||||
<b><a href="postconf.5.html#bounce_size_limit">bounce_size_limit</a></b> configuration parameter instead.
|
||||
<b>-R</b> <i>return</i>
|
||||
Delivery status notification control. Specify
|
||||
"hdrs" to return only the header when a message
|
||||
bounces, "full" to return a full copy (the default
|
||||
behavior).
|
||||
|
||||
The <b>-R</b> option specifies an upper bound; Postfix
|
||||
will return only the header, when a full copy would
|
||||
exceed the <a href="postconf.5.html#bounce_size_limit">bounce_size_limit</a> setting.
|
||||
|
||||
This option is ignored before Postfix version 2.10.
|
||||
|
||||
<b>-q</b> Attempt to deliver all queued mail. This is imple-
|
||||
mented by executing the <a href="postqueue.1.html"><b>postqueue</b>(1)</a> command.
|
||||
|
@ -429,8 +443,8 @@ SENDMAIL(1) SENDMAIL(1)
|
|||
<a href="postalias.1.html"><b>postalias</b>(1)</a> and <a href="postmap.1.html"><b>postmap</b>(1)</a> commands.
|
||||
|
||||
<b><a href="postconf.5.html#delay_warning_time">delay_warning_time</a> (0h)</b>
|
||||
The time after which the sender receives the mes-
|
||||
sage headers of mail that is still queued.
|
||||
The time after which the sender receives a copy of
|
||||
the message headers of mail that is still queued.
|
||||
|
||||
<b><a href="postconf.5.html#enable_errors_to">enable_errors_to</a> (no)</b>
|
||||
Report mail delivery errors to the address speci-
|
||||
|
|
|
@ -34,6 +34,14 @@ MASTER(5) MASTER(5)
|
|||
<b>SYNTAX</b>
|
||||
The general format of the <a href="master.5.html">master.cf</a> file is as follows:
|
||||
|
||||
<b>o</b> Empty lines and whitespace-only lines are ignored,
|
||||
as are lines whose first non-whitespace character
|
||||
is a `#'.
|
||||
|
||||
<b>o</b> A logical line starts with non-whitespace text. A
|
||||
line that starts with whitespace continues a logi-
|
||||
cal line.
|
||||
|
||||
<b>o</b> Each logical line defines a single Postfix service.
|
||||
Each service is identified by its name and type as
|
||||
described below. When multiple lines specify the
|
||||
|
@ -41,14 +49,6 @@ MASTER(5) MASTER(5)
|
|||
remembered. Otherwise, the order of <a href="master.5.html">master.cf</a> ser-
|
||||
vice definitions does not matter.
|
||||
|
||||
<b>o</b> Empty lines and whitespace-only lines are ignored,
|
||||
as are lines whose first non-whitespace character
|
||||
is a `#'.
|
||||
|
||||
<b>o</b> A logical line starts with non-whitespace text. A
|
||||
line that starts with whitespace continues a logi-
|
||||
cal line.
|
||||
|
||||
Each logical line consists of eight fields separated by
|
||||
whitespace. These are described below in the order as
|
||||
they appear in the <a href="master.5.html">master.cf</a> file.
|
||||
|
@ -208,21 +208,27 @@ MASTER(5) MASTER(5)
|
|||
<a href="postconf.5.html">main.cf</a>. See <a href="postconf.5.html"><b>postconf</b>(5)</a> for syntax.
|
||||
|
||||
NOTE 1: do not specify whitespace around the
|
||||
"=". In parameter values, either avoid
|
||||
whitespace altogether, use commas instead of
|
||||
spaces, or consider overrides like "-o
|
||||
name=$override_parameter" with $over-
|
||||
ride_parameter set in <a href="postconf.5.html">main.cf</a>.
|
||||
"=" or in parameter values. To specify a
|
||||
parameter value that contains whitespace,
|
||||
use commas instead of spaces, or specify the
|
||||
value in <a href="postconf.5.html">main.cf</a>. Example:
|
||||
|
||||
NOTE 2: Over-zealous use of parameter over-
|
||||
rides makes the Postfix configuration hard
|
||||
to understand and maintain. At a certain
|
||||
point, it might be easier to configure mul-
|
||||
tiple instances of Postfix, instead of con-
|
||||
/etc/postfix/<a href="master.5.html">master.cf</a>:
|
||||
submission inet .... smtpd
|
||||
-o smtpd_mumble=$submission_mumble
|
||||
|
||||
/etc/postfix/<a href="postconf.5.html">main.cf</a>
|
||||
submission_mumble = text with whitespace...
|
||||
|
||||
NOTE 2: Over-zealous use of parameter over-
|
||||
rides makes the Postfix configuration hard
|
||||
to understand and maintain. At a certain
|
||||
point, it might be easier to configure mul-
|
||||
tiple instances of Postfix, instead of con-
|
||||
figuring multiple personalities via mas-
|
||||
ter.cf.
|
||||
|
||||
<b>-v</b> Increase the verbose logging level. Specify
|
||||
<b>-v</b> Increase the verbose logging level. Specify
|
||||
multiple <b>-v</b> options to make a Postfix daemon
|
||||
process increasingly verbose.
|
||||
|
||||
|
@ -235,7 +241,7 @@ MASTER(5) MASTER(5)
|
|||
<a href="DEBUG_README.html">DEBUG_README</a>, Postfix debugging
|
||||
|
||||
<b>LICENSE</b>
|
||||
The Secure Mailer license must be distributed with this
|
||||
The Secure Mailer license must be distributed with this
|
||||
software.
|
||||
|
||||
<b>AUTHOR(S)</b>
|
||||
|
|
|
@ -10,7 +10,7 @@ MASTER(8) MASTER(8)
|
|||
master - Postfix master process
|
||||
|
||||
<b>SYNOPSIS</b>
|
||||
<b>master</b> [<b>-Ddtv</b>] [<b>-c</b> <i>config</i><b>_</b><i>dir</i>] [<b>-e</b> <i>exit</i><b>_</b><i>time</i>]
|
||||
<b>master</b> [<b>-Ddtvw</b>] [<b>-c</b> <i>config</i><b>_</b><i>dir</i>] [<b>-e</b> <i>exit</i><b>_</b><i>time</i>]
|
||||
|
||||
<b>DESCRIPTION</b>
|
||||
The <a href="master.8.html"><b>master</b>(8)</a> daemon is the resident process that runs
|
||||
|
@ -61,6 +61,16 @@ MASTER(8) MASTER(8)
|
|||
option is passed on to child processes. Multiple <b>-v</b>
|
||||
options make the software increasingly verbose.
|
||||
|
||||
<b>-w</b> Wait in a dummy foreground process, while the real
|
||||
master daemon initializes in a background process.
|
||||
The dummy foreground process returns a zero exit
|
||||
status only if the master daemon initialization is
|
||||
successful, and if it completes in a reasonable
|
||||
amount of time.
|
||||
|
||||
This feature is available in Postfix 2.10 and
|
||||
later.
|
||||
|
||||
Signals:
|
||||
|
||||
<b>SIGHUP</b> Upon receipt of a <b>HUP</b> signal (e.g., after "<b>postfix</b>
|
||||
|
@ -81,12 +91,14 @@ MASTER(8) MASTER(8)
|
|||
running processes to finish what they are doing.
|
||||
|
||||
<b>DIAGNOSTICS</b>
|
||||
Problems are reported to <b>syslogd</b>(8).
|
||||
Problems are reported to <b>syslogd</b>(8). The exit status is
|
||||
non-zero in case of problems, including problems while
|
||||
initializing as a master daemon process in the background.
|
||||
|
||||
<b>ENVIRONMENT</b>
|
||||
<b>MAIL_DEBUG</b>
|
||||
After initialization, start a debugger as specified
|
||||
with the <b><a href="postconf.5.html#debugger_command">debugger_command</a></b> configuration parameter
|
||||
with the <b><a href="postconf.5.html#debugger_command">debugger_command</a></b> configuration parameter
|
||||
in the <a href="postconf.5.html"><b>main.cf</b></a> configuration file.
|
||||
|
||||
<b>MAIL_CONFIG</b>
|
||||
|
@ -95,22 +107,22 @@ MASTER(8) MASTER(8)
|
|||
<b>CONFIGURATION PARAMETERS</b>
|
||||
Unlike most Postfix daemon processes, the <a href="master.8.html"><b>master</b>(8)</a> server
|
||||
does not automatically pick up changes to <a href="postconf.5.html"><b>main.cf</b></a>. Changes
|
||||
to <a href="master.5.html"><b>master.cf</b></a> are never picked up automatically. Use the
|
||||
to <a href="master.5.html"><b>master.cf</b></a> are never picked up automatically. Use the
|
||||
"<b>postfix reload</b>" command after a configuration change.
|
||||
|
||||
<b>RESOURCE AND RATE CONTROLS</b>
|
||||
<b><a href="postconf.5.html#default_process_limit">default_process_limit</a> (100)</b>
|
||||
The default maximal number of Postfix child pro-
|
||||
The default maximal number of Postfix child pro-
|
||||
cesses that provide a given service.
|
||||
|
||||
<b><a href="postconf.5.html#max_idle">max_idle</a> (100s)</b>
|
||||
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.
|
||||
|
||||
<b><a href="postconf.5.html#max_use">max_use</a> (100)</b>
|
||||
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.
|
||||
|
||||
<b><a href="postconf.5.html#service_throttle_time">service_throttle_time</a> (60s)</b>
|
||||
|
@ -120,16 +132,16 @@ MASTER(8) MASTER(8)
|
|||
Available in Postfix version 2.6 and later:
|
||||
|
||||
<b><a href="postconf.5.html#master_service_disable">master_service_disable</a> (empty)</b>
|
||||
Selectively disable <a href="master.8.html"><b>master</b>(8)</a> listener ports by
|
||||
Selectively disable <a href="master.8.html"><b>master</b>(8)</a> listener ports by
|
||||
service type or by service name and type.
|
||||
|
||||
<b>MISCELLANEOUS CONTROLS</b>
|
||||
<b><a href="postconf.5.html#config_directory">config_directory</a> (see 'postconf -d' output)</b>
|
||||
The default location of the Postfix <a href="postconf.5.html">main.cf</a> and
|
||||
The default location of the Postfix <a href="postconf.5.html">main.cf</a> and
|
||||
<a href="master.5.html">master.cf</a> configuration files.
|
||||
|
||||
<b><a href="postconf.5.html#daemon_directory">daemon_directory</a> (see 'postconf -d' output)</b>
|
||||
The directory with Postfix support programs and
|
||||
The directory with Postfix support programs and
|
||||
daemon programs.
|
||||
|
||||
<b><a href="postconf.5.html#debugger_command">debugger_command</a> (empty)</b>
|
||||
|
@ -141,11 +153,11 @@ MASTER(8) MASTER(8)
|
|||
tem receives mail on.
|
||||
|
||||
<b><a href="postconf.5.html#inet_protocols">inet_protocols</a> (all)</b>
|
||||
The Internet protocols Postfix will attempt to use
|
||||
The Internet protocols Postfix will attempt to use
|
||||
when making or accepting connections.
|
||||
|
||||
<b><a href="postconf.5.html#import_environment">import_environment</a> (see 'postconf -d' output)</b>
|
||||
The list of environment parameters that a Postfix
|
||||
The list of environment parameters that a Postfix
|
||||
process will import from a non-Postfix parent
|
||||
process.
|
||||
|
||||
|
@ -154,23 +166,23 @@ MASTER(8) MASTER(8)
|
|||
and most Postfix daemon processes.
|
||||
|
||||
<b><a href="postconf.5.html#process_id">process_id</a> (read-only)</b>
|
||||
The process ID of a Postfix command or daemon
|
||||
The process ID of a Postfix command or daemon
|
||||
process.
|
||||
|
||||
<b><a href="postconf.5.html#process_name">process_name</a> (read-only)</b>
|
||||
The process name of a Postfix command or daemon
|
||||
The process name of a Postfix command or daemon
|
||||
process.
|
||||
|
||||
<b><a href="postconf.5.html#queue_directory">queue_directory</a> (see 'postconf -d' output)</b>
|
||||
The location of the Postfix top-level queue direc-
|
||||
The location of the Postfix top-level queue direc-
|
||||
tory.
|
||||
|
||||
<b><a href="postconf.5.html#syslog_facility">syslog_facility</a> (mail)</b>
|
||||
The syslog facility of Postfix logging.
|
||||
|
||||
<b><a href="postconf.5.html#syslog_name">syslog_name</a> (see 'postconf -d' output)</b>
|
||||
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".
|
||||
|
||||
<b>FILES</b>
|
||||
|
@ -190,7 +202,7 @@ MASTER(8) MASTER(8)
|
|||
syslogd(8), system logging
|
||||
|
||||
<b>LICENSE</b>
|
||||
The Secure Mailer license must be distributed with this
|
||||
The Secure Mailer license must be distributed with this
|
||||
software.
|
||||
|
||||
<b>AUTHOR(S)</b>
|
||||
|
|
|
@ -69,22 +69,30 @@ MEMCACHE_TABLE(5) MEMCACHE_TABLE(5)
|
|||
Access to remote proxymap servers is under develop-
|
||||
ment.
|
||||
|
||||
NOTE 1: When using memcache with persistent backup
|
||||
as <a href="postscreen.8.html"><b>postscreen</b>(8)</a> or <a href="verify.8.html"><b>verify</b>(8)</a> cache, disable auto-
|
||||
matic cache cleanup (*_cache_cleanup_interval = 0)
|
||||
in all Postfix instances except for one instance
|
||||
that will be responsible for cache cleanup.
|
||||
NOTE 1: When sharing a persistent <a href="postscreen.8.html"><b>postscreen</b>(8)</a> or
|
||||
<a href="verify.8.html"><b>verify</b>(8)</a> cache, disable automatic cache cleanup
|
||||
(set *_cache_cleanup_interval = 0) except with one
|
||||
Postfix instance that will be responsible for cache
|
||||
cleanup.
|
||||
|
||||
NOTE 2: In the case of a proxied backup database,
|
||||
the full backup database name (including the
|
||||
"<a href="proxymap.8.html">proxy</a>:" prefix) must be specified in the proxymap
|
||||
server's <a href="postconf.5.html#proxy_read_maps">proxy_read_maps</a> or <a href="postconf.5.html#proxy_write_maps">proxy_write_maps</a> set-
|
||||
ting (depending on whether the access is read-only
|
||||
or read-write).
|
||||
NOTE 2: When different tables share the same mem-
|
||||
cache database, each table should use the <b>key_for-</b>
|
||||
<b>mat</b> feature (see below) to prepend its own unique
|
||||
string to the lookup key. Otherwise, automatic
|
||||
<a href="postscreen.8.html"><b>postscreen</b>(8)</a> or <a href="verify.8.html"><b>verify</b>(8)</a> cache cleanup may not
|
||||
work.
|
||||
|
||||
NOTE 3: When the backup database is accessed with
|
||||
"<a href="proxymap.8.html">proxy</a>:" lookups, the full backup database name
|
||||
(including the "<a href="proxymap.8.html">proxy</a>:" prefix) must be specified
|
||||
in the proxymap server's <a href="postconf.5.html#proxy_read_maps">proxy_read_maps</a> or
|
||||
<a href="postconf.5.html#proxy_write_maps">proxy_write_maps</a> setting (depending on whether the
|
||||
access is read-only or read-write).
|
||||
|
||||
<b>flags (default: 0)</b>
|
||||
Optional flags that should be stored along with a
|
||||
memcache update.
|
||||
Optional flags that should be stored along with a
|
||||
memcache update. The flags are ignored when looking
|
||||
up information.
|
||||
|
||||
<b>ttl (default: 3600)</b>
|
||||
The expiration time in seconds of memcache updates.
|
||||
|
@ -109,64 +117,68 @@ MEMCACHE_TABLE(5) MEMCACHE_TABLE(5)
|
|||
lookup and update keys that are given to the Post-
|
||||
fix memcache client.
|
||||
|
||||
NOTE: The <b>key_format</b> feature is not used for <b>backup</b>
|
||||
database requests.
|
||||
NOTE 1: The <b>key_format</b> feature is not used for
|
||||
<b>backup</b> database requests.
|
||||
|
||||
When the same memcache database is used to cache
|
||||
information from multiple tables, you can use the
|
||||
<b>key_format</b> feature to avoid name collisions by
|
||||
prepending a fixed string. Examples:
|
||||
NOTE 2: When different tables share the same mem-
|
||||
cache database, each table should prepend its own
|
||||
unique string to the lookup key. Otherwise, auto-
|
||||
matic <a href="postscreen.8.html"><b>postscreen</b>(8)</a> or <a href="verify.8.html"><b>verify</b>(8)</a> cache cleanup may
|
||||
not work.
|
||||
|
||||
Examples:
|
||||
|
||||
key_format = aliases:%s
|
||||
key_format = access:%s
|
||||
key_format = verify:%s
|
||||
key_format = postscreen:%s
|
||||
|
||||
The <b>key_format</b> parameter supports the following '%'
|
||||
expansions:
|
||||
|
||||
<b>%%</b> This is replaced by a literal '%' character.
|
||||
|
||||
<b>%s</b> This is replaced by the memcache client
|
||||
<b>%s</b> This is replaced by the memcache client
|
||||
input key.
|
||||
|
||||
<b>%u</b> When the input key is an address of the form
|
||||
user@domain, <b>%u</b> is replaced by the SQL
|
||||
quoted local part of the address. Other-
|
||||
wise, <b>%u</b> is replaced by the entire search
|
||||
quoted local part of the address. Other-
|
||||
wise, <b>%u</b> is replaced by the entire search
|
||||
string. If the localpart is empty, a lookup
|
||||
is silently suppressed and returns no
|
||||
results (an update is skipped with a warn-
|
||||
is silently suppressed and returns no
|
||||
results (an update is skipped with a warn-
|
||||
ing).
|
||||
|
||||
<b>%d</b> When the input key is an address of the form
|
||||
user@domain, <b>%d</b> is replaced by the domain
|
||||
user@domain, <b>%d</b> is replaced by the domain
|
||||
part of the address. Otherwise, a lookup is
|
||||
silently suppressed and returns no results
|
||||
silently suppressed and returns no results
|
||||
(an update is skipped with a warning).
|
||||
|
||||
<b>%[SUD]</b> The upper-case equivalents of the above
|
||||
expansions behave in the <b>key_format</b> parame-
|
||||
expansions behave in the <b>key_format</b> parame-
|
||||
ter identically to their lower-case counter-
|
||||
parts.
|
||||
|
||||
<b>%[1-9]</b> The patterns %1, %2, ... %9 are replaced by
|
||||
<b>%[1-9]</b> The patterns %1, %2, ... %9 are replaced by
|
||||
the corresponding most significant component
|
||||
of the input key's domain. If the input key
|
||||
of the input key's domain. If the input key
|
||||
is <i>user@mail.example.com</i>, then %1 is <b>com</b>, %2
|
||||
is <b>example</b> and %3 is <b>mail</b>. If the input key
|
||||
is <b>example</b> and %3 is <b>mail</b>. If the input key
|
||||
is unqualified or does not have enough
|
||||
domain components to satisfy all the speci-
|
||||
fied patterns, a lookup is silently sup-
|
||||
domain components to satisfy all the speci-
|
||||
fied patterns, a lookup is silently sup-
|
||||
pressed and returns no results (an update is
|
||||
skipped with a warning).
|
||||
|
||||
<b>domain (default: no domain list)</b>
|
||||
This feature can significantly reduce database
|
||||
server load. Specify a list of domain names, paths
|
||||
to files, or "<a href="DATABASE_README.html">type:table</a>" databases. When speci-
|
||||
to files, or "<a href="DATABASE_README.html">type:table</a>" databases. When speci-
|
||||
fied, only fully qualified search keys with a *non-
|
||||
empty* localpart and a matching domain are eligible
|
||||
for lookup or update: bare 'user' lookups, bare
|
||||
domain lookups and "@domain" lookups are silently
|
||||
for lookup or update: bare 'user' lookups, bare
|
||||
domain lookups and "@domain" lookups are silently
|
||||
skipped (updates are skipped with a warning).
|
||||
Example:
|
||||
|
||||
|
@ -180,33 +192,33 @@ MEMCACHE_TABLE(5) MEMCACHE_TABLE(5)
|
|||
The maximal memcache reply line length in bytes.
|
||||
|
||||
<b>max_try (default: 2)</b>
|
||||
The number of times to try a memcache command
|
||||
before giving up. The memcache client does not
|
||||
The number of times to try a memcache command
|
||||
before giving up. The memcache client does not
|
||||
retry a command when the memcache server accepts no
|
||||
connection.
|
||||
|
||||
<b>retry_pause (default: 1)</b>
|
||||
The time in seconds before retrying a failed mem-
|
||||
The time in seconds before retrying a failed mem-
|
||||
cache command.
|
||||
|
||||
<b>timeout (default: 2)</b>
|
||||
The time limit for sending a memcache command and
|
||||
The time limit for sending a memcache command and
|
||||
for receiving a memcache reply.
|
||||
|
||||
<b>BUGS</b>
|
||||
The Postfix memcache client cannot be used for security-
|
||||
sensitive tables such as <b><a href="postconf.5.html#alias_maps">alias_maps</a></b> (these may contain
|
||||
"<i>|command</i> and "<i>/file/name</i>" destinations), or <b><a href="postconf.5.html#virtual_uid_maps">vir</a>-</b>
|
||||
<b><a href="postconf.5.html#virtual_uid_maps">tual_uid_maps</a></b>, <b><a href="postconf.5.html#virtual_gid_maps">virtual_gid_maps</a></b> and <b><a href="postconf.5.html#virtual_mailbox_maps">virtual_mailbox_maps</a></b>
|
||||
(these specify UNIX process privileges or "<i>/file/name</i>"
|
||||
destinations). In a typical deployment a memcache data-
|
||||
base is writable by any process that can talk to the mem-
|
||||
cache server; in contrast, security-sensitive tables must
|
||||
The Postfix memcache client cannot be used for security-
|
||||
sensitive tables such as <b><a href="postconf.5.html#alias_maps">alias_maps</a></b> (these may contain
|
||||
"<i>|command</i> and "<i>/file/name</i>" destinations), or <b><a href="postconf.5.html#virtual_uid_maps">vir</a>-</b>
|
||||
<b><a href="postconf.5.html#virtual_uid_maps">tual_uid_maps</a></b>, <b><a href="postconf.5.html#virtual_gid_maps">virtual_gid_maps</a></b> and <b><a href="postconf.5.html#virtual_mailbox_maps">virtual_mailbox_maps</a></b>
|
||||
(these specify UNIX process privileges or "<i>/file/name</i>"
|
||||
destinations). In a typical deployment a memcache data-
|
||||
base is writable by any process that can talk to the mem-
|
||||
cache server; in contrast, security-sensitive tables must
|
||||
never be writable by the unprivileged Postfix user.
|
||||
|
||||
The Postfix memcache client requires additional configura-
|
||||
tion when used as <a href="postscreen.8.html"><b>postscreen</b>(8)</a> or <a href="verify.8.html"><b>verify</b>(8)</a> cache. For
|
||||
details see the <b>backup</b> and <b>ttl</b> parameter discussions in
|
||||
tion when used as <a href="postscreen.8.html"><b>postscreen</b>(8)</a> or <a href="verify.8.html"><b>verify</b>(8)</a> cache. For
|
||||
details see the <b>backup</b> and <b>ttl</b> parameter discussions in
|
||||
the MEMCACHE MAIN PARAMETERS section above.
|
||||
|
||||
<b>SEE ALSO</b>
|
||||
|
@ -218,11 +230,11 @@ MEMCACHE_TABLE(5) MEMCACHE_TABLE(5)
|
|||
<a href="MEMCACHE_README.html">MEMCACHE_README</a>, Postfix memcache client guide
|
||||
|
||||
<b>LICENSE</b>
|
||||
The Secure Mailer license must be distributed with this
|
||||
The Secure Mailer license must be distributed with this
|
||||
software.
|
||||
|
||||
<b>HISTORY</b>
|
||||
Memcache support was introduced with Postfix version 2.9.
|
||||
Memcache support was introduced with Postfix version 2.9.
|
||||
|
||||
<b>AUTHOR(S)</b>
|
||||
Wietse Venema
|
||||
|
|
|
@ -93,85 +93,90 @@ SENDMAIL(1) SENDMAIL(1)
|
|||
<b>-bi</b> Initialize alias database. See the <b>newaliases</b> com-
|
||||
mand above.
|
||||
|
||||
<b>-bm</b> Read mail from standard input and arrange for
|
||||
<b>-bl</b> Go into daemon mode. To accept only local connec-
|
||||
tions as with Sendmail's <b>-bl</b> option, specify
|
||||
"<b><a href="postconf.5.html#inet_interfaces">inet_interfaces</a> = loopback</b>" in the Postfix <a href="postconf.5.html"><b>main.cf</b></a>
|
||||
configuration file.
|
||||
|
||||
<b>-bm</b> Read mail from standard input and arrange for
|
||||
delivery. This is the default mode of operation.
|
||||
|
||||
<b>-bp</b> List the mail queue. See the <b>mailq</b> command above.
|
||||
|
||||
<b>-bs</b> Stand-alone SMTP server mode. Read SMTP commands
|
||||
from standard input, and write responses to stan-
|
||||
<b>-bs</b> Stand-alone SMTP server mode. Read SMTP commands
|
||||
from standard input, and write responses to stan-
|
||||
dard output. In stand-alone SMTP server mode, mail
|
||||
relaying and other access controls are disabled by
|
||||
default. To enable them, run the process as the
|
||||
relaying and other access controls are disabled by
|
||||
default. To enable them, run the process as the
|
||||
<b><a href="postconf.5.html#mail_owner">mail_owner</a></b> user.
|
||||
|
||||
This mode of operation is implemented by running
|
||||
This mode of operation is implemented by running
|
||||
the <a href="smtpd.8.html"><b>smtpd</b>(8)</a> daemon.
|
||||
|
||||
<b>-bv</b> Do not collect or deliver a message. Instead, send
|
||||
an email report after verifying each recipient
|
||||
address. This is useful for testing address
|
||||
<b>-bv</b> Do not collect or deliver a message. Instead, send
|
||||
an email report after verifying each recipient
|
||||
address. This is useful for testing address
|
||||
rewriting and routing configurations.
|
||||
|
||||
This feature is available in Postfix version 2.1
|
||||
This feature is available in Postfix version 2.1
|
||||
and later.
|
||||
|
||||
<b>-C</b> <i>config</i><b>_</b><i>file</i>
|
||||
|
||||
<b>-C</b> <i>config</i><b>_</b><i>dir</i>
|
||||
The path name of the Postfix <a href="postconf.5.html"><b>main.cf</b></a> file, or of
|
||||
its parent directory. This information is ignored
|
||||
The path name of the Postfix <a href="postconf.5.html"><b>main.cf</b></a> file, or of
|
||||
its parent directory. This information is ignored
|
||||
with Postfix versions before 2.3.
|
||||
|
||||
With all Postfix versions, you can specify a direc-
|
||||
tory pathname with the MAIL_CONFIG environment
|
||||
variable to override the location of configuration
|
||||
variable to override the location of configuration
|
||||
files.
|
||||
|
||||
<b>-F</b> <i>full</i><b>_</b><i>name</i>
|
||||
Set the sender full name. This overrides the NAME
|
||||
environment variable, and is used only with mes-
|
||||
Set the sender full name. This overrides the NAME
|
||||
environment variable, and is used only with mes-
|
||||
sages that have no <b>From:</b> message header.
|
||||
|
||||
<b>-f</b> <i>sender</i>
|
||||
Set the envelope sender address. This is the
|
||||
address where delivery problems are sent to. With
|
||||
address where delivery problems are sent to. With
|
||||
Postfix versions before 2.1, the <b>Errors-To:</b> message
|
||||
header overrides the error return address.
|
||||
|
||||
<b>-G</b> Gateway (relay) submission, as opposed to initial
|
||||
user submission. Either do not rewrite addresses
|
||||
at all, or update incomplete addresses with the
|
||||
<b>-G</b> Gateway (relay) submission, as opposed to initial
|
||||
user submission. Either do not rewrite addresses
|
||||
at all, or update incomplete addresses with the
|
||||
domain information specified with <b>remote_header_re-</b>
|
||||
<b>write_domain</b>.
|
||||
|
||||
This option is ignored before Postfix version 2.3.
|
||||
This option is ignored before Postfix version 2.3.
|
||||
|
||||
<b>-h</b> <i>hop</i><b>_</b><i>count</i> (ignored)
|
||||
Hop count limit. Use the <b><a href="postconf.5.html#hopcount_limit">hopcount_limit</a></b> configura-
|
||||
Hop count limit. Use the <b><a href="postconf.5.html#hopcount_limit">hopcount_limit</a></b> configura-
|
||||
tion parameter instead.
|
||||
|
||||
<b>-I</b> Initialize alias database. See the <b>newaliases</b> com-
|
||||
<b>-I</b> Initialize alias database. See the <b>newaliases</b> com-
|
||||
mand above.
|
||||
|
||||
<b>-i</b> When reading a message from standard input, don't
|
||||
treat a line with only a <b>.</b> character as the end of
|
||||
<b>-i</b> When reading a message from standard input, don't
|
||||
treat a line with only a <b>.</b> character as the end of
|
||||
input.
|
||||
|
||||
<b>-L</b> <i>label</i> (ignored)
|
||||
The logging label. Use the <b><a href="postconf.5.html#syslog_name">syslog_name</a></b> configura-
|
||||
The logging label. Use the <b><a href="postconf.5.html#syslog_name">syslog_name</a></b> configura-
|
||||
tion parameter instead.
|
||||
|
||||
<b>-m</b> (ignored)
|
||||
Backwards compatibility.
|
||||
|
||||
<b>-N</b> <i>dsn</i> (default: 'delay, failure')
|
||||
Delivery status notification control. Specify
|
||||
either a comma-separated list with one or more of
|
||||
<b>failure</b> (send notification when delivery fails),
|
||||
Delivery status notification control. Specify
|
||||
either a comma-separated list with one or more of
|
||||
<b>failure</b> (send notification when delivery fails),
|
||||
<b>delay</b> (send notification when delivery is delayed),
|
||||
or <b>success</b> (send notification when the message is
|
||||
delivered); or specify <b>never</b> (don't send any noti-
|
||||
or <b>success</b> (send notification when the message is
|
||||
delivered); or specify <b>never</b> (don't send any noti-
|
||||
fications at all).
|
||||
|
||||
This feature is available in Postfix 2.3 and later.
|
||||
|
@ -180,11 +185,12 @@ SENDMAIL(1) SENDMAIL(1)
|
|||
Backwards compatibility.
|
||||
|
||||
<b>-oA</b><i>alias</i><b>_</b><i>database</i>
|
||||
Non-default alias database. Specify <i>pathname</i> or
|
||||
Non-default alias database. Specify <i>pathname</i> or
|
||||
<i>type</i>:<i>pathname</i>. See <a href="postalias.1.html"><b>postalias</b>(1)</a> for details.
|
||||
|
||||
<b>-O</b> <i>option=value</i> (ignored)
|
||||
Backwards compatibility.
|
||||
Set the named <i>option</i> to <i>value</i>. Use the equivalent
|
||||
configuration parameter in <a href="postconf.5.html"><b>main.cf</b></a> instead.
|
||||
|
||||
<b>-o7</b> (ignored)
|
||||
|
||||
|
@ -211,9 +217,17 @@ SENDMAIL(1) SENDMAIL(1)
|
|||
Postfix versions before 2.1, the <b>Errors-To:</b> message
|
||||
header overrides the error return address.
|
||||
|
||||
<b>-R</b> <i>return</i><b>_</b><i>limit</i> (ignored)
|
||||
Limit the size of bounced mail. Use the
|
||||
<b><a href="postconf.5.html#bounce_size_limit">bounce_size_limit</a></b> configuration parameter instead.
|
||||
<b>-R</b> <i>return</i>
|
||||
Delivery status notification control. Specify
|
||||
"hdrs" to return only the header when a message
|
||||
bounces, "full" to return a full copy (the default
|
||||
behavior).
|
||||
|
||||
The <b>-R</b> option specifies an upper bound; Postfix
|
||||
will return only the header, when a full copy would
|
||||
exceed the <a href="postconf.5.html#bounce_size_limit">bounce_size_limit</a> setting.
|
||||
|
||||
This option is ignored before Postfix version 2.10.
|
||||
|
||||
<b>-q</b> Attempt to deliver all queued mail. This is imple-
|
||||
mented by executing the <a href="postqueue.1.html"><b>postqueue</b>(1)</a> command.
|
||||
|
@ -429,8 +443,8 @@ SENDMAIL(1) SENDMAIL(1)
|
|||
<a href="postalias.1.html"><b>postalias</b>(1)</a> and <a href="postmap.1.html"><b>postmap</b>(1)</a> commands.
|
||||
|
||||
<b><a href="postconf.5.html#delay_warning_time">delay_warning_time</a> (0h)</b>
|
||||
The time after which the sender receives the mes-
|
||||
sage headers of mail that is still queued.
|
||||
The time after which the sender receives a copy of
|
||||
the message headers of mail that is still queued.
|
||||
|
||||
<b><a href="postconf.5.html#enable_errors_to">enable_errors_to</a> (no)</b>
|
||||
Report mail delivery errors to the address speci-
|
||||
|
|
|
@ -213,8 +213,8 @@ OQMGR(8) OQMGR(8)
|
|||
<b><a href="postconf.5.html#qmgr_message_recipient_limit">qmgr_message_recipient_limit</a> (20000)</b>
|
||||
The maximal number of recipients held in memory by
|
||||
the Postfix queue manager, and the maximal size of
|
||||
the size of the short-term, in-memory "dead" desti-
|
||||
nation status cache.
|
||||
the short-term, in-memory "dead" destination status
|
||||
cache.
|
||||
|
||||
<b>DELIVERY CONCURRENCY CONTROLS</b>
|
||||
<b><a href="postconf.5.html#qmgr_fudge_factor">qmgr_fudge_factor</a> (100)</b>
|
||||
|
@ -316,9 +316,9 @@ OQMGR(8) OQMGR(8)
|
|||
<b><a href="postconf.5.html#default_destination_rate_delay">default_destination_rate_delay</a> (0s)</b>
|
||||
The default amount of delay that is inserted
|
||||
between individual deliveries to the same destina-
|
||||
tion; with per-destination recipient limit > 1, a
|
||||
destination is a domain, otherwise it is a recipi-
|
||||
ent.
|
||||
tion; the resulting behavior depends on the value
|
||||
of the corresponding per-destination recipient
|
||||
limit.
|
||||
|
||||
<b><a href="postconf.5.html#transport_destination_rate_delay"><i>transport</i>_destination_rate_delay</a> $<a href="postconf.5.html#default_destination_rate_delay">default_destina</a>-</b>
|
||||
<b><a href="postconf.5.html#default_destination_rate_delay">tion_rate_delay</a></b>
|
||||
|
|
|
@ -12,16 +12,16 @@ POSTCONF(1) POSTCONF(1)
|
|||
<b>SYNOPSIS</b>
|
||||
<b>Managing <a href="postconf.5.html">main.cf</a>:</b>
|
||||
|
||||
<b>postconf</b> [<b>-dfhnv</b>] [<b>-c</b> <i>config</i><b>_</b><i>dir</i>] [<b>-C</b> <i>class,...</i>] [<i>parame-</i>
|
||||
<i>ter ...</i>]
|
||||
<b>postconf</b> [<b>-dfhnovx</b>] [<b>-c</b> <i>config</i><b>_</b><i>dir</i>] [<b>-C</b> <i>class,...</i>] [<i>param-</i>
|
||||
<i>eter ...</i>]
|
||||
|
||||
<b>postconf</b> [<b>-ev</b>] [<b>-c</b> <i>config</i><b>_</b><i>dir</i>] [<i>parameter=value ...</i>]
|
||||
|
||||
<b>postconf</b> [<b>-#v</b>] [<b>-c</b> <i>config</i><b>_</b><i>dir</i>] [<i>parameter ...</i>]
|
||||
<b>postconf</b> [<b>-#vX</b>] [<b>-c</b> <i>config</i><b>_</b><i>dir</i>] [<i>parameter ...</i>]
|
||||
|
||||
<b>Managing <a href="master.5.html">master.cf</a>:</b>
|
||||
|
||||
<b>postconf</b> [<b>-fMv</b>] [<b>-c</b> <i>config</i><b>_</b><i>dir</i>] [<i>service ...</i>]
|
||||
<b>postconf</b> [<b>-fMovx</b>] [<b>-c</b> <i>config</i><b>_</b><i>dir</i>] [<i>service ...</i>]
|
||||
|
||||
<b>Managing bounce message templates:</b>
|
||||
|
||||
|
@ -115,7 +115,7 @@ POSTCONF(1) POSTCONF(1)
|
|||
for human readability (Postfix 2.9 and later).
|
||||
|
||||
<b>-e</b> Edit the <a href="postconf.5.html"><b>main.cf</b></a> configuration file, and update
|
||||
parameter settings with the "<i>name</i>=<i>value</i>" pairs on
|
||||
parameter settings with the "<i>name=value</i>" pairs on
|
||||
the <a href="postconf.1.html"><b>postconf</b>(1)</a> command line. The file is copied to
|
||||
a temporary file then renamed into place. Specify
|
||||
quotes to protect special characters and whitespace
|
||||
|
@ -150,7 +150,8 @@ POSTCONF(1) POSTCONF(1)
|
|||
creating a file named <i>filename</i><b>.lock</b>. The
|
||||
application is expected to remove its own
|
||||
lock file, as well as stale lock files that
|
||||
were left behind after abnormal termination.
|
||||
were left behind after abnormal program ter-
|
||||
mination.
|
||||
|
||||
<b>-m</b> List the names of all supported lookup table types.
|
||||
In Postfix configuration files, lookup tables are
|
||||
|
@ -228,6 +229,15 @@ POSTCONF(1) POSTCONF(1)
|
|||
is available on systems with support for
|
||||
SDBM databases.
|
||||
|
||||
<b>socketmap</b> (read-only)
|
||||
Query a Sendmail-style socketmap server. The
|
||||
name of the table specifies
|
||||
<b>inet</b>:<i>host</i>:<i>port</i>:<i>socketmap-name</i> for a TCP-
|
||||
based server, or <b>unix</b>:<i>pathname</i>:<i>socketmap-</i>
|
||||
<i>name</i> for a UNIX-domain server. In both
|
||||
cases, <i>socketmap-name</i> is the name of the
|
||||
socketmap.
|
||||
|
||||
<b>sqlite</b> (read-only)
|
||||
Perform lookups from SQLite database files.
|
||||
This is described in <a href="sqlite_table.5.html"><b>sqlite_table</b>(5)</a>.
|
||||
|
@ -286,42 +296,64 @@ POSTCONF(1) POSTCONF(1)
|
|||
This feature is available with Postfix 2.9 and
|
||||
later.
|
||||
|
||||
<b>-n</b> Print <a href="postconf.5.html"><b>main.cf</b></a> parameter settings that are explic-
|
||||
itly specified in <a href="postconf.5.html"><b>main.cf</b></a>. Specify <b>-nf</b> to fold
|
||||
long lines for human readability (Postfix 2.9 and
|
||||
later).
|
||||
<b>-n</b> Show only configuration parameters that have
|
||||
explicit <i>name=value</i> settings in <a href="postconf.5.html"><b>main.cf</b></a>. Specify
|
||||
<b>-nf</b> to fold long lines for human readability (Post-
|
||||
fix 2.9 and later).
|
||||
|
||||
<b>-o</b> <i>name=value</i>
|
||||
Override <a href="postconf.5.html"><b>main.cf</b></a> parameter settings.
|
||||
|
||||
This feature is available with Postfix 2.10 and
|
||||
later.
|
||||
|
||||
<b>-t</b> [<i>template</i><b>_</b><i>file</i>]
|
||||
Display the templates for text that appears at the
|
||||
beginning of delivery status notification (DSN)
|
||||
Display the templates for text that appears at the
|
||||
beginning of delivery status notification (DSN)
|
||||
messages, without expanding $<b>name</b> expressions.
|
||||
|
||||
To override the built-in templates, specify a tem-
|
||||
plate file name at the end of the <a href="postconf.1.html"><b>postconf</b>(1)</a> com-
|
||||
mand line, or specify a file name in <a href="postconf.5.html"><b>main.cf</b></a> with
|
||||
To override the built-in templates, specify a tem-
|
||||
plate file name at the end of the <a href="postconf.1.html"><b>postconf</b>(1)</a> com-
|
||||
mand line, or specify a file name in <a href="postconf.5.html"><b>main.cf</b></a> with
|
||||
the <b><a href="postconf.5.html#bounce_template_file">bounce_template_file</a></b> parameter.
|
||||
|
||||
To force selection of the built-in templates, spec-
|
||||
ify an empty template file name on the <a href="postconf.1.html"><b>postconf</b>(1)</a>
|
||||
ify an empty template file name on the <a href="postconf.1.html"><b>postconf</b>(1)</a>
|
||||
command line (in shell language: "").
|
||||
|
||||
This feature is available with Postfix 2.3 and
|
||||
This feature is available with Postfix 2.3 and
|
||||
later.
|
||||
|
||||
<b>-v</b> Enable verbose logging for debugging purposes. Mul-
|
||||
tiple <b>-v</b> options make the software increasingly
|
||||
tiple <b>-v</b> options make the software increasingly
|
||||
verbose.
|
||||
|
||||
<b>-#</b> Edit the <a href="postconf.5.html"><b>main.cf</b></a> configuration file, and comment
|
||||
out the parameters given on the <a href="postconf.1.html"><b>postconf</b>(1)</a> command
|
||||
line, so that those parameters revert to their
|
||||
default values. The file is copied to a temporary
|
||||
file then renamed into place. Specify a list of
|
||||
parameter names, not <i>name</i>=<i>value</i> pairs. There is no
|
||||
<a href="postconf.1.html"><b>postconf</b>(1)</a> command to perform the reverse opera-
|
||||
tion.
|
||||
<b>-x</b> Expand <i>$name</i> in <a href="postconf.5.html"><b>main.cf</b></a> or <a href="master.5.html"><b>master.cf</b></a> parameter val-
|
||||
ues. The expansion is recursive.
|
||||
|
||||
This feature is available with Postfix 2.6 and
|
||||
This feature is available with Postfix 2.10 and
|
||||
later.
|
||||
|
||||
<b>-X</b> Edit the <a href="postconf.5.html"><b>main.cf</b></a> configuration file, and remove the
|
||||
parameters named on the <a href="postconf.1.html"><b>postconf</b>(1)</a> command line.
|
||||
The file is copied to a temporary file then renamed
|
||||
into place. Specify a list of parameter names, not
|
||||
"<i>name=value</i>" pairs. There is no <a href="postconf.1.html"><b>postconf</b>(1)</a> com-
|
||||
mand to perform the reverse operation.
|
||||
|
||||
This feature is available with Postfix 2.10 and
|
||||
later.
|
||||
|
||||
<b>-#</b> Edit the <a href="postconf.5.html"><b>main.cf</b></a> configuration file, and comment
|
||||
out the parameters named on the <a href="postconf.1.html"><b>postconf</b>(1)</a> command
|
||||
line, so that those parameters revert to their
|
||||
default values. The file is copied to a temporary
|
||||
file then renamed into place. Specify a list of
|
||||
parameter names, not "<i>name=value</i>" pairs. There is
|
||||
no <a href="postconf.1.html"><b>postconf</b>(1)</a> command to perform the reverse oper-
|
||||
ation.
|
||||
|
||||
This feature is available with Postfix 2.6 and
|
||||
later.
|
||||
|
||||
<b>DIAGNOSTICS</b>
|
||||
|
@ -332,18 +364,18 @@ POSTCONF(1) POSTCONF(1)
|
|||
Directory with Postfix configuration files.
|
||||
|
||||
<b>CONFIGURATION PARAMETERS</b>
|
||||
The following <a href="postconf.5.html"><b>main.cf</b></a> parameters are especially relevant
|
||||
The following <a href="postconf.5.html"><b>main.cf</b></a> parameters are especially relevant
|
||||
to this program.
|
||||
|
||||
The text below provides only a parameter summary. See
|
||||
The text below provides only a parameter summary. See
|
||||
<a href="postconf.5.html"><b>postconf</b>(5)</a> for more details including examples.
|
||||
|
||||
<b><a href="postconf.5.html#config_directory">config_directory</a> (see 'postconf -d' output)</b>
|
||||
The default location of the Postfix <a href="postconf.5.html">main.cf</a> and
|
||||
The default location of the Postfix <a href="postconf.5.html">main.cf</a> and
|
||||
<a href="master.5.html">master.cf</a> configuration files.
|
||||
|
||||
<b><a href="postconf.5.html#bounce_template_file">bounce_template_file</a> (empty)</b>
|
||||
Pathname of a configuration file with bounce mes-
|
||||
Pathname of a configuration file with bounce mes-
|
||||
sage templates.
|
||||
|
||||
<b>FILES</b>
|
||||
|
@ -359,7 +391,7 @@ POSTCONF(1) POSTCONF(1)
|
|||
<a href="DATABASE_README.html">DATABASE_README</a>, Postfix lookup table overview
|
||||
|
||||
<b>LICENSE</b>
|
||||
The Secure Mailer license must be distributed with this
|
||||
The Secure Mailer license must be distributed with this
|
||||
software.
|
||||
|
||||
<b>AUTHOR(S)</b>
|
||||
|
|
|
@ -73,7 +73,7 @@ POSTQUEUE(1) POSTQUEUE(1)
|
|||
<b>-s</b> <i>site</i>
|
||||
Schedule immediate delivery of all mail that is
|
||||
queued for the named <i>site</i>. A numerical site must be
|
||||
specified as a valid <a href="http://tools.ietf.org/html/rfc2821">RFC 2821</a> address literal
|
||||
specified as a valid <a href="http://tools.ietf.org/html/rfc5321">RFC 5321</a> address literal
|
||||
enclosed in [], just like in email addresses. The
|
||||
site must be eligible for the "fast flush" service.
|
||||
See <a href="flush.8.html"><b>flush</b>(8)</a> for more information about the "fast
|
||||
|
|
|
@ -13,19 +13,23 @@ POSTSCREEN(8) POSTSCREEN(8)
|
|||
<b>postscreen</b> [generic Postfix daemon options]
|
||||
|
||||
<b>DESCRIPTION</b>
|
||||
The Postfix <a href="postscreen.8.html"><b>postscreen</b>(8)</a> server performs triage on multi-
|
||||
ple inbound SMTP connections at the same time. While a
|
||||
single <a href="postscreen.8.html"><b>postscreen</b>(8)</a> process keeps spambots away from
|
||||
Postfix SMTP server processes, more Postfix SMTP server
|
||||
processes remain available for legitimate clients.
|
||||
The Postfix <a href="postscreen.8.html"><b>postscreen</b>(8)</a> server provides additional pro-
|
||||
tection against mail server overload. One <a href="postscreen.8.html"><b>postscreen</b>(8)</a>
|
||||
process handles multiple inbound SMTP connections, and
|
||||
decides which clients may talk to a Postfix SMTP server
|
||||
process. By keeping spambots away, <a href="postscreen.8.html"><b>postscreen</b>(8)</a> leaves
|
||||
more SMTP server processes available for legitimate
|
||||
clients, and delays the onset of server overload condi-
|
||||
tions.
|
||||
|
||||
This program should not be used on SMTP ports that receive
|
||||
mail from end-user clients (MUAs). In a typical deploy-
|
||||
ment, <a href="postscreen.8.html"><b>postscreen</b>(8)</a> is used on the "port 25" service,
|
||||
while MUA clients submit mail via the <b>submission</b> service,
|
||||
or via a "port 25" server that provides no MX service
|
||||
(i.e. a dedicated server that provides <b>submission</b> service
|
||||
on port 25).
|
||||
mail from end-user clients (MUAs). In a typical deploy-
|
||||
ment, <a href="postscreen.8.html"><b>postscreen</b>(8)</a> handles the MX service on TCP port 25,
|
||||
while MUA clients submit mail via the <b>submission</b> service
|
||||
on TCP port 587 which requires client authentication.
|
||||
Alternatively, a site could set up a dedicated, non-
|
||||
postscreen, "port 25" server that provides <b>submission</b> ser-
|
||||
vice and client authentication, but no MX service.
|
||||
|
||||
<a href="postscreen.8.html"><b>postscreen</b>(8)</a> maintains a temporary whitelist for clients
|
||||
that have passed a number of tests. When an SMTP client
|
||||
|
@ -76,24 +80,24 @@ POSTSCREEN(8) POSTSCREEN(8)
|
|||
<b>BUGS</b>
|
||||
The <a href="postscreen.8.html"><b>postscreen</b>(8)</a> built-in SMTP protocol engine currently
|
||||
does not announce support for AUTH, XCLIENT or XFORWARD.
|
||||
Support for AUTH may be added in the future. In the mean
|
||||
time, if you need to make these services available on port
|
||||
25, then do not enable the optional "after 220 server
|
||||
greeting" tests, and do not use DNSBLs that reject traffic
|
||||
from dial-up and residential networks.
|
||||
If you need to make these services available on port 25,
|
||||
then do not enable the optional "after 220 server greet-
|
||||
ing" tests, and do not use DNSBLs that reject traffic from
|
||||
dial-up and residential networks.
|
||||
|
||||
The optional "after 220 server greeting" tests involve
|
||||
<a href="postscreen.8.html"><b>postscreen</b>(8)</a>'s built-in SMTP protocol engine. When these
|
||||
The optional "after 220 server greeting" tests involve
|
||||
<a href="postscreen.8.html"><b>postscreen</b>(8)</a>'s built-in SMTP protocol engine. When these
|
||||
tests succeed, <a href="postscreen.8.html"><b>postscreen</b>(8)</a> adds the client to the tempo-
|
||||
rary whitelist but it cannot not hand off the "live" con-
|
||||
nection to a Postfix SMTP server process in the middle of
|
||||
a session. Instead, <a href="postscreen.8.html"><b>postscreen</b>(8)</a> defers attempts to
|
||||
deliver mail with a 4XX status, and waits for the client
|
||||
to disconnect. The next time a good client connects, it
|
||||
will be allowed to talk to a Postfix SMTP server process
|
||||
to deliver mail. <a href="postscreen.8.html"><b>postscreen</b>(8)</a> mitigates the impact of
|
||||
this limitation by giving such tests a long expiration
|
||||
time.
|
||||
rary whitelist, but it cannot not hand off the "live" con-
|
||||
nection to a Postfix SMTP server process in the middle of
|
||||
a session. Instead, <a href="postscreen.8.html"><b>postscreen</b>(8)</a> defers attempts to
|
||||
deliver mail with a 4XX status, and waits for the client
|
||||
to disconnect. When the client connects again,
|
||||
<a href="postscreen.8.html"><b>postscreen</b>(8)</a> will allow the client to talk to a Postfix
|
||||
SMTP server process (provided that the whitelist status
|
||||
has not expired). <a href="postscreen.8.html"><b>postscreen</b>(8)</a> mitigates the impact of
|
||||
this limitation by giving the "after 220 server greeting"
|
||||
tests a long expiration time.
|
||||
|
||||
<b>CONFIGURATION PARAMETERS</b>
|
||||
Changes to <a href="postconf.5.html">main.cf</a> are not picked up automatically, as
|
||||
|
@ -144,10 +148,22 @@ POSTSCREEN(8) POSTSCREEN(8)
|
|||
Safety net to keep mail queued that would otherwise
|
||||
be returned to the sender.
|
||||
|
||||
<b>BEFORE-POSTSCREEN PROXY AGENT</b>
|
||||
Available in Postfix version 2.10 and later:
|
||||
|
||||
<b><a href="postconf.5.html#postscreen_upstream_proxy_protocol">postscreen_upstream_proxy_protocol</a> (empty)</b>
|
||||
The name of the proxy protocol used by an optional
|
||||
before-postscreen proxy agent.
|
||||
|
||||
<b><a href="postconf.5.html#postscreen_upstream_proxy_timeout">postscreen_upstream_proxy_timeout</a> (5s)</b>
|
||||
The time limit for the proxy protocol specified
|
||||
with the <a href="postconf.5.html#postscreen_upstream_proxy_protocol">postscreen_upstream_proxy_protocol</a> parame-
|
||||
ter.
|
||||
|
||||
<b>PERMANENT WHITE/BLACKLIST TEST</b>
|
||||
This test is executed immediately after a remote SMTP
|
||||
client connects. If a client is permanently whitelisted,
|
||||
the client will be handed off immediately to a Postfix
|
||||
This test is executed immediately after a remote SMTP
|
||||
client connects. If a client is permanently whitelisted,
|
||||
the client will be handed off immediately to a Postfix
|
||||
SMTP server process.
|
||||
|
||||
<b><a href="postconf.5.html#postscreen_access_list">postscreen_access_list</a> (<a href="postconf.5.html#permit_mynetworks">permit_mynetworks</a>)</b>
|
||||
|
@ -155,19 +171,18 @@ POSTSCREEN(8) POSTSCREEN(8)
|
|||
addresses.
|
||||
|
||||
<b><a href="postconf.5.html#postscreen_blacklist_action">postscreen_blacklist_action</a> (ignore)</b>
|
||||
The action that <a href="postscreen.8.html"><b>postscreen</b>(8)</a> takes when a remote
|
||||
SMTP client is permanently blacklisted with the
|
||||
The action that <a href="postscreen.8.html"><b>postscreen</b>(8)</a> takes when a remote
|
||||
SMTP client is permanently blacklisted with the
|
||||
<a href="postconf.5.html#postscreen_access_list">postscreen_access_list</a> parameter.
|
||||
|
||||
<b>MAIL EXCHANGER POLICY TESTS</b>
|
||||
When a remote SMTP client is not on the permanent access
|
||||
list, <a href="postscreen.8.html"><b>postscreen</b>(8)</a> can implement a number of whitelist
|
||||
tests before it grants the client a temporary whitelist
|
||||
status to talk to a Postfix SMTP server process.
|
||||
|
||||
By listening on both primary and backup MX addresses,
|
||||
<a href="postscreen.8.html"><b>postscreen</b>(8)</a> can deny the temporary whitelist status to
|
||||
clients that connect only to backup MX hosts.
|
||||
When <a href="postscreen.8.html"><b>postscreen</b>(8)</a> is configured to monitor all primary
|
||||
and backup MX addresses, it can refuse to whitelist
|
||||
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 <a href="postscreen.8.html"><b>postscreen</b>(8)</a> cache between primary and backup
|
||||
MTAs, which would introduce a common point of failure.
|
||||
|
||||
<b><a href="postconf.5.html#postscreen_whitelist_interfaces">postscreen_whitelist_interfaces</a> (<a href="DATABASE_README.html#types">static</a>:all)</b>
|
||||
A list of local <a href="postscreen.8.html"><b>postscreen</b>(8)</a> server IP addresses
|
||||
|
|
|
@ -115,7 +115,7 @@ PROXYMAP(8) PROXYMAP(8)
|
|||
|
||||
The <a href="proxymap.8.html"><b>proxymap</b>(8)</a> server is not a trusted daemon process,
|
||||
and must not be used to look up sensitive information such
|
||||
as user or group IDs, mailbox file/directory names or
|
||||
as UNIX user or group IDs, mailbox file/directory names or
|
||||
external commands.
|
||||
|
||||
In Postfix version 2.2 and later, the proxymap client rec-
|
||||
|
|
|
@ -219,8 +219,8 @@ QMGR(8) QMGR(8)
|
|||
<b><a href="postconf.5.html#qmgr_message_recipient_limit">qmgr_message_recipient_limit</a> (20000)</b>
|
||||
The maximal number of recipients held in memory by
|
||||
the Postfix queue manager, and the maximal size of
|
||||
the size of the short-term, in-memory "dead" desti-
|
||||
nation status cache.
|
||||
the short-term, in-memory "dead" destination status
|
||||
cache.
|
||||
|
||||
<b><a href="postconf.5.html#qmgr_message_recipient_minimum">qmgr_message_recipient_minimum</a> (10)</b>
|
||||
The minimal number of in-memory recipients for any
|
||||
|
@ -388,9 +388,9 @@ QMGR(8) QMGR(8)
|
|||
<b><a href="postconf.5.html#default_destination_rate_delay">default_destination_rate_delay</a> (0s)</b>
|
||||
The default amount of delay that is inserted
|
||||
between individual deliveries to the same destina-
|
||||
tion; with per-destination recipient limit > 1, a
|
||||
destination is a domain, otherwise it is a recipi-
|
||||
ent.
|
||||
tion; the resulting behavior depends on the value
|
||||
of the corresponding per-destination recipient
|
||||
limit.
|
||||
|
||||
<b><a href="postconf.5.html#transport_destination_rate_delay"><i>transport</i>_destination_rate_delay</a> $<a href="postconf.5.html#default_destination_rate_delay">default_destina</a>-</b>
|
||||
<b><a href="postconf.5.html#default_destination_rate_delay">tion_rate_delay</a></b>
|
||||
|
|
|
@ -93,85 +93,90 @@ SENDMAIL(1) SENDMAIL(1)
|
|||
<b>-bi</b> Initialize alias database. See the <b>newaliases</b> com-
|
||||
mand above.
|
||||
|
||||
<b>-bm</b> Read mail from standard input and arrange for
|
||||
<b>-bl</b> Go into daemon mode. To accept only local connec-
|
||||
tions as with Sendmail's <b>-bl</b> option, specify
|
||||
"<b><a href="postconf.5.html#inet_interfaces">inet_interfaces</a> = loopback</b>" in the Postfix <a href="postconf.5.html"><b>main.cf</b></a>
|
||||
configuration file.
|
||||
|
||||
<b>-bm</b> Read mail from standard input and arrange for
|
||||
delivery. This is the default mode of operation.
|
||||
|
||||
<b>-bp</b> List the mail queue. See the <b>mailq</b> command above.
|
||||
|
||||
<b>-bs</b> Stand-alone SMTP server mode. Read SMTP commands
|
||||
from standard input, and write responses to stan-
|
||||
<b>-bs</b> Stand-alone SMTP server mode. Read SMTP commands
|
||||
from standard input, and write responses to stan-
|
||||
dard output. In stand-alone SMTP server mode, mail
|
||||
relaying and other access controls are disabled by
|
||||
default. To enable them, run the process as the
|
||||
relaying and other access controls are disabled by
|
||||
default. To enable them, run the process as the
|
||||
<b><a href="postconf.5.html#mail_owner">mail_owner</a></b> user.
|
||||
|
||||
This mode of operation is implemented by running
|
||||
This mode of operation is implemented by running
|
||||
the <a href="smtpd.8.html"><b>smtpd</b>(8)</a> daemon.
|
||||
|
||||
<b>-bv</b> Do not collect or deliver a message. Instead, send
|
||||
an email report after verifying each recipient
|
||||
address. This is useful for testing address
|
||||
<b>-bv</b> Do not collect or deliver a message. Instead, send
|
||||
an email report after verifying each recipient
|
||||
address. This is useful for testing address
|
||||
rewriting and routing configurations.
|
||||
|
||||
This feature is available in Postfix version 2.1
|
||||
This feature is available in Postfix version 2.1
|
||||
and later.
|
||||
|
||||
<b>-C</b> <i>config</i><b>_</b><i>file</i>
|
||||
|
||||
<b>-C</b> <i>config</i><b>_</b><i>dir</i>
|
||||
The path name of the Postfix <a href="postconf.5.html"><b>main.cf</b></a> file, or of
|
||||
its parent directory. This information is ignored
|
||||
The path name of the Postfix <a href="postconf.5.html"><b>main.cf</b></a> file, or of
|
||||
its parent directory. This information is ignored
|
||||
with Postfix versions before 2.3.
|
||||
|
||||
With all Postfix versions, you can specify a direc-
|
||||
tory pathname with the MAIL_CONFIG environment
|
||||
variable to override the location of configuration
|
||||
variable to override the location of configuration
|
||||
files.
|
||||
|
||||
<b>-F</b> <i>full</i><b>_</b><i>name</i>
|
||||
Set the sender full name. This overrides the NAME
|
||||
environment variable, and is used only with mes-
|
||||
Set the sender full name. This overrides the NAME
|
||||
environment variable, and is used only with mes-
|
||||
sages that have no <b>From:</b> message header.
|
||||
|
||||
<b>-f</b> <i>sender</i>
|
||||
Set the envelope sender address. This is the
|
||||
address where delivery problems are sent to. With
|
||||
address where delivery problems are sent to. With
|
||||
Postfix versions before 2.1, the <b>Errors-To:</b> message
|
||||
header overrides the error return address.
|
||||
|
||||
<b>-G</b> Gateway (relay) submission, as opposed to initial
|
||||
user submission. Either do not rewrite addresses
|
||||
at all, or update incomplete addresses with the
|
||||
<b>-G</b> Gateway (relay) submission, as opposed to initial
|
||||
user submission. Either do not rewrite addresses
|
||||
at all, or update incomplete addresses with the
|
||||
domain information specified with <b>remote_header_re-</b>
|
||||
<b>write_domain</b>.
|
||||
|
||||
This option is ignored before Postfix version 2.3.
|
||||
This option is ignored before Postfix version 2.3.
|
||||
|
||||
<b>-h</b> <i>hop</i><b>_</b><i>count</i> (ignored)
|
||||
Hop count limit. Use the <b><a href="postconf.5.html#hopcount_limit">hopcount_limit</a></b> configura-
|
||||
Hop count limit. Use the <b><a href="postconf.5.html#hopcount_limit">hopcount_limit</a></b> configura-
|
||||
tion parameter instead.
|
||||
|
||||
<b>-I</b> Initialize alias database. See the <b>newaliases</b> com-
|
||||
<b>-I</b> Initialize alias database. See the <b>newaliases</b> com-
|
||||
mand above.
|
||||
|
||||
<b>-i</b> When reading a message from standard input, don't
|
||||
treat a line with only a <b>.</b> character as the end of
|
||||
<b>-i</b> When reading a message from standard input, don't
|
||||
treat a line with only a <b>.</b> character as the end of
|
||||
input.
|
||||
|
||||
<b>-L</b> <i>label</i> (ignored)
|
||||
The logging label. Use the <b><a href="postconf.5.html#syslog_name">syslog_name</a></b> configura-
|
||||
The logging label. Use the <b><a href="postconf.5.html#syslog_name">syslog_name</a></b> configura-
|
||||
tion parameter instead.
|
||||
|
||||
<b>-m</b> (ignored)
|
||||
Backwards compatibility.
|
||||
|
||||
<b>-N</b> <i>dsn</i> (default: 'delay, failure')
|
||||
Delivery status notification control. Specify
|
||||
either a comma-separated list with one or more of
|
||||
<b>failure</b> (send notification when delivery fails),
|
||||
Delivery status notification control. Specify
|
||||
either a comma-separated list with one or more of
|
||||
<b>failure</b> (send notification when delivery fails),
|
||||
<b>delay</b> (send notification when delivery is delayed),
|
||||
or <b>success</b> (send notification when the message is
|
||||
delivered); or specify <b>never</b> (don't send any noti-
|
||||
or <b>success</b> (send notification when the message is
|
||||
delivered); or specify <b>never</b> (don't send any noti-
|
||||
fications at all).
|
||||
|
||||
This feature is available in Postfix 2.3 and later.
|
||||
|
@ -180,11 +185,12 @@ SENDMAIL(1) SENDMAIL(1)
|
|||
Backwards compatibility.
|
||||
|
||||
<b>-oA</b><i>alias</i><b>_</b><i>database</i>
|
||||
Non-default alias database. Specify <i>pathname</i> or
|
||||
Non-default alias database. Specify <i>pathname</i> or
|
||||
<i>type</i>:<i>pathname</i>. See <a href="postalias.1.html"><b>postalias</b>(1)</a> for details.
|
||||
|
||||
<b>-O</b> <i>option=value</i> (ignored)
|
||||
Backwards compatibility.
|
||||
Set the named <i>option</i> to <i>value</i>. Use the equivalent
|
||||
configuration parameter in <a href="postconf.5.html"><b>main.cf</b></a> instead.
|
||||
|
||||
<b>-o7</b> (ignored)
|
||||
|
||||
|
@ -211,9 +217,17 @@ SENDMAIL(1) SENDMAIL(1)
|
|||
Postfix versions before 2.1, the <b>Errors-To:</b> message
|
||||
header overrides the error return address.
|
||||
|
||||
<b>-R</b> <i>return</i><b>_</b><i>limit</i> (ignored)
|
||||
Limit the size of bounced mail. Use the
|
||||
<b><a href="postconf.5.html#bounce_size_limit">bounce_size_limit</a></b> configuration parameter instead.
|
||||
<b>-R</b> <i>return</i>
|
||||
Delivery status notification control. Specify
|
||||
"hdrs" to return only the header when a message
|
||||
bounces, "full" to return a full copy (the default
|
||||
behavior).
|
||||
|
||||
The <b>-R</b> option specifies an upper bound; Postfix
|
||||
will return only the header, when a full copy would
|
||||
exceed the <a href="postconf.5.html#bounce_size_limit">bounce_size_limit</a> setting.
|
||||
|
||||
This option is ignored before Postfix version 2.10.
|
||||
|
||||
<b>-q</b> Attempt to deliver all queued mail. This is imple-
|
||||
mented by executing the <a href="postqueue.1.html"><b>postqueue</b>(1)</a> command.
|
||||
|
@ -429,8 +443,8 @@ SENDMAIL(1) SENDMAIL(1)
|
|||
<a href="postalias.1.html"><b>postalias</b>(1)</a> and <a href="postmap.1.html"><b>postmap</b>(1)</a> commands.
|
||||
|
||||
<b><a href="postconf.5.html#delay_warning_time">delay_warning_time</a> (0h)</b>
|
||||
The time after which the sender receives the mes-
|
||||
sage headers of mail that is still queued.
|
||||
The time after which the sender receives a copy of
|
||||
the message headers of mail that is still queued.
|
||||
|
||||
<b><a href="postconf.5.html#enable_errors_to">enable_errors_to</a> (no)</b>
|
||||
Report mail delivery errors to the address speci-
|
||||
|
|
|
@ -115,6 +115,7 @@ SMTP(8) SMTP(8)
|
|||
<a href="http://tools.ietf.org/html/rfc3461">RFC 3461</a> (SMTP DSN Extension)
|
||||
<a href="http://tools.ietf.org/html/rfc3463">RFC 3463</a> (Enhanced Status Codes)
|
||||
<a href="http://tools.ietf.org/html/rfc4954">RFC 4954</a> (AUTH command)
|
||||
<a href="http://tools.ietf.org/html/rfc5321">RFC 5321</a> (SMTP protocol)
|
||||
|
||||
<b>DIAGNOSTICS</b>
|
||||
Problems and transactions are logged to <b>syslogd</b>(8). Cor-
|
||||
|
@ -194,7 +195,7 @@ SMTP(8) SMTP(8)
|
|||
|
||||
<b><a href="postconf.5.html#smtp_quote_rfc821_envelope">smtp_quote_rfc821_envelope</a> (yes)</b>
|
||||
Quote addresses in Postfix SMTP client MAIL FROM
|
||||
and RCPT TO commands as required by <a href="http://tools.ietf.org/html/rfc2821">RFC 2821</a>.
|
||||
and RCPT TO commands as required by <a href="http://tools.ietf.org/html/rfc5321">RFC 5321</a>.
|
||||
|
||||
<b><a href="postconf.5.html#smtp_reply_filter">smtp_reply_filter</a> (empty)</b>
|
||||
A mechanism to transform replies from remote SMTP
|
||||
|
|
|
@ -59,6 +59,7 @@ SMTPD(8) SMTPD(8)
|
|||
<a href="http://tools.ietf.org/html/rfc3848">RFC 3848</a> (ESMTP transmission types)
|
||||
<a href="http://tools.ietf.org/html/rfc4409">RFC 4409</a> (Message submission)
|
||||
<a href="http://tools.ietf.org/html/rfc4954">RFC 4954</a> (AUTH command)
|
||||
<a href="http://tools.ietf.org/html/rfc5321">RFC 5321</a> (SMTP protocol)
|
||||
|
||||
<b>DIAGNOSTICS</b>
|
||||
Problems and transactions are logged to <b>syslogd</b>(8).
|
||||
|
@ -183,6 +184,17 @@ SMTPD(8) SMTPD(8)
|
|||
addresses with the domain specified in the
|
||||
<a href="postconf.5.html#remote_header_rewrite_domain">remote_header_rewrite_domain</a> parameter.
|
||||
|
||||
<b>BEFORE-SMTPD PROXY AGENT</b>
|
||||
Available in Postfix version 2.10 and later:
|
||||
|
||||
<b><a href="postconf.5.html#smtpd_upstream_proxy_protocol">smtpd_upstream_proxy_protocol</a> (empty)</b>
|
||||
The name of the proxy protocol used by an optional
|
||||
before-smtpd proxy agent.
|
||||
|
||||
<b><a href="postconf.5.html#smtpd_upstream_proxy_timeout">smtpd_upstream_proxy_timeout</a> (5s)</b>
|
||||
The time limit for the proxy protocol specified
|
||||
with the <a href="postconf.5.html#smtpd_upstream_proxy_protocol">smtpd_upstream_proxy_protocol</a> parameter.
|
||||
|
||||
<b>AFTER QUEUE EXTERNAL CONTENT INSPECTION CONTROLS</b>
|
||||
As of version 1.0, Postfix can be configured to send new
|
||||
mail to an external content filter AFTER the mail is
|
||||
|
@ -673,19 +685,25 @@ SMTPD(8) SMTPD(8)
|
|||
What remote SMTP clients are allowed to use the
|
||||
XCLIENT feature.
|
||||
|
||||
Available in Postfix version 2.10 and later:
|
||||
|
||||
<b><a href="postconf.5.html#smtpd_log_access_permit_actions">smtpd_log_access_permit_actions</a> (empty)</b>
|
||||
Enable logging of the named "permit" actions in
|
||||
SMTP server access lists.
|
||||
|
||||
<b>KNOWN VERSUS UNKNOWN RECIPIENT CONTROLS</b>
|
||||
As of Postfix version 2.0, the SMTP server rejects mail
|
||||
for unknown recipients. This prevents the mail queue from
|
||||
clogging up with undeliverable MAILER-DAEMON messages.
|
||||
Additional information on this topic is in the
|
||||
As of Postfix version 2.0, the SMTP server rejects mail
|
||||
for unknown recipients. This prevents the mail queue from
|
||||
clogging up with undeliverable MAILER-DAEMON messages.
|
||||
Additional information on this topic is in the
|
||||
<a href="LOCAL_RECIPIENT_README.html">LOCAL_RECIPIENT_README</a> and <a href="ADDRESS_CLASS_README.html">ADDRESS_CLASS_README</a> documents.
|
||||
|
||||
<b><a href="postconf.5.html#show_user_unknown_table_name">show_user_unknown_table_name</a> (yes)</b>
|
||||
Display the name of the recipient table in the
|
||||
Display the name of the recipient table in the
|
||||
"User unknown" responses.
|
||||
|
||||
<b><a href="postconf.5.html#canonical_maps">canonical_maps</a> (empty)</b>
|
||||
Optional address mapping lookup tables for message
|
||||
Optional address mapping lookup tables for message
|
||||
headers and envelopes.
|
||||
|
||||
<b><a href="postconf.5.html#recipient_canonical_maps">recipient_canonical_maps</a> (empty)</b>
|
||||
|
@ -696,7 +714,7 @@ SMTPD(8) SMTPD(8)
|
|||
|
||||
<b><a href="postconf.5.html#mydestination">mydestination</a> ($<a href="postconf.5.html#myhostname">myhostname</a>, localhost.$<a href="postconf.5.html#mydomain">mydomain</a>, local-</b>
|
||||
<b>host)</b>
|
||||
The list of domains that are delivered via the
|
||||
The list of domains that are delivered via the
|
||||
$<a href="postconf.5.html#local_transport">local_transport</a> mail delivery transport.
|
||||
|
||||
<b><a href="postconf.5.html#inet_interfaces">inet_interfaces</a> (all)</b>
|
||||
|
@ -705,73 +723,73 @@ SMTPD(8) SMTPD(8)
|
|||
|
||||
<b><a href="postconf.5.html#proxy_interfaces">proxy_interfaces</a> (empty)</b>
|
||||
The network interface addresses that this mail sys-
|
||||
tem receives mail on by way of a proxy or network
|
||||
tem receives mail on by way of a proxy or network
|
||||
address translation unit.
|
||||
|
||||
<b><a href="postconf.5.html#inet_protocols">inet_protocols</a> (all)</b>
|
||||
The Internet protocols Postfix will attempt to use
|
||||
The Internet protocols Postfix will attempt to use
|
||||
when making or accepting connections.
|
||||
|
||||
<b><a href="postconf.5.html#local_recipient_maps">local_recipient_maps</a> (<a href="proxymap.8.html">proxy</a>:unix:passwd.byname</b>
|
||||
<b>$<a href="postconf.5.html#alias_maps">alias_maps</a>)</b>
|
||||
Lookup tables with all names or addresses of local
|
||||
recipients: a recipient address is local when its
|
||||
domain matches $<a href="postconf.5.html#mydestination">mydestination</a>, $<a href="postconf.5.html#inet_interfaces">inet_interfaces</a> or
|
||||
Lookup tables with all names or addresses of local
|
||||
recipients: a recipient address is local when its
|
||||
domain matches $<a href="postconf.5.html#mydestination">mydestination</a>, $<a href="postconf.5.html#inet_interfaces">inet_interfaces</a> or
|
||||
$<a href="postconf.5.html#proxy_interfaces">proxy_interfaces</a>.
|
||||
|
||||
<b><a href="postconf.5.html#unknown_local_recipient_reject_code">unknown_local_recipient_reject_code</a> (550)</b>
|
||||
The numerical Postfix SMTP server response code
|
||||
when a recipient address is local, and
|
||||
$<a href="postconf.5.html#local_recipient_maps">local_recipient_maps</a> specifies a list of lookup
|
||||
The numerical Postfix SMTP server response code
|
||||
when a recipient address is local, and
|
||||
$<a href="postconf.5.html#local_recipient_maps">local_recipient_maps</a> specifies a list of lookup
|
||||
tables that does not match the recipient.
|
||||
|
||||
Parameters concerning known/unknown recipients of relay
|
||||
Parameters concerning known/unknown recipients of relay
|
||||
destinations:
|
||||
|
||||
<b><a href="postconf.5.html#relay_domains">relay_domains</a> ($<a href="postconf.5.html#mydestination">mydestination</a>)</b>
|
||||
What destination domains (and subdomains thereof)
|
||||
What destination domains (and subdomains thereof)
|
||||
this system will relay mail to.
|
||||
|
||||
<b><a href="postconf.5.html#relay_recipient_maps">relay_recipient_maps</a> (empty)</b>
|
||||
Optional lookup tables with all valid addresses in
|
||||
Optional lookup tables with all valid addresses in
|
||||
the domains that match $<a href="postconf.5.html#relay_domains">relay_domains</a>.
|
||||
|
||||
<b><a href="postconf.5.html#unknown_relay_recipient_reject_code">unknown_relay_recipient_reject_code</a> (550)</b>
|
||||
The numerical Postfix SMTP server reply code when a
|
||||
recipient address matches $<a href="postconf.5.html#relay_domains">relay_domains</a>, and
|
||||
<a href="postconf.5.html#relay_recipient_maps">relay_recipient_maps</a> specifies a list of lookup
|
||||
recipient address matches $<a href="postconf.5.html#relay_domains">relay_domains</a>, and
|
||||
<a href="postconf.5.html#relay_recipient_maps">relay_recipient_maps</a> specifies a list of lookup
|
||||
tables that does not match the recipient address.
|
||||
|
||||
Parameters concerning known/unknown recipients in virtual
|
||||
Parameters concerning known/unknown recipients in virtual
|
||||
alias domains:
|
||||
|
||||
<b><a href="postconf.5.html#virtual_alias_domains">virtual_alias_domains</a> ($<a href="postconf.5.html#virtual_alias_maps">virtual_alias_maps</a>)</b>
|
||||
Postfix is final destination for the specified list
|
||||
of virtual alias domains, that is, domains for
|
||||
which all addresses are aliased to addresses in
|
||||
of virtual alias domains, that is, domains for
|
||||
which all addresses are aliased to addresses in
|
||||
other local or remote domains.
|
||||
|
||||
<b><a href="postconf.5.html#virtual_alias_maps">virtual_alias_maps</a> ($<a href="postconf.5.html#virtual_maps">virtual_maps</a>)</b>
|
||||
Optional lookup tables that alias specific mail
|
||||
addresses or domains to other local or remote
|
||||
Optional lookup tables that alias specific mail
|
||||
addresses or domains to other local or remote
|
||||
address.
|
||||
|
||||
<b><a href="postconf.5.html#unknown_virtual_alias_reject_code">unknown_virtual_alias_reject_code</a> (550)</b>
|
||||
The Postfix SMTP server reply code when a recipient
|
||||
address matches $<a href="postconf.5.html#virtual_alias_domains">virtual_alias_domains</a>, and $<a href="postconf.5.html#virtual_alias_maps">vir</a>-
|
||||
<a href="postconf.5.html#virtual_alias_maps">tual_alias_maps</a> specifies a list of lookup tables
|
||||
address matches $<a href="postconf.5.html#virtual_alias_domains">virtual_alias_domains</a>, and $<a href="postconf.5.html#virtual_alias_maps">vir</a>-
|
||||
<a href="postconf.5.html#virtual_alias_maps">tual_alias_maps</a> specifies a list of lookup tables
|
||||
that does not match the recipient address.
|
||||
|
||||
Parameters concerning known/unknown recipients in virtual
|
||||
Parameters concerning known/unknown recipients in virtual
|
||||
mailbox domains:
|
||||
|
||||
<b><a href="postconf.5.html#virtual_mailbox_domains">virtual_mailbox_domains</a> ($<a href="postconf.5.html#virtual_mailbox_maps">virtual_mailbox_maps</a>)</b>
|
||||
Postfix is final destination for the specified list
|
||||
of domains; mail is delivered via the $<a href="postconf.5.html#virtual_transport">vir</a>-
|
||||
of domains; mail is delivered via the $<a href="postconf.5.html#virtual_transport">vir</a>-
|
||||
<a href="postconf.5.html#virtual_transport">tual_transport</a> mail delivery transport.
|
||||
|
||||
<b><a href="postconf.5.html#virtual_mailbox_maps">virtual_mailbox_maps</a> (empty)</b>
|
||||
Optional lookup tables with all valid addresses in
|
||||
Optional lookup tables with all valid addresses in
|
||||
the domains that match $<a href="postconf.5.html#virtual_mailbox_domains">virtual_mailbox_domains</a>.
|
||||
|
||||
<b><a href="postconf.5.html#unknown_virtual_mailbox_reject_code">unknown_virtual_mailbox_reject_code</a> (550)</b>
|
||||
|
@ -781,70 +799,70 @@ SMTPD(8) SMTPD(8)
|
|||
that does not match the recipient address.
|
||||
|
||||
<b>RESOURCE AND RATE CONTROLS</b>
|
||||
The following parameters limit resource usage by the SMTP
|
||||
The following parameters limit resource usage by the SMTP
|
||||
server and/or control client request rates.
|
||||
|
||||
<b><a href="postconf.5.html#line_length_limit">line_length_limit</a> (2048)</b>
|
||||
Upon input, long lines are chopped up into pieces
|
||||
of at most this length; upon delivery, long lines
|
||||
Upon input, long lines are chopped up into pieces
|
||||
of at most this length; upon delivery, long lines
|
||||
are reconstructed.
|
||||
|
||||
<b><a href="postconf.5.html#queue_minfree">queue_minfree</a> (0)</b>
|
||||
The minimal amount of free space in bytes in the
|
||||
The minimal amount of free space in bytes in the
|
||||
queue file system that is needed to receive mail.
|
||||
|
||||
<b><a href="postconf.5.html#message_size_limit">message_size_limit</a> (10240000)</b>
|
||||
The maximal size in bytes of a message, including
|
||||
The maximal size in bytes of a message, including
|
||||
envelope information.
|
||||
|
||||
<b><a href="postconf.5.html#smtpd_recipient_limit">smtpd_recipient_limit</a> (1000)</b>
|
||||
The maximal number of recipients that the Postfix
|
||||
The maximal number of recipients that the Postfix
|
||||
SMTP server accepts per message delivery request.
|
||||
|
||||
<b><a href="postconf.5.html#smtpd_timeout">smtpd_timeout</a> (normal: 300s, overload: 10s)</b>
|
||||
The time limit for sending a Postfix SMTP server
|
||||
response and for receiving a remote SMTP client
|
||||
The time limit for sending a Postfix SMTP server
|
||||
response and for receiving a remote SMTP client
|
||||
request.
|
||||
|
||||
<b><a href="postconf.5.html#smtpd_history_flush_threshold">smtpd_history_flush_threshold</a> (100)</b>
|
||||
The maximal number of lines in the Postfix SMTP
|
||||
server command history before it is flushed upon
|
||||
The maximal number of lines in the Postfix SMTP
|
||||
server command history before it is flushed upon
|
||||
receipt of EHLO, RSET, or end of DATA.
|
||||
|
||||
Available in Postfix version 2.3 and later:
|
||||
|
||||
<b><a href="postconf.5.html#smtpd_peername_lookup">smtpd_peername_lookup</a> (yes)</b>
|
||||
Attempt to look up the remote SMTP client hostname,
|
||||
and verify that the name matches the client IP
|
||||
and verify that the name matches the client IP
|
||||
address.
|
||||
|
||||
The per SMTP client connection count and request rate lim-
|
||||
its are implemented in co-operation with the <a href="anvil.8.html"><b>anvil</b>(8)</a> ser-
|
||||
vice, and are available in Postfix version 2.2 and later.
|
||||
vice, and are available in Postfix version 2.2 and later.
|
||||
|
||||
<b><a href="postconf.5.html#smtpd_client_connection_count_limit">smtpd_client_connection_count_limit</a> (50)</b>
|
||||
How many simultaneous connections any client is
|
||||
How many simultaneous connections any client is
|
||||
allowed to make to this service.
|
||||
|
||||
<b><a href="postconf.5.html#smtpd_client_connection_rate_limit">smtpd_client_connection_rate_limit</a> (0)</b>
|
||||
The maximal number of connection attempts any
|
||||
client is allowed to make to this service per time
|
||||
client is allowed to make to this service per time
|
||||
unit.
|
||||
|
||||
<b><a href="postconf.5.html#smtpd_client_message_rate_limit">smtpd_client_message_rate_limit</a> (0)</b>
|
||||
The maximal number of message delivery requests
|
||||
that any client is allowed to make to this service
|
||||
The maximal number of message delivery requests
|
||||
that any client is allowed to make to this service
|
||||
per time unit, regardless of whether or not Postfix
|
||||
actually accepts those messages.
|
||||
|
||||
<b><a href="postconf.5.html#smtpd_client_recipient_rate_limit">smtpd_client_recipient_rate_limit</a> (0)</b>
|
||||
The maximal number of recipient addresses that any
|
||||
client is allowed to send to this service per time
|
||||
The maximal number of recipient addresses that any
|
||||
client is allowed to send to this service per time
|
||||
unit, regardless of whether or not Postfix actually
|
||||
accepts those recipients.
|
||||
|
||||
<b><a href="postconf.5.html#smtpd_client_event_limit_exceptions">smtpd_client_event_limit_exceptions</a> ($<a href="postconf.5.html#mynetworks">mynetworks</a>)</b>
|
||||
Clients that are excluded from
|
||||
Clients that are excluded from
|
||||
smtpd_client_*_count/rate_limit restrictions.
|
||||
|
||||
Available in Postfix version 2.3 and later:
|
||||
|
@ -858,59 +876,59 @@ SMTPD(8) SMTPD(8)
|
|||
|
||||
<b><a href="postconf.5.html#smtpd_per_record_deadline">smtpd_per_record_deadline</a> (normal: no, overload: yes)</b>
|
||||
Change the behavior of the <a href="postconf.5.html#smtpd_timeout">smtpd_timeout</a> time
|
||||
limit, from a time limit per read or write system
|
||||
limit, from a time limit per read or write system
|
||||
call, to a time limit to send or receive a complete
|
||||
record (an SMTP command line, SMTP response line,
|
||||
SMTP message content line, or TLS protocol mes-
|
||||
record (an SMTP command line, SMTP response line,
|
||||
SMTP message content line, or TLS protocol mes-
|
||||
sage).
|
||||
|
||||
<b>TARPIT CONTROLS</b>
|
||||
When a remote SMTP client makes errors, the Postfix SMTP
|
||||
server can insert delays before responding. This can help
|
||||
to slow down run-away software. The behavior is con-
|
||||
trolled by an error counter that counts the number of
|
||||
errors within an SMTP session that a client makes without
|
||||
When a remote SMTP client makes errors, the Postfix SMTP
|
||||
server can insert delays before responding. This can help
|
||||
to slow down run-away software. The behavior is con-
|
||||
trolled by an error counter that counts the number of
|
||||
errors within an SMTP session that a client makes without
|
||||
delivering mail.
|
||||
|
||||
<b><a href="postconf.5.html#smtpd_error_sleep_time">smtpd_error_sleep_time</a> (1s)</b>
|
||||
With Postfix version 2.1 and later: the SMTP server
|
||||
response delay after a client has made more than
|
||||
$<a href="postconf.5.html#smtpd_soft_error_limit">smtpd_soft_error_limit</a> errors, and fewer than
|
||||
$<a href="postconf.5.html#smtpd_hard_error_limit">smtpd_hard_error_limit</a> errors, without delivering
|
||||
response delay after a client has made more than
|
||||
$<a href="postconf.5.html#smtpd_soft_error_limit">smtpd_soft_error_limit</a> errors, and fewer than
|
||||
$<a href="postconf.5.html#smtpd_hard_error_limit">smtpd_hard_error_limit</a> errors, without delivering
|
||||
mail.
|
||||
|
||||
<b><a href="postconf.5.html#smtpd_soft_error_limit">smtpd_soft_error_limit</a> (10)</b>
|
||||
The number of errors a remote SMTP client is
|
||||
allowed to make without delivering mail before the
|
||||
The number of errors a remote SMTP client is
|
||||
allowed to make without delivering mail before the
|
||||
Postfix SMTP server slows down all its responses.
|
||||
|
||||
<b><a href="postconf.5.html#smtpd_hard_error_limit">smtpd_hard_error_limit</a> (normal: 20, overload: 1)</b>
|
||||
The maximal number of errors a remote SMTP client
|
||||
The maximal number of errors a remote SMTP client
|
||||
is allowed to make without delivering mail.
|
||||
|
||||
<b><a href="postconf.5.html#smtpd_junk_command_limit">smtpd_junk_command_limit</a> (normal: 100, overload: 1)</b>
|
||||
The number of junk commands (NOOP, VRFY, ETRN or
|
||||
The number of junk commands (NOOP, VRFY, ETRN or
|
||||
RSET) that a remote SMTP client can send before the
|
||||
Postfix SMTP server starts to increment the error
|
||||
Postfix SMTP server starts to increment the error
|
||||
counter with each junk command.
|
||||
|
||||
Available in Postfix version 2.1 and later:
|
||||
|
||||
<b><a href="postconf.5.html#smtpd_recipient_overshoot_limit">smtpd_recipient_overshoot_limit</a> (1000)</b>
|
||||
The number of recipients that a remote SMTP client
|
||||
can send in excess of the limit specified with
|
||||
The number of recipients that a remote SMTP client
|
||||
can send in excess of the limit specified with
|
||||
$<a href="postconf.5.html#smtpd_recipient_limit">smtpd_recipient_limit</a>, before the Postfix SMTP
|
||||
server increments the per-session error count for
|
||||
server increments the per-session error count for
|
||||
each excess recipient.
|
||||
|
||||
<b>ACCESS POLICY DELEGATION CONTROLS</b>
|
||||
As of version 2.1, Postfix can be configured to delegate
|
||||
access policy decisions to an external server that runs
|
||||
outside Postfix. See the file <a href="SMTPD_POLICY_README.html">SMTPD_POLICY_README</a> for
|
||||
As of version 2.1, Postfix can be configured to delegate
|
||||
access policy decisions to an external server that runs
|
||||
outside Postfix. See the file <a href="SMTPD_POLICY_README.html">SMTPD_POLICY_README</a> for
|
||||
more information.
|
||||
|
||||
<b><a href="postconf.5.html#smtpd_policy_service_max_idle">smtpd_policy_service_max_idle</a> (300s)</b>
|
||||
The time after which an idle SMTPD policy service
|
||||
The time after which an idle SMTPD policy service
|
||||
connection is closed.
|
||||
|
||||
<b><a href="postconf.5.html#smtpd_policy_service_max_ttl">smtpd_policy_service_max_ttl</a> (1000s)</b>
|
||||
|
@ -918,55 +936,55 @@ SMTPD(8) SMTPD(8)
|
|||
connection is closed.
|
||||
|
||||
<b><a href="postconf.5.html#smtpd_policy_service_timeout">smtpd_policy_service_timeout</a> (100s)</b>
|
||||
The time limit for connecting to, writing to or
|
||||
The time limit for connecting to, writing to or
|
||||
receiving from a delegated SMTPD policy server.
|
||||
|
||||
<b>ACCESS CONTROLS</b>
|
||||
The <a href="SMTPD_ACCESS_README.html">SMTPD_ACCESS_README</a> document gives an introduction to
|
||||
The <a href="SMTPD_ACCESS_README.html">SMTPD_ACCESS_README</a> document gives an introduction to
|
||||
all the SMTP server access control features.
|
||||
|
||||
<b><a href="postconf.5.html#smtpd_delay_reject">smtpd_delay_reject</a> (yes)</b>
|
||||
Wait until the RCPT TO command before evaluating
|
||||
Wait until the RCPT TO command before evaluating
|
||||
$<a href="postconf.5.html#smtpd_client_restrictions">smtpd_client_restrictions</a>, $smtpd_helo_restric-
|
||||
tions and $<a href="postconf.5.html#smtpd_sender_restrictions">smtpd_sender_restrictions</a>, or wait until
|
||||
the ETRN command before evaluating
|
||||
the ETRN command before evaluating
|
||||
$<a href="postconf.5.html#smtpd_client_restrictions">smtpd_client_restrictions</a> and $smtpd_helo_restric-
|
||||
tions.
|
||||
|
||||
<b><a href="postconf.5.html#parent_domain_matches_subdomains">parent_domain_matches_subdomains</a> (see 'postconf -d' out-</b>
|
||||
<b><a href="postconf.5.html#parent_domain_matches_subdomains">parent_domain_matches_subdomains</a> (see 'postconf -d' out-</b>
|
||||
<b>put)</b>
|
||||
What Postfix features match subdomains of
|
||||
"domain.tld" automatically, instead of requiring an
|
||||
explicit ".domain.tld" pattern.
|
||||
|
||||
<b><a href="postconf.5.html#smtpd_client_restrictions">smtpd_client_restrictions</a> (empty)</b>
|
||||
Optional Postfix SMTP server access restrictions in
|
||||
the context of a remote SMTP client connection
|
||||
Optional restrictions that the Postfix SMTP server
|
||||
applies in the context of a client connection
|
||||
request.
|
||||
|
||||
<b><a href="postconf.5.html#smtpd_helo_required">smtpd_helo_required</a> (no)</b>
|
||||
Require that a remote SMTP client introduces itself
|
||||
with the HELO or EHLO command before sending the
|
||||
MAIL command or other commands that require EHLO
|
||||
with the HELO or EHLO command before sending the
|
||||
MAIL command or other commands that require EHLO
|
||||
negotiation.
|
||||
|
||||
<b><a href="postconf.5.html#smtpd_helo_restrictions">smtpd_helo_restrictions</a> (empty)</b>
|
||||
Optional restrictions that the Postfix SMTP server
|
||||
applies in the context of the SMTP HELO command.
|
||||
Optional restrictions that the Postfix SMTP server
|
||||
applies in the context of a client HELO command.
|
||||
|
||||
<b><a href="postconf.5.html#smtpd_sender_restrictions">smtpd_sender_restrictions</a> (empty)</b>
|
||||
Optional restrictions that the Postfix SMTP server
|
||||
applies in the context of the MAIL FROM command.
|
||||
|
||||
<b><a href="postconf.5.html#smtpd_recipient_restrictions">smtpd_recipient_restrictions</a> (<a href="postconf.5.html#permit_mynetworks">permit_mynetworks</a>,</b>
|
||||
<b><a href="postconf.5.html#reject_unauth_destination">reject_unauth_destination</a>)</b>
|
||||
The access restrictions that the Postfix SMTP
|
||||
server applies in the context of the RCPT TO com-
|
||||
Optional restrictions that the Postfix SMTP server
|
||||
applies in the context of a client MAIL FROM com-
|
||||
mand.
|
||||
|
||||
<b><a href="postconf.5.html#smtpd_recipient_restrictions">smtpd_recipient_restrictions</a> (see 'postconf -d' output)</b>
|
||||
Optional restrictions that the Postfix SMTP server
|
||||
applies in the context of a client RCPT TO command,
|
||||
after <a href="postconf.5.html#smtpd_relay_restrictions">smtpd_relay_restrictions</a>.
|
||||
|
||||
<b><a href="postconf.5.html#smtpd_etrn_restrictions">smtpd_etrn_restrictions</a> (empty)</b>
|
||||
Optional SMTP server access restrictions in the
|
||||
context of a client ETRN request.
|
||||
Optional restrictions that the Postfix SMTP server
|
||||
applies in the context of a client ETRN command.
|
||||
|
||||
<b><a href="postconf.5.html#allow_untrusted_routing">allow_untrusted_routing</a> (no)</b>
|
||||
Forward mail with sender-specified routing
|
||||
|
@ -1018,52 +1036,61 @@ SMTPD(8) SMTPD(8)
|
|||
server applies in the context of the SMTP END-OF-
|
||||
DATA command.
|
||||
|
||||
Available in Postfix version 2.10 and later:
|
||||
|
||||
<b><a href="postconf.5.html#smtpd_relay_restrictions">smtpd_relay_restrictions</a> (<a href="postconf.5.html#permit_mynetworks">permit_mynetworks</a>,</b>
|
||||
<b><a href="postconf.5.html#reject_unauth_destination">reject_unauth_destination</a>)</b>
|
||||
Access restrictions for mail relay control that the
|
||||
Postfix SMTP server applies in the context of the
|
||||
RCPT TO command, before <a href="postconf.5.html#smtpd_recipient_restrictions">smtpd_recipient_restric</a>-
|
||||
<a href="postconf.5.html#smtpd_recipient_restrictions">tions</a>.
|
||||
|
||||
<b>SENDER AND RECIPIENT ADDRESS VERIFICATION CONTROLS</b>
|
||||
Postfix version 2.1 introduces sender and recipient
|
||||
address verification. This feature is implemented by
|
||||
sending probe email messages that are not actually deliv-
|
||||
ered. This feature is requested via the reject_unveri-
|
||||
fied_sender and <a href="postconf.5.html#reject_unverified_recipient">reject_unverified_recipient</a> access
|
||||
restrictions. The status of verification probes is main-
|
||||
Postfix version 2.1 introduces sender and recipient
|
||||
address verification. This feature is implemented by
|
||||
sending probe email messages that are not actually deliv-
|
||||
ered. This feature is requested via the reject_unveri-
|
||||
fied_sender and <a href="postconf.5.html#reject_unverified_recipient">reject_unverified_recipient</a> access
|
||||
restrictions. The status of verification probes is main-
|
||||
tained by the <a href="verify.8.html"><b>verify</b>(8)</a> server. See the file <a href="ADDRESS_VERIFICATION_README.html">ADDRESS_VER</a>-
|
||||
<a href="ADDRESS_VERIFICATION_README.html">IFICATION_README</a> for information about how to configure
|
||||
<a href="ADDRESS_VERIFICATION_README.html">IFICATION_README</a> for information about how to configure
|
||||
and operate the Postfix sender/recipient address verifica-
|
||||
tion service.
|
||||
|
||||
<b><a href="postconf.5.html#address_verify_poll_count">address_verify_poll_count</a> (normal: 3, overload: 1)</b>
|
||||
How many times to query the <a href="verify.8.html"><b>verify</b>(8)</a> service for
|
||||
the completion of an address verification request
|
||||
How many times to query the <a href="verify.8.html"><b>verify</b>(8)</a> service for
|
||||
the completion of an address verification request
|
||||
in progress.
|
||||
|
||||
<b><a href="postconf.5.html#address_verify_poll_delay">address_verify_poll_delay</a> (3s)</b>
|
||||
The delay between queries for the completion of an
|
||||
The delay between queries for the completion of an
|
||||
address verification request in progress.
|
||||
|
||||
<b><a href="postconf.5.html#address_verify_sender">address_verify_sender</a> ($<a href="postconf.5.html#double_bounce_sender">double_bounce_sender</a>)</b>
|
||||
The sender address to use in address verification
|
||||
The sender address to use in address verification
|
||||
probes; prior to Postfix 2.5 the default was "post-
|
||||
master".
|
||||
|
||||
<b><a href="postconf.5.html#unverified_sender_reject_code">unverified_sender_reject_code</a> (450)</b>
|
||||
The numerical Postfix SMTP server response code
|
||||
when a recipient address is rejected by the
|
||||
The numerical Postfix SMTP server response code
|
||||
when a recipient address is rejected by the
|
||||
<a href="postconf.5.html#reject_unverified_sender">reject_unverified_sender</a> restriction.
|
||||
|
||||
<b><a href="postconf.5.html#unverified_recipient_reject_code">unverified_recipient_reject_code</a> (450)</b>
|
||||
The numerical Postfix SMTP server response when a
|
||||
The numerical Postfix SMTP server response when a
|
||||
recipient address is rejected by the reject_unveri-
|
||||
fied_recipient restriction.
|
||||
|
||||
Available in Postfix version 2.6 and later:
|
||||
|
||||
<b><a href="postconf.5.html#unverified_sender_defer_code">unverified_sender_defer_code</a> (450)</b>
|
||||
The numerical Postfix SMTP server response code
|
||||
when a sender address probe fails due to a tempo-
|
||||
The numerical Postfix SMTP server response code
|
||||
when a sender address probe fails due to a tempo-
|
||||
rary error condition.
|
||||
|
||||
<b><a href="postconf.5.html#unverified_recipient_defer_code">unverified_recipient_defer_code</a> (450)</b>
|
||||
The numerical Postfix SMTP server response when a
|
||||
recipient address probe fails due to a temporary
|
||||
The numerical Postfix SMTP server response when a
|
||||
recipient address probe fails due to a temporary
|
||||
error condition.
|
||||
|
||||
<b><a href="postconf.5.html#unverified_sender_reject_reason">unverified_sender_reject_reason</a> (empty)</b>
|
||||
|
@ -1077,7 +1104,7 @@ SMTPD(8) SMTPD(8)
|
|||
<b><a href="postconf.5.html#unverified_sender_tempfail_action">unverified_sender_tempfail_action</a> ($<a href="postconf.5.html#reject_tempfail_action">reject_temp</a>-</b>
|
||||
<b><a href="postconf.5.html#reject_tempfail_action">fail_action</a>)</b>
|
||||
The Postfix SMTP server's action when <a href="postconf.5.html#reject_unverified_sender">reject_unver</a>-
|
||||
<a href="postconf.5.html#reject_unverified_sender">ified_sender</a> fails due to a temporary error condi-
|
||||
<a href="postconf.5.html#reject_unverified_sender">ified_sender</a> fails due to a temporary error condi-
|
||||
tion.
|
||||
|
||||
<b><a href="postconf.5.html#unverified_recipient_tempfail_action">unverified_recipient_tempfail_action</a> ($<a href="postconf.5.html#reject_tempfail_action">reject_temp</a>-</b>
|
||||
|
@ -1094,7 +1121,7 @@ SMTPD(8) SMTPD(8)
|
|||
addresses.
|
||||
|
||||
<b>ACCESS CONTROL RESPONSES</b>
|
||||
The following parameters control numerical SMTP reply
|
||||
The following parameters control numerical SMTP reply
|
||||
codes and/or text responses.
|
||||
|
||||
<b><a href="postconf.5.html#access_map_reject_code">access_map_reject_code</a> (554)</b>
|
||||
|
@ -1102,18 +1129,18 @@ SMTPD(8) SMTPD(8)
|
|||
an <a href="access.5.html"><b>access</b>(5)</a> map "reject" action.
|
||||
|
||||
<b><a href="postconf.5.html#defer_code">defer_code</a> (450)</b>
|
||||
The numerical Postfix SMTP server response code
|
||||
when a remote SMTP client request is rejected by
|
||||
The numerical Postfix SMTP server response code
|
||||
when a remote SMTP client request is rejected by
|
||||
the "defer" restriction.
|
||||
|
||||
<b><a href="postconf.5.html#invalid_hostname_reject_code">invalid_hostname_reject_code</a> (501)</b>
|
||||
The numerical Postfix SMTP server response code
|
||||
when the client HELO or EHLO command parameter is
|
||||
rejected by the <a href="postconf.5.html#reject_invalid_helo_hostname">reject_invalid_helo_hostname</a>
|
||||
The numerical Postfix SMTP server response code
|
||||
when the client HELO or EHLO command parameter is
|
||||
rejected by the <a href="postconf.5.html#reject_invalid_helo_hostname">reject_invalid_helo_hostname</a>
|
||||
restriction.
|
||||
|
||||
<b><a href="postconf.5.html#maps_rbl_reject_code">maps_rbl_reject_code</a> (554)</b>
|
||||
The numerical Postfix SMTP server response code
|
||||
The numerical Postfix SMTP server response code
|
||||
when a remote SMTP client request is blocked by the
|
||||
<a href="postconf.5.html#reject_rbl_client">reject_rbl_client</a>, <a href="postconf.5.html#reject_rhsbl_client">reject_rhsbl_client</a>,
|
||||
<a href="postconf.5.html#reject_rhsbl_reverse_client">reject_rhsbl_reverse_client</a>, <a href="postconf.5.html#reject_rhsbl_sender">reject_rhsbl_sender</a> or
|
||||
|
@ -1121,53 +1148,53 @@ SMTPD(8) SMTPD(8)
|
|||
|
||||
<b><a href="postconf.5.html#non_fqdn_reject_code">non_fqdn_reject_code</a> (504)</b>
|
||||
The numerical Postfix SMTP server reply code when a
|
||||
client request is rejected by the
|
||||
client request is rejected by the
|
||||
<a href="postconf.5.html#reject_non_fqdn_helo_hostname">reject_non_fqdn_helo_hostname</a>,
|
||||
<a href="postconf.5.html#reject_non_fqdn_sender">reject_non_fqdn_sender</a> or <a href="postconf.5.html#reject_non_fqdn_recipient">reject_non_fqdn_recipient</a>
|
||||
restriction.
|
||||
|
||||
<b><a href="postconf.5.html#plaintext_reject_code">plaintext_reject_code</a> (450)</b>
|
||||
The numerical Postfix SMTP server response code
|
||||
when a request is rejected by the <b>reject_plain-</b>
|
||||
The numerical Postfix SMTP server response code
|
||||
when a request is rejected by the <b>reject_plain-</b>
|
||||
<b>text_session</b> restriction.
|
||||
|
||||
<b><a href="postconf.5.html#reject_code">reject_code</a> (554)</b>
|
||||
The numerical Postfix SMTP server response code
|
||||
when a remote SMTP client request is rejected by
|
||||
The numerical Postfix SMTP server response code
|
||||
when a remote SMTP client request is rejected by
|
||||
the "reject" restriction.
|
||||
|
||||
<b><a href="postconf.5.html#relay_domains_reject_code">relay_domains_reject_code</a> (554)</b>
|
||||
The numerical Postfix SMTP server response code
|
||||
when a client request is rejected by the
|
||||
The numerical Postfix SMTP server response code
|
||||
when a client request is rejected by the
|
||||
<a href="postconf.5.html#reject_unauth_destination">reject_unauth_destination</a> recipient restriction.
|
||||
|
||||
<b><a href="postconf.5.html#unknown_address_reject_code">unknown_address_reject_code</a> (450)</b>
|
||||
The numerical Postfix SMTP server response code
|
||||
when a sender or recipient address is rejected by
|
||||
The numerical Postfix SMTP server response code
|
||||
when a sender or recipient address is rejected by
|
||||
the <a href="postconf.5.html#reject_unknown_sender_domain">reject_unknown_sender_domain</a> or
|
||||
<a href="postconf.5.html#reject_unknown_recipient_domain">reject_unknown_recipient_domain</a> restriction.
|
||||
|
||||
<b><a href="postconf.5.html#unknown_client_reject_code">unknown_client_reject_code</a> (450)</b>
|
||||
The numerical Postfix SMTP server response code
|
||||
when a client without valid address <=> name map-
|
||||
The numerical Postfix SMTP server response code
|
||||
when a client without valid address <=> name map-
|
||||
ping is rejected by the reject_unknown_client_host-
|
||||
name restriction.
|
||||
|
||||
<b><a href="postconf.5.html#unknown_hostname_reject_code">unknown_hostname_reject_code</a> (450)</b>
|
||||
The numerical Postfix SMTP server response code
|
||||
when the hostname specified with the HELO or EHLO
|
||||
command is rejected by the
|
||||
The numerical Postfix SMTP server response code
|
||||
when the hostname specified with the HELO or EHLO
|
||||
command is rejected by the
|
||||
<a href="postconf.5.html#reject_unknown_helo_hostname">reject_unknown_helo_hostname</a> restriction.
|
||||
|
||||
Available in Postfix version 2.0 and later:
|
||||
|
||||
<b><a href="postconf.5.html#default_rbl_reply">default_rbl_reply</a> (see 'postconf -d' output)</b>
|
||||
The default Postfix SMTP server response template
|
||||
for a request that is rejected by an RBL-based
|
||||
The default Postfix SMTP server response template
|
||||
for a request that is rejected by an RBL-based
|
||||
restriction.
|
||||
|
||||
<b><a href="postconf.5.html#multi_recipient_bounce_reject_code">multi_recipient_bounce_reject_code</a> (550)</b>
|
||||
The numerical Postfix SMTP server response code
|
||||
The numerical Postfix SMTP server response code
|
||||
when a remote SMTP client request is blocked by the
|
||||
<a href="postconf.5.html#reject_multi_recipient_bounce">reject_multi_recipient_bounce</a> restriction.
|
||||
|
||||
|
@ -1178,38 +1205,38 @@ SMTPD(8) SMTPD(8)
|
|||
|
||||
<b><a href="postconf.5.html#access_map_defer_code">access_map_defer_code</a> (450)</b>
|
||||
The numerical Postfix SMTP server response code for
|
||||
an <a href="access.5.html"><b>access</b>(5)</a> map "defer" action, including
|
||||
an <a href="access.5.html"><b>access</b>(5)</a> map "defer" action, including
|
||||
"<a href="postconf.5.html#defer_if_permit">defer_if_permit</a>" or "<a href="postconf.5.html#defer_if_reject">defer_if_reject</a>".
|
||||
|
||||
<b><a href="postconf.5.html#reject_tempfail_action">reject_tempfail_action</a> (<a href="postconf.5.html#defer_if_permit">defer_if_permit</a>)</b>
|
||||
The Postfix SMTP server's action when a reject-type
|
||||
restriction fails due to a temporary error condi-
|
||||
restriction fails due to a temporary error condi-
|
||||
tion.
|
||||
|
||||
<b><a href="postconf.5.html#unknown_helo_hostname_tempfail_action">unknown_helo_hostname_tempfail_action</a> ($<a href="postconf.5.html#reject_tempfail_action">reject_temp</a>-</b>
|
||||
<b><a href="postconf.5.html#reject_tempfail_action">fail_action</a>)</b>
|
||||
The Postfix SMTP server's action when
|
||||
The Postfix SMTP server's action when
|
||||
<a href="postconf.5.html#reject_unknown_helo_hostname">reject_unknown_helo_hostname</a> fails due to an tempo-
|
||||
rary error condition.
|
||||
|
||||
<b><a href="postconf.5.html#unknown_address_tempfail_action">unknown_address_tempfail_action</a> ($<a href="postconf.5.html#reject_tempfail_action">reject_tempfail_action</a>)</b>
|
||||
The Postfix SMTP server's action when
|
||||
The Postfix SMTP server's action when
|
||||
<a href="postconf.5.html#reject_unknown_sender_domain">reject_unknown_sender_domain</a> or
|
||||
<a href="postconf.5.html#reject_unknown_recipient_domain">reject_unknown_recipient_domain</a> fail due to a tem-
|
||||
<a href="postconf.5.html#reject_unknown_recipient_domain">reject_unknown_recipient_domain</a> fail due to a tem-
|
||||
porary error condition.
|
||||
|
||||
<b>MISCELLANEOUS CONTROLS</b>
|
||||
<b><a href="postconf.5.html#config_directory">config_directory</a> (see 'postconf -d' output)</b>
|
||||
The default location of the Postfix <a href="postconf.5.html">main.cf</a> and
|
||||
The default location of the Postfix <a href="postconf.5.html">main.cf</a> and
|
||||
<a href="master.5.html">master.cf</a> configuration files.
|
||||
|
||||
<b><a href="postconf.5.html#daemon_timeout">daemon_timeout</a> (18000s)</b>
|
||||
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.
|
||||
|
||||
<b><a href="postconf.5.html#command_directory">command_directory</a> (see 'postconf -d' output)</b>
|
||||
The location of all postfix administrative com-
|
||||
The location of all postfix administrative com-
|
||||
mands.
|
||||
|
||||
<b><a href="postconf.5.html#double_bounce_sender">double_bounce_sender</a> (double-bounce)</b>
|
||||
|
@ -1230,13 +1257,13 @@ SMTPD(8) SMTPD(8)
|
|||
and most Postfix daemon processes.
|
||||
|
||||
<b><a href="postconf.5.html#max_idle">max_idle</a> (100s)</b>
|
||||
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.
|
||||
|
||||
<b><a href="postconf.5.html#max_use">max_use</a> (100)</b>
|
||||
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.
|
||||
|
||||
<b><a href="postconf.5.html#myhostname">myhostname</a> (see 'postconf -d' output)</b>
|
||||
|
@ -1248,19 +1275,19 @@ SMTPD(8) SMTPD(8)
|
|||
|
||||
<b><a href="postconf.5.html#myorigin">myorigin</a> ($<a href="postconf.5.html#myhostname">myhostname</a>)</b>
|
||||
The domain name that locally-posted mail appears to
|
||||
come from, and that locally posted mail is deliv-
|
||||
come from, and that locally posted mail is deliv-
|
||||
ered to.
|
||||
|
||||
<b><a href="postconf.5.html#process_id">process_id</a> (read-only)</b>
|
||||
The process ID of a Postfix command or daemon
|
||||
The process ID of a Postfix command or daemon
|
||||
process.
|
||||
|
||||
<b><a href="postconf.5.html#process_name">process_name</a> (read-only)</b>
|
||||
The process name of a Postfix command or daemon
|
||||
The process name of a Postfix command or daemon
|
||||
process.
|
||||
|
||||
<b><a href="postconf.5.html#queue_directory">queue_directory</a> (see 'postconf -d' output)</b>
|
||||
The location of the Postfix top-level queue direc-
|
||||
The location of the Postfix top-level queue direc-
|
||||
tory.
|
||||
|
||||
<b><a href="postconf.5.html#recipient_delimiter">recipient_delimiter</a> (empty)</b>
|
||||
|
@ -1268,28 +1295,28 @@ SMTPD(8) SMTPD(8)
|
|||
sions (user+foo).
|
||||
|
||||
<b><a href="postconf.5.html#smtpd_banner">smtpd_banner</a> ($<a href="postconf.5.html#myhostname">myhostname</a> ESMTP $<a href="postconf.5.html#mail_name">mail_name</a>)</b>
|
||||
The text that follows the 220 status code in the
|
||||
The text that follows the 220 status code in the
|
||||
SMTP greeting banner.
|
||||
|
||||
<b><a href="postconf.5.html#syslog_facility">syslog_facility</a> (mail)</b>
|
||||
The syslog facility of Postfix logging.
|
||||
|
||||
<b><a href="postconf.5.html#syslog_name">syslog_name</a> (see 'postconf -d' output)</b>
|
||||
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".
|
||||
|
||||
Available in Postfix version 2.2 and later:
|
||||
|
||||
<b><a href="postconf.5.html#smtpd_forbidden_commands">smtpd_forbidden_commands</a> (CONNECT, GET, POST)</b>
|
||||
List of commands that cause the Postfix SMTP server
|
||||
to immediately terminate the session with a 221
|
||||
to immediately terminate the session with a 221
|
||||
code.
|
||||
|
||||
Available in Postfix version 2.5 and later:
|
||||
|
||||
<b><a href="postconf.5.html#smtpd_client_port_logging">smtpd_client_port_logging</a> (no)</b>
|
||||
Enable logging of the remote SMTP client port in
|
||||
Enable logging of the remote SMTP client port in
|
||||
addition to the hostname and IP address.
|
||||
|
||||
<b>SEE ALSO</b>
|
||||
|
@ -1319,7 +1346,7 @@ SMTPD(8) SMTPD(8)
|
|||
<a href="XFORWARD_README.html">XFORWARD_README</a>, Postfix XFORWARD extension
|
||||
|
||||
<b>LICENSE</b>
|
||||
The Secure Mailer license must be distributed with this
|
||||
The Secure Mailer license must be distributed with this
|
||||
software.
|
||||
|
||||
<b>AUTHOR(S)</b>
|
||||
|
|
|
@ -15,23 +15,25 @@ TLSPROXY(8) TLSPROXY(8)
|
|||
<b>DESCRIPTION</b>
|
||||
The <a href="tlsproxy.8.html"><b>tlsproxy</b>(8)</a> server implements a server-side TLS proxy.
|
||||
It is used by <a href="postscreen.8.html"><b>postscreen</b>(8)</a> to talk SMTP-over-TLS with
|
||||
remote SMTP clients whose whitelist status has expired,
|
||||
but it should also work for non-SMTP protocols.
|
||||
remote SMTP clients that are not whitelisted (including
|
||||
clients whose whitelist status has expired), but it should
|
||||
also work for non-SMTP protocols.
|
||||
|
||||
Although one <a href="tlsproxy.8.html"><b>tlsproxy</b>(8)</a> process can serve multiple ses-
|
||||
sions at the same time, it is a good idea to allow the
|
||||
number of processes to increase with load, so that the
|
||||
Although one <a href="tlsproxy.8.html"><b>tlsproxy</b>(8)</a> process can serve multiple ses-
|
||||
sions at the same time, it is a good idea to allow the
|
||||
number of processes to increase with load, so that the
|
||||
service remains responsive.
|
||||
|
||||
<b>PROTOCOL EXAMPLE</b>
|
||||
The example below concerns <a href="postscreen.8.html"><b>postscreen</b>(8)</a>. However, the
|
||||
<a href="tlsproxy.8.html"><b>tlsproxy</b>(8)</a> server is agnostic of the application proto-
|
||||
col, and the example is easily adapted to other applica-
|
||||
The example below concerns <a href="postscreen.8.html"><b>postscreen</b>(8)</a>. However, the
|
||||
<a href="tlsproxy.8.html"><b>tlsproxy</b>(8)</a> server is agnostic of the application proto-
|
||||
col, and the example is easily adapted to other applica-
|
||||
tions.
|
||||
|
||||
The <a href="postscreen.8.html"><b>postscreen</b>(8)</a> server sends the remote SMTP client end-
|
||||
point string, the requested role (server), and the
|
||||
requested timeout to <a href="tlsproxy.8.html"><b>tlsproxy</b>(8)</a>. <a href="postscreen.8.html"><b>postscreen</b>(8)</a> then
|
||||
After receiving a valid remote SMTP client STARTTLS com-
|
||||
mand, the <a href="postscreen.8.html"><b>postscreen</b>(8)</a> server sends the remote SMTP
|
||||
client endpoint string, the requested role (server), and
|
||||
the requested timeout to <a href="tlsproxy.8.html"><b>tlsproxy</b>(8)</a>. <a href="postscreen.8.html"><b>postscreen</b>(8)</a> then
|
||||
receives a "TLS available" indication from <a href="tlsproxy.8.html"><b>tlsproxy</b>(8)</a>.
|
||||
If the TLS service is available, <a href="postscreen.8.html"><b>postscreen</b>(8)</a> sends the
|
||||
remote SMTP client file descriptor to <a href="tlsproxy.8.html"><b>tlsproxy</b>(8)</a>, and
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
.\" $NetBSD: postconf.1,v 1.1.1.5 2013/01/02 18:58:44 tron Exp $
|
||||
.\" $NetBSD: postconf.1,v 1.1.1.6 2013/09/25 19:06:24 tron Exp $
|
||||
.\"
|
||||
.TH POSTCONF 1
|
||||
.ad
|
||||
|
@ -13,18 +13,18 @@ Postfix configuration utility
|
|||
.fi
|
||||
\fBManaging main.cf:\fR
|
||||
|
||||
\fBpostconf\fR [\fB-dfhnv\fR] [\fB-c \fIconfig_dir\fR]
|
||||
\fBpostconf\fR [\fB-dfhnovx\fR] [\fB-c \fIconfig_dir\fR]
|
||||
[\fB-C \fIclass,...\fR] [\fIparameter ...\fR]
|
||||
|
||||
\fBpostconf\fR [\fB-ev\fR] [\fB-c \fIconfig_dir\fR]
|
||||
[\fIparameter=value ...\fR]
|
||||
|
||||
\fBpostconf\fR [\fB-#v\fR] [\fB-c \fIconfig_dir\fR]
|
||||
\fBpostconf\fR [\fB-#vX\fR] [\fB-c \fIconfig_dir\fR]
|
||||
[\fIparameter ...\fR]
|
||||
|
||||
\fBManaging master.cf:\fR
|
||||
|
||||
\fBpostconf\fR [\fB-fMv\fR] [\fB-c \fIconfig_dir\fR]
|
||||
\fBpostconf\fR [\fB-fMovx\fR] [\fB-c \fIconfig_dir\fR]
|
||||
[\fIservice ...\fR]
|
||||
|
||||
\fBManaging bounce message templates:\fR
|
||||
|
@ -116,7 +116,7 @@ Specify \fB-df\fR to fold long lines for human readability
|
|||
(Postfix 2.9 and later).
|
||||
.IP \fB-e\fR
|
||||
Edit the \fBmain.cf\fR configuration file, and update
|
||||
parameter settings with the "\fIname\fR=\fIvalue\fR" pairs
|
||||
parameter settings with the "\fIname=value\fR" pairs
|
||||
on the \fBpostconf\fR(1) command line. The file is copied
|
||||
to a temporary file then renamed into place.
|
||||
Specify quotes to protect special characters and whitespace
|
||||
|
@ -146,7 +146,8 @@ A kernel-based advisory locking method for local and remote files.
|
|||
An application-level locking method. An application locks a file
|
||||
named \fIfilename\fR by creating a file named \fIfilename\fB.lock\fR.
|
||||
The application is expected to remove its own lock file, as well as
|
||||
stale lock files that were left behind after abnormal termination.
|
||||
stale lock files that were left behind after abnormal program
|
||||
termination.
|
||||
.RE
|
||||
.IP \fB-m\fR
|
||||
List the names of all supported lookup table types. In Postfix
|
||||
|
@ -209,6 +210,14 @@ described in \fBregexp_table\fR(5).
|
|||
.IP \fBsdbm\fR
|
||||
An indexed file type based on hashing.
|
||||
This is available on systems with support for SDBM databases.
|
||||
.IP "\fBsocketmap\fR (read-only)"
|
||||
Query a Sendmail-style socketmap server. The name of the
|
||||
table specifies
|
||||
\fBinet\fR:\fIhost\fR:\fIport\fR:\fIsocketmap-name\fR for
|
||||
a TCP-based server, or
|
||||
\fBunix\fR:\fIpathname\fR:\fIsocketmap-name\fR for a
|
||||
UNIX-domain server. In both cases, \fIsocketmap-name\fR is
|
||||
the name of the socketmap.
|
||||
.IP "\fBsqlite\fR (read-only)"
|
||||
Perform lookups from SQLite database files. This is described
|
||||
in \fBsqlite_table\fR(5).
|
||||
|
@ -253,10 +262,14 @@ or with a \fIservice-name.service-type\fR pair, where
|
|||
|
||||
This feature is available with Postfix 2.9 and later.
|
||||
.IP \fB-n\fR
|
||||
Print \fBmain.cf\fR parameter settings that are explicitly
|
||||
specified in \fBmain.cf\fR.
|
||||
Show only configuration parameters that have explicit
|
||||
\fIname=value\fR settings in \fBmain.cf\fR.
|
||||
Specify \fB-nf\fR to fold long lines for human readability
|
||||
(Postfix 2.9 and later).
|
||||
.IP "\fB-o \fIname=value\fR"
|
||||
Override \fBmain.cf\fR parameter settings.
|
||||
|
||||
This feature is available with Postfix 2.10 and later.
|
||||
.IP "\fB-t\fR [\fItemplate_file\fR]"
|
||||
Display the templates for text that appears at the beginning
|
||||
of delivery status notification (DSN) messages, without
|
||||
|
@ -275,13 +288,28 @@ This feature is available with Postfix 2.3 and later.
|
|||
.IP \fB-v\fR
|
||||
Enable verbose logging for debugging purposes. Multiple \fB-v\fR
|
||||
options make the software increasingly verbose.
|
||||
.IP \fB-x\fR
|
||||
Expand \fI$name\fR in \fBmain.cf\fR or \fBmaster.cf\fR
|
||||
parameter values. The expansion is recursive.
|
||||
|
||||
This feature is available with Postfix 2.10 and later.
|
||||
.IP \fB-X\fR
|
||||
Edit the \fBmain.cf\fR configuration file, and remove
|
||||
the parameters named on the \fBpostconf\fR(1) command line.
|
||||
The file is copied to a temporary file then renamed into
|
||||
place.
|
||||
Specify a list of parameter names, not "\fIname=value\fR"
|
||||
pairs. There is no \fBpostconf\fR(1) command to perform
|
||||
the reverse operation.
|
||||
|
||||
This feature is available with Postfix 2.10 and later.
|
||||
.IP \fB-#\fR
|
||||
Edit the \fBmain.cf\fR configuration file, and comment out
|
||||
the parameters given on the \fBpostconf\fR(1) command line,
|
||||
the parameters named on the \fBpostconf\fR(1) command line,
|
||||
so that those parameters revert to their default values.
|
||||
The file is copied to a temporary file then renamed into
|
||||
place.
|
||||
Specify a list of parameter names, not \fIname\fR=\fIvalue\fR
|
||||
Specify a list of parameter names, not "\fIname=value\fR"
|
||||
pairs. There is no \fBpostconf\fR(1) command to perform
|
||||
the reverse operation.
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
.\" $NetBSD: postqueue.1,v 1.1.1.2 2010/06/17 18:06:24 tron Exp $
|
||||
.\" $NetBSD: postqueue.1,v 1.1.1.3 2013/09/25 19:06:24 tron Exp $
|
||||
.\"
|
||||
.TH POSTQUEUE 1
|
||||
.ad
|
||||
|
@ -68,7 +68,7 @@ attempt will be made until the mail is taken off hold.
|
|||
.RE
|
||||
.IP "\fB-s \fIsite\fR"
|
||||
Schedule immediate delivery of all mail that is queued for the named
|
||||
\fIsite\fR. A numerical site must be specified as a valid RFC 2821
|
||||
\fIsite\fR. A numerical site must be specified as a valid RFC 5321
|
||||
address literal enclosed in [], just like in email addresses.
|
||||
The site must be eligible for the "fast flush" service.
|
||||
See \fBflush\fR(8) for more information about the "fast flush"
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
.\" $NetBSD: sendmail.1,v 1.1.1.2 2013/01/02 18:58:44 tron Exp $
|
||||
.\" $NetBSD: sendmail.1,v 1.1.1.3 2013/09/25 19:06:24 tron Exp $
|
||||
.\"
|
||||
.TH SENDMAIL 1
|
||||
.ad
|
||||
|
@ -84,6 +84,11 @@ Postfix has no persistent host status database.
|
|||
.IP \fB-bi\fR
|
||||
Initialize alias database. See the \fBnewaliases\fR
|
||||
command above.
|
||||
.IP \fB-bl\fR
|
||||
Go into daemon mode. To accept only local connections as
|
||||
with Sendmail\'s \fB-bl\fR option, specify "\fBinet_interfaces
|
||||
= loopback\fR" in the Postfix \fBmain.cf\fR configuration
|
||||
file.
|
||||
.IP \fB-bm\fR
|
||||
Read mail from standard input and arrange for delivery.
|
||||
This is the default mode of operation.
|
||||
|
@ -158,7 +163,8 @@ Non-default alias database. Specify \fIpathname\fR or
|
|||
\fItype\fR:\fIpathname\fR. See \fBpostalias\fR(1) for
|
||||
details.
|
||||
.IP "\fB-O \fIoption=value\fR (ignored)"
|
||||
Backwards compatibility.
|
||||
Set the named \fIoption\fR to \fIvalue\fR. Use the equivalent
|
||||
configuration parameter in \fBmain.cf\fR instead.
|
||||
.IP "\fB-o7\fR (ignored)"
|
||||
.IP "\fB-o8\fR (ignored)"
|
||||
To send 8-bit or binary content, use an appropriate MIME encapsulation
|
||||
|
@ -175,9 +181,16 @@ configuration parameter in \fBmain.cf\fR instead.
|
|||
Set the envelope sender address. This is the address where
|
||||
delivery problems are sent to. With Postfix versions before 2.1, the
|
||||
\fBErrors-To:\fR message header overrides the error return address.
|
||||
.IP "\fB-R \fIreturn_limit\fR (ignored)"
|
||||
Limit the size of bounced mail. Use the \fBbounce_size_limit\fR
|
||||
configuration parameter instead.
|
||||
.IP "\fB-R \fIreturn\fR"
|
||||
Delivery status notification control. Specify "hdrs" to
|
||||
return only the header when a message bounces, "full" to
|
||||
return a full copy (the default behavior).
|
||||
|
||||
The \fB-R\fR option specifies an upper bound; Postfix will
|
||||
return only the header, when a full copy would exceed the
|
||||
bounce_size_limit setting.
|
||||
|
||||
This option is ignored before Postfix version 2.10.
|
||||
.IP \fB-q\fR
|
||||
Attempt to deliver all queued mail. This is implemented by
|
||||
executing the \fBpostqueue\fR(1) command.
|
||||
|
@ -375,8 +388,8 @@ The directory with Postfix support programs and daemon programs.
|
|||
The default database type for use in \fBnewaliases\fR(1), \fBpostalias\fR(1)
|
||||
and \fBpostmap\fR(1) commands.
|
||||
.IP "\fBdelay_warning_time (0h)\fR"
|
||||
The time after which the sender receives the message headers of
|
||||
mail that is still queued.
|
||||
The time after which the sender receives a copy of the message
|
||||
headers of mail that is still queued.
|
||||
.IP "\fBenable_errors_to (no)\fR"
|
||||
Report mail delivery errors to the address specified with the
|
||||
non-standard Errors-To: message header, instead of the envelope
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
.\" $NetBSD: aliases.5,v 1.1.1.1 2009/06/23 10:08:33 tron Exp $
|
||||
.\" $NetBSD: aliases.5,v 1.1.1.2 2013/09/25 19:06:24 tron Exp $
|
||||
.\"
|
||||
.TH ALIASES 5
|
||||
.ad
|
||||
|
@ -26,9 +26,13 @@ used for fast lookup by the mail system. Execute the command
|
|||
\fBnewaliases\fR in order to rebuild the indexed file after
|
||||
changing the Postfix alias database.
|
||||
|
||||
The input and output file formats are expected to be compatible
|
||||
with Sendmail version 8, and are expected to be suitable for the
|
||||
use as NIS maps.
|
||||
When the table is provided via other means such as NIS, LDAP
|
||||
or SQL, the same lookups are done as for ordinary indexed files.
|
||||
|
||||
Alternatively, the table can be provided as a regular-expression
|
||||
map where patterns are given as regular expressions. In
|
||||
this case, the lookups are done in a slightly different way
|
||||
as described below under "REGULAR EXPRESSION TABLES".
|
||||
|
||||
Users can control delivery of their own mail by setting
|
||||
up \fB.forward\fR files in their home directory.
|
||||
|
@ -109,6 +113,28 @@ propagated to the result of table lookup.
|
|||
.fi
|
||||
The local(8) delivery agent always folds the search string
|
||||
to lowercase before database lookup.
|
||||
.SH "REGULAR EXPRESSION TABLES"
|
||||
.na
|
||||
.nf
|
||||
.ad
|
||||
.fi
|
||||
This section describes how the table lookups change when the table
|
||||
is given in the form of regular expressions. For a description of
|
||||
regular expression lookup table syntax, see \fBregexp_table\fR(5)
|
||||
or \fBpcre_table\fR(5). NOTE: these formats do not use ":" at the
|
||||
end of a pattern.
|
||||
|
||||
Each regular expression is applied to the entire search
|
||||
string. Thus, a search string \fIuser+foo\fR is not broken
|
||||
up into \fIuser\fR and \fIfoo\fR.
|
||||
|
||||
Regular expressions are applied in the order as specified
|
||||
in the table, until a regular expression is found that
|
||||
matches the search string.
|
||||
|
||||
Lookup results are the same as with indexed file lookups.
|
||||
For security reasons there is no support for \fB$1\fR,
|
||||
\fB$2\fR etc. substring interpolation.
|
||||
.SH "SECURITY"
|
||||
.na
|
||||
.nf
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
.\" $NetBSD: header_checks.5,v 1.1.1.3 2011/03/02 19:31:50 tron Exp $
|
||||
.\" $NetBSD: header_checks.5,v 1.1.1.4 2013/09/25 19:06:24 tron Exp $
|
||||
.\"
|
||||
.TH HEADER_CHECKS 5
|
||||
.ad
|
||||
|
@ -119,8 +119,9 @@ insensitive.
|
|||
This document assumes that header and body_checks rules are specified
|
||||
in the form of Postfix regular expression lookup tables. Usually the
|
||||
best performance is obtained with \fBpcre\fR (Perl Compatible Regular
|
||||
Expression) tables, but the slower \fBregexp\fR (POSIX regular
|
||||
expressions) support is more widely available.
|
||||
Expression) tables. The \fBregexp\fR (POSIX regular
|
||||
expressions) tables are usually slower, but more widely
|
||||
available.
|
||||
Use the command "\fBpostconf -m\fR" to find out what lookup table
|
||||
types your Postfix system supports.
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
.\" $NetBSD: master.5,v 1.1.1.3 2013/01/02 18:58:44 tron Exp $
|
||||
.\" $NetBSD: master.5,v 1.1.1.4 2013/09/25 19:06:25 tron Exp $
|
||||
.\"
|
||||
.TH MASTER 5
|
||||
.ad
|
||||
|
@ -37,17 +37,17 @@ to reload the configuration.
|
|||
.fi
|
||||
The general format of the master.cf file is as follows:
|
||||
.IP \(bu
|
||||
Each logical line defines a single Postfix service.
|
||||
Each service is identified by its name and type as described
|
||||
below. When multiple lines specify the same service name
|
||||
and type, only the last one is remembered. Otherwise, the
|
||||
order of master.cf service definitions does not matter.
|
||||
.IP \(bu
|
||||
Empty lines and whitespace-only lines are ignored, as are
|
||||
lines whose first non-whitespace character is a `#'.
|
||||
.IP \(bu
|
||||
A logical line starts with non-whitespace text. A line that
|
||||
starts with whitespace continues a logical line.
|
||||
.IP \(bu
|
||||
Each logical line defines a single Postfix service.
|
||||
Each service is identified by its name and type as described
|
||||
below. When multiple lines specify the same service name
|
||||
and type, only the last one is remembered. Otherwise, the
|
||||
order of master.cf service definitions does not matter.
|
||||
.PP
|
||||
Each logical line consists of eight fields separated by
|
||||
whitespace. These are described below in the order as they
|
||||
|
@ -189,11 +189,19 @@ parameter value can refer to other parameters as \fI$name\fR
|
|||
etc., just like in main.cf. See \fBpostconf\fR(5) for
|
||||
syntax.
|
||||
.sp
|
||||
NOTE 1: do not specify whitespace around the "=". In parameter
|
||||
values, either avoid whitespace altogether, use commas
|
||||
instead of spaces, or consider overrides like "-o
|
||||
name=$override_parameter" with $override_parameter set in
|
||||
main.cf.
|
||||
NOTE 1: do not specify whitespace around the "=" or in
|
||||
parameter values. To specify a parameter value that contains
|
||||
whitespace, use commas instead of spaces, or specify the
|
||||
value in main.cf. Example:
|
||||
.sp
|
||||
.nf
|
||||
/etc/postfix/master.cf:
|
||||
submission inet .... smtpd
|
||||
-o smtpd_mumble=$submission_mumble
|
||||
.sp
|
||||
/etc/postfix/main.cf
|
||||
submission_mumble = text with whitespace...
|
||||
.fi
|
||||
.sp
|
||||
NOTE 2: Over-zealous use of parameter overrides makes the
|
||||
Postfix configuration hard to understand and maintain. At
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
.\" $NetBSD: memcache_table.5,v 1.1.1.1 2013/01/02 18:58:44 tron Exp $
|
||||
.\" $NetBSD: memcache_table.5,v 1.1.1.2 2013/09/25 19:06:24 tron Exp $
|
||||
.\"
|
||||
.TH MEMCACHE_TABLE 5
|
||||
.ad
|
||||
|
@ -76,21 +76,25 @@ information in the persistent database. Specify a Postfix
|
|||
|
||||
Access to remote proxymap servers is under development.
|
||||
|
||||
NOTE 1: When using memcache with persistent backup as
|
||||
\fBpostscreen\fR(8) or \fBverify\fR(8) cache, disable
|
||||
automatic cache cleanup (*_cache_cleanup_interval = 0) in
|
||||
all Postfix instances except for one instance that will be
|
||||
responsible for cache cleanup.
|
||||
NOTE 1: When sharing a persistent \fBpostscreen\fR(8) or
|
||||
\fBverify\fR(8) cache, disable automatic cache cleanup (set
|
||||
*_cache_cleanup_interval = 0) except with one Postfix
|
||||
instance that will be responsible for cache cleanup.
|
||||
|
||||
NOTE 2: In the case of a proxied backup database, the full
|
||||
backup database
|
||||
name (including the "proxy:" prefix) must be specified in
|
||||
the proxymap server's proxy_read_maps or proxy_write_maps
|
||||
setting (depending on whether the access is read-only or
|
||||
read-write).
|
||||
NOTE 2: When different tables share the same memcache
|
||||
database, each table should use the \fBkey_format\fR feature
|
||||
(see below) to prepend its own unique string to the lookup
|
||||
key. Otherwise, automatic \fBpostscreen\fR(8) or \fBverify\fR(8)
|
||||
cache cleanup may not work.
|
||||
|
||||
NOTE 3: When the backup database is accessed with "proxy:"
|
||||
lookups, the full backup database name (including the
|
||||
"proxy:" prefix) must be specified in the proxymap server's
|
||||
proxy_read_maps or proxy_write_maps setting (depending on
|
||||
whether the access is read-only or read-write).
|
||||
.IP "\fBflags (default: 0)\fR"
|
||||
Optional flags that should be stored along with a memcache
|
||||
update.
|
||||
update. The flags are ignored when looking up information.
|
||||
.IP "\fBttl (default: 3600)\fR"
|
||||
The expiration time in seconds of memcache updates.
|
||||
|
||||
|
@ -115,17 +119,20 @@ Format of the lookup and update keys in memcache requests.
|
|||
By default, these are the same as the lookup and update
|
||||
keys that are given to the Postfix memcache client.
|
||||
|
||||
NOTE: The \fBkey_format\fR feature is not used for \fBbackup\fR
|
||||
NOTE 1: The \fBkey_format\fR feature is not used for \fBbackup\fR
|
||||
database requests.
|
||||
|
||||
When the same memcache database is used to cache information
|
||||
from multiple tables, you can use the \fBkey_format\fR
|
||||
feature to avoid name collisions by prepending a fixed
|
||||
string. Examples:
|
||||
NOTE 2: When different tables share the same memcache
|
||||
database, each table should prepend its own unique string
|
||||
to the lookup key. Otherwise, automatic \fBpostscreen\fR(8)
|
||||
or \fBverify\fR(8) cache cleanup may not work.
|
||||
|
||||
Examples:
|
||||
|
||||
.nf
|
||||
key_format = aliases:%s
|
||||
key_format = access:%s
|
||||
key_format = verify:%s
|
||||
key_format = postscreen:%s
|
||||
.fi
|
||||
|
||||
The \fBkey_format\fR parameter supports the following '%'
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
.\" $NetBSD: cleanup.8,v 1.1.1.3 2013/01/02 18:58:46 tron Exp $
|
||||
.\" $NetBSD: cleanup.8,v 1.1.1.4 2013/09/25 19:06:25 tron Exp $
|
||||
.\"
|
||||
.TH CLEANUP 8
|
||||
.ad
|
||||
|
@ -357,8 +357,8 @@ request before it is terminated by a built-in watchdog timer.
|
|||
The maximal number of digits after the decimal point when logging
|
||||
sub-second delay values.
|
||||
.IP "\fBdelay_warning_time (0h)\fR"
|
||||
The time after which the sender receives the message headers of
|
||||
mail that is still queued.
|
||||
The time after which the sender receives a copy of the message
|
||||
headers of mail that is still queued.
|
||||
.IP "\fBipc_timeout (3600s)\fR"
|
||||
The time limit for sending or receiving information over an internal
|
||||
communication channel.
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
.\" $NetBSD: master.8,v 1.1.1.2 2013/01/02 18:58:46 tron Exp $
|
||||
.\" $NetBSD: master.8,v 1.1.1.3 2013/09/25 19:06:25 tron Exp $
|
||||
.\"
|
||||
.TH MASTER 8
|
||||
.ad
|
||||
|
@ -10,7 +10,7 @@ Postfix master process
|
|||
.SH "SYNOPSIS"
|
||||
.na
|
||||
.nf
|
||||
\fBmaster\fR [\fB-Ddtv\fR] [\fB-c \fIconfig_dir\fR] [\fB-e \fIexit_time\fR]
|
||||
\fBmaster\fR [\fB-Ddtvw\fR] [\fB-c \fIconfig_dir\fR] [\fB-e \fIexit_time\fR]
|
||||
.SH DESCRIPTION
|
||||
.ad
|
||||
.fi
|
||||
|
@ -53,6 +53,14 @@ that the \fBmaster\fR(8) daemon is not running.
|
|||
Enable verbose logging for debugging purposes. This option
|
||||
is passed on to child processes. Multiple \fB-v\fR options
|
||||
make the software increasingly verbose.
|
||||
.IP \fB-w\fR
|
||||
Wait in a dummy foreground process, while the real master
|
||||
daemon initializes in a background process. The dummy
|
||||
foreground process returns a zero exit status only if the
|
||||
master daemon initialization is successful, and if it
|
||||
completes in a reasonable amount of time.
|
||||
.sp
|
||||
This feature is available in Postfix 2.10 and later.
|
||||
.PP
|
||||
Signals:
|
||||
.IP \fBSIGHUP\fR
|
||||
|
@ -73,7 +81,9 @@ processes to finish what they are doing.
|
|||
.SH DIAGNOSTICS
|
||||
.ad
|
||||
.fi
|
||||
Problems are reported to \fBsyslogd\fR(8).
|
||||
Problems are reported to \fBsyslogd\fR(8). The exit status
|
||||
is non-zero in case of problems, including problems while
|
||||
initializing as a master daemon process in the background.
|
||||
.SH "ENVIRONMENT"
|
||||
.na
|
||||
.nf
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
.\" $NetBSD: oqmgr.8,v 1.1.1.3 2011/03/02 19:31:54 tron Exp $
|
||||
.\" $NetBSD: oqmgr.8,v 1.1.1.4 2013/09/25 19:06:25 tron Exp $
|
||||
.\"
|
||||
.TH OQMGR 8
|
||||
.ad
|
||||
|
@ -203,7 +203,7 @@ clogging up the Postfix active queue.
|
|||
The maximal number of messages in the active queue.
|
||||
.IP "\fBqmgr_message_recipient_limit (20000)\fR"
|
||||
The maximal number of recipients held in memory by the Postfix
|
||||
queue manager, and the maximal size of the size of the short-term,
|
||||
queue manager, and the maximal size of the short-term,
|
||||
in-memory "dead" destination status cache.
|
||||
.SH "DELIVERY CONCURRENCY CONTROLS"
|
||||
.na
|
||||
|
@ -285,8 +285,8 @@ undeliverable.
|
|||
Available in Postfix version 2.5 and later:
|
||||
.IP "\fBdefault_destination_rate_delay (0s)\fR"
|
||||
The default amount of delay that is inserted between individual
|
||||
deliveries to the same destination; with per-destination recipient
|
||||
limit > 1, a destination is a domain, otherwise it is a recipient.
|
||||
deliveries to the same destination; the resulting behavior depends
|
||||
on the value of the corresponding per-destination recipient limit.
|
||||
.IP "\fItransport\fB_destination_rate_delay $default_destination_rate_delay
|
||||
Idem, for delivery via the named message \fItransport\fR.
|
||||
.SH "SAFETY CONTROLS"
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
.\" $NetBSD: postscreen.8,v 1.1.1.2 2013/01/02 18:58:46 tron Exp $
|
||||
.\" $NetBSD: postscreen.8,v 1.1.1.3 2013/09/25 19:06:25 tron Exp $
|
||||
.\"
|
||||
.TH POSTSCREEN 8
|
||||
.ad
|
||||
|
@ -14,19 +14,22 @@ Postfix zombie blocker
|
|||
.SH DESCRIPTION
|
||||
.ad
|
||||
.fi
|
||||
The Postfix \fBpostscreen\fR(8) server performs triage on
|
||||
multiple inbound SMTP connections at the same time. While
|
||||
a single \fBpostscreen\fR(8) process keeps spambots away
|
||||
from Postfix SMTP server processes, more Postfix SMTP server
|
||||
processes remain available for legitimate clients.
|
||||
The Postfix \fBpostscreen\fR(8) server provides additional
|
||||
protection against mail server overload. One \fBpostscreen\fR(8)
|
||||
process handles multiple inbound SMTP connections, and decides
|
||||
which clients may talk to a Postfix SMTP server process.
|
||||
By keeping spambots away, \fBpostscreen\fR(8) leaves more
|
||||
SMTP server processes available for legitimate clients, and
|
||||
delays the onset of server overload conditions.
|
||||
|
||||
This program should not be used on SMTP ports that receive
|
||||
mail from end-user clients (MUAs). In a typical deployment,
|
||||
\fBpostscreen\fR(8) is used on the "port 25" service, while
|
||||
MUA clients submit mail via the \fBsubmission\fR service,
|
||||
or via a "port 25" server that provides no MX service (i.e.
|
||||
a dedicated server that provides \fBsubmission\fR service
|
||||
on port 25).
|
||||
\fBpostscreen\fR(8) handles the MX service on TCP port 25,
|
||||
while MUA clients submit mail via the \fBsubmission\fR
|
||||
service on TCP port 587 which requires client authentication.
|
||||
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
|
||||
clients that have passed a number of tests. When an SMTP
|
||||
|
@ -84,8 +87,7 @@ Problems and transactions are logged to \fBsyslogd\fR(8).
|
|||
The \fBpostscreen\fR(8) built-in SMTP protocol engine
|
||||
currently does not announce support for AUTH, XCLIENT or
|
||||
XFORWARD.
|
||||
Support for AUTH may be added in the future.
|
||||
In the mean time, if you need to make these services available
|
||||
If you need to make these services available
|
||||
on port 25, then do not enable the optional "after 220
|
||||
server greeting" tests, and do not use DNSBLs that reject
|
||||
traffic from dial-up and residential networks.
|
||||
|
@ -93,15 +95,16 @@ traffic from dial-up and residential networks.
|
|||
The optional "after 220 server greeting" tests involve
|
||||
\fBpostscreen\fR(8)'s built-in SMTP protocol engine. When
|
||||
these tests succeed, \fBpostscreen\fR(8) adds the client
|
||||
to the temporary whitelist but it cannot not hand off the
|
||||
to the temporary whitelist, but it cannot not hand off the
|
||||
"live" connection to a Postfix SMTP server process in the
|
||||
middle of a session. Instead, \fBpostscreen\fR(8) defers
|
||||
attempts to deliver mail with a 4XX status, and waits for
|
||||
the client to disconnect. The next time a good client
|
||||
connects, it will be allowed to talk to a Postfix SMTP
|
||||
server process to deliver mail. \fBpostscreen\fR(8) mitigates
|
||||
the impact of this limitation by giving such tests a long
|
||||
expiration time.
|
||||
the client to disconnect. When the client connects again,
|
||||
\fBpostscreen\fR(8) will allow the client to talk to a
|
||||
Postfix SMTP server process (provided that the whitelist
|
||||
status has not expired). \fBpostscreen\fR(8) mitigates
|
||||
the impact of this limitation by giving the "after 220
|
||||
server greeting" tests a long expiration time.
|
||||
.SH "CONFIGURATION PARAMETERS"
|
||||
.na
|
||||
.nf
|
||||
|
@ -153,6 +156,18 @@ response.
|
|||
.IP "\fBsoft_bounce (no)\fR"
|
||||
Safety net to keep mail queued that would otherwise be returned to
|
||||
the sender.
|
||||
.SH "BEFORE-POSTSCREEN PROXY AGENT"
|
||||
.na
|
||||
.nf
|
||||
.ad
|
||||
.fi
|
||||
Available in Postfix version 2.10 and later:
|
||||
.IP "\fBpostscreen_upstream_proxy_protocol (empty)\fR"
|
||||
The name of the proxy protocol used by an optional before-postscreen
|
||||
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"
|
||||
.na
|
||||
.nf
|
||||
|
@ -172,14 +187,13 @@ permanently blacklisted with the postscreen_access_list parameter.
|
|||
.nf
|
||||
.ad
|
||||
.fi
|
||||
When a remote SMTP client is not on the permanent access
|
||||
list, \fBpostscreen\fR(8) can implement a number of whitelist
|
||||
tests before it grants the client a temporary whitelist
|
||||
status to talk to a Postfix SMTP server process.
|
||||
|
||||
By listening on both primary and backup MX addresses,
|
||||
\fBpostscreen\fR(8) can deny the temporary whitelist status
|
||||
to clients that connect only to backup MX hosts.
|
||||
When \fBpostscreen\fR(8) is configured to monitor all primary
|
||||
and backup MX addresses, it can refuse to whitelist 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
|
||||
\fBpostscreen\fR(8) cache between primary and backup MTAs,
|
||||
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
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
.\" $NetBSD: proxymap.8,v 1.1.1.2 2013/01/02 18:58:46 tron Exp $
|
||||
.\" $NetBSD: proxymap.8,v 1.1.1.3 2013/09/25 19:06:25 tron Exp $
|
||||
.\"
|
||||
.TH PROXYMAP 8
|
||||
.ad
|
||||
|
@ -119,7 +119,7 @@ However, running the proxymap server chrooted severely limits
|
|||
usability, because it can open only chrooted tables.
|
||||
|
||||
The \fBproxymap\fR(8) server is not a trusted daemon process, and must
|
||||
not be used to look up sensitive information such as user or
|
||||
not be used to look up sensitive information such as UNIX user or
|
||||
group IDs, mailbox file/directory names or external commands.
|
||||
|
||||
In Postfix version 2.2 and later, the proxymap client recognizes
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
.\" $NetBSD: qmgr.8,v 1.1.1.3 2011/03/02 19:31:55 tron Exp $
|
||||
.\" $NetBSD: qmgr.8,v 1.1.1.4 2013/09/25 19:06:25 tron Exp $
|
||||
.\"
|
||||
.TH QMGR 8
|
||||
.ad
|
||||
|
@ -207,7 +207,7 @@ clogging up the Postfix active queue.
|
|||
The maximal number of messages in the active queue.
|
||||
.IP "\fBqmgr_message_recipient_limit (20000)\fR"
|
||||
The maximal number of recipients held in memory by the Postfix
|
||||
queue manager, and the maximal size of the size of the short-term,
|
||||
queue manager, and the maximal size of the short-term,
|
||||
in-memory "dead" destination status cache.
|
||||
.IP "\fBqmgr_message_recipient_minimum (10)\fR"
|
||||
The minimal number of in-memory recipients for any message.
|
||||
|
@ -333,8 +333,8 @@ undeliverable.
|
|||
Available in Postfix version 2.5 and later:
|
||||
.IP "\fBdefault_destination_rate_delay (0s)\fR"
|
||||
The default amount of delay that is inserted between individual
|
||||
deliveries to the same destination; with per-destination recipient
|
||||
limit > 1, a destination is a domain, otherwise it is a recipient.
|
||||
deliveries to the same destination; the resulting behavior depends
|
||||
on the value of the corresponding per-destination recipient limit.
|
||||
.IP "\fItransport\fB_destination_rate_delay $default_destination_rate_delay
|
||||
Idem, for delivery via the named message \fItransport\fR.
|
||||
.SH "SAFETY CONTROLS"
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
.\" $NetBSD: smtp.8,v 1.1.1.5 2013/01/02 18:58:47 tron Exp $
|
||||
.\" $NetBSD: smtp.8,v 1.1.1.6 2013/09/25 19:06:26 tron Exp $
|
||||
.\"
|
||||
.TH SMTP 8
|
||||
.ad
|
||||
|
@ -111,6 +111,7 @@ RFC 3207 (STARTTLS command)
|
|||
RFC 3461 (SMTP DSN Extension)
|
||||
RFC 3463 (Enhanced Status Codes)
|
||||
RFC 4954 (AUTH command)
|
||||
RFC 5321 (SMTP protocol)
|
||||
.SH DIAGNOSTICS
|
||||
.ad
|
||||
.fi
|
||||
|
@ -187,7 +188,7 @@ per-destination workarounds for CISCO PIX firewall bugs.
|
|||
.IP "\fBsmtp_quote_rfc821_envelope (yes)\fR"
|
||||
Quote addresses in Postfix SMTP client MAIL FROM and RCPT TO commands
|
||||
as required
|
||||
by RFC 2821.
|
||||
by RFC 5321.
|
||||
.IP "\fBsmtp_reply_filter (empty)\fR"
|
||||
A mechanism to transform replies from remote SMTP servers one
|
||||
line at a time.
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
.\" $NetBSD: smtpd.8,v 1.1.1.5 2013/01/02 18:58:47 tron Exp $
|
||||
.\" $NetBSD: smtpd.8,v 1.1.1.6 2013/09/25 19:06:26 tron Exp $
|
||||
.\"
|
||||
.TH SMTPD 8
|
||||
.ad
|
||||
|
@ -64,6 +64,7 @@ RFC 3463 (Enhanced status codes)
|
|||
RFC 3848 (ESMTP transmission types)
|
||||
RFC 4409 (Message submission)
|
||||
RFC 4954 (AUTH command)
|
||||
RFC 5321 (SMTP protocol)
|
||||
.SH DIAGNOSTICS
|
||||
.ad
|
||||
.fi
|
||||
|
@ -174,6 +175,18 @@ $mydomain; either don't rewrite message headers from other clients
|
|||
at all, or rewrite message headers and update incomplete addresses
|
||||
with the domain specified in the remote_header_rewrite_domain
|
||||
parameter.
|
||||
.SH "BEFORE-SMTPD PROXY AGENT"
|
||||
.na
|
||||
.nf
|
||||
.ad
|
||||
.fi
|
||||
Available in Postfix version 2.10 and later:
|
||||
.IP "\fBsmtpd_upstream_proxy_protocol (empty)\fR"
|
||||
The name of the proxy protocol used by an optional before-smtpd
|
||||
proxy agent.
|
||||
.IP "\fBsmtpd_upstream_proxy_timeout (5s)\fR"
|
||||
The time limit for the proxy protocol specified with the
|
||||
smtpd_upstream_proxy_protocol parameter.
|
||||
.SH "AFTER QUEUE EXTERNAL CONTENT INSPECTION CONTROLS"
|
||||
.na
|
||||
.nf
|
||||
|
@ -554,6 +567,11 @@ the sender.
|
|||
Available in Postfix version 2.1 and later:
|
||||
.IP "\fBsmtpd_authorized_xclient_hosts (empty)\fR"
|
||||
What remote SMTP clients are allowed to use the XCLIENT feature.
|
||||
.PP
|
||||
Available in Postfix version 2.10 and later:
|
||||
.IP "\fBsmtpd_log_access_permit_actions (empty)\fR"
|
||||
Enable logging of the named "permit" actions in SMTP server
|
||||
access lists.
|
||||
.SH "KNOWN VERSUS UNKNOWN RECIPIENT CONTROLS"
|
||||
.na
|
||||
.nf
|
||||
|
@ -762,24 +780,24 @@ evaluating $smtpd_client_restrictions and $smtpd_helo_restrictions.
|
|||
What Postfix features match subdomains of "domain.tld" automatically,
|
||||
instead of requiring an explicit ".domain.tld" pattern.
|
||||
.IP "\fBsmtpd_client_restrictions (empty)\fR"
|
||||
Optional Postfix SMTP server access restrictions in the context of
|
||||
a remote SMTP client connection request.
|
||||
Optional restrictions that the Postfix SMTP server applies in the
|
||||
context of a client connection request.
|
||||
.IP "\fBsmtpd_helo_required (no)\fR"
|
||||
Require that a remote SMTP client introduces itself with the HELO
|
||||
or EHLO command before sending the MAIL command or other commands
|
||||
that require EHLO negotiation.
|
||||
.IP "\fBsmtpd_helo_restrictions (empty)\fR"
|
||||
Optional restrictions that the Postfix SMTP server applies in the
|
||||
context of the SMTP HELO command.
|
||||
context of a client HELO command.
|
||||
.IP "\fBsmtpd_sender_restrictions (empty)\fR"
|
||||
Optional restrictions that the Postfix SMTP server applies in the
|
||||
context of the MAIL FROM command.
|
||||
.IP "\fBsmtpd_recipient_restrictions (permit_mynetworks, reject_unauth_destination)\fR"
|
||||
The access restrictions that the Postfix SMTP server applies in
|
||||
the context of the RCPT TO command.
|
||||
context of a client MAIL FROM command.
|
||||
.IP "\fBsmtpd_recipient_restrictions (see 'postconf -d' output)\fR"
|
||||
Optional restrictions that the Postfix SMTP server applies in the
|
||||
context of a client RCPT TO command, after smtpd_relay_restrictions.
|
||||
.IP "\fBsmtpd_etrn_restrictions (empty)\fR"
|
||||
Optional SMTP server access restrictions in the context of a client
|
||||
ETRN request.
|
||||
Optional restrictions that the Postfix SMTP server applies in the
|
||||
context of a client ETRN command.
|
||||
.IP "\fBallow_untrusted_routing (no)\fR"
|
||||
Forward mail with sender-specified routing (user[@%!]remote[@%!]site)
|
||||
from untrusted clients to destinations matching $relay_domains.
|
||||
|
@ -814,6 +832,12 @@ Available in Postfix version 2.2 and later:
|
|||
.IP "\fBsmtpd_end_of_data_restrictions (empty)\fR"
|
||||
Optional access restrictions that the Postfix SMTP server
|
||||
applies in the context of the SMTP END-OF-DATA command.
|
||||
.PP
|
||||
Available in Postfix version 2.10 and later:
|
||||
.IP "\fBsmtpd_relay_restrictions (permit_mynetworks, reject_unauth_destination)\fR"
|
||||
Access restrictions for mail relay control that the Postfix
|
||||
SMTP server applies in the context of the RCPT TO command, before
|
||||
smtpd_recipient_restrictions.
|
||||
.SH "SENDER AND RECIPIENT ADDRESS VERIFICATION CONTROLS"
|
||||
.na
|
||||
.nf
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
.\" $NetBSD: tlsproxy.8,v 1.1.1.2 2013/01/02 18:58:47 tron Exp $
|
||||
.\" $NetBSD: tlsproxy.8,v 1.1.1.3 2013/09/25 19:06:26 tron Exp $
|
||||
.\"
|
||||
.TH TLSPROXY 8
|
||||
.ad
|
||||
|
@ -16,7 +16,8 @@ Postfix TLS proxy
|
|||
.fi
|
||||
The \fBtlsproxy\fR(8) server implements a server-side TLS
|
||||
proxy. It is used by \fBpostscreen\fR(8) to talk SMTP-over-TLS
|
||||
with remote SMTP clients whose whitelist status has expired,
|
||||
with remote SMTP clients that are not whitelisted (including
|
||||
clients whose whitelist status has expired),
|
||||
but it should also work for non-SMTP protocols.
|
||||
|
||||
Although one \fBtlsproxy\fR(8) process can serve multiple
|
||||
|
@ -33,7 +34,8 @@ the \fBtlsproxy\fR(8) server is agnostic of the application
|
|||
protocol, and the example is easily adapted to other
|
||||
applications.
|
||||
|
||||
The \fBpostscreen\fR(8) server sends the remote SMTP client
|
||||
After receiving a valid remote SMTP client STARTTLS command,
|
||||
the \fBpostscreen\fR(8) server sends the remote SMTP client
|
||||
endpoint string, the requested role (server), and the
|
||||
requested timeout to \fBtlsproxy\fR(8). \fBpostscreen\fR(8)
|
||||
then receives a "TLS available" indication from \fBtlsproxy\fR(8).
|
||||
|
|
|
@ -60,10 +60,10 @@ while(<>) {
|
|||
$block =~ s/<ul>/\n/g;
|
||||
#$block =~ s/<\/dl>/\n.PP\n/g;
|
||||
#$block =~ s/<\/ul>/\n.PP\n/g;
|
||||
$block =~ s/<\/dl>/\n/g;
|
||||
$block =~ s/<\/ul>/\n/g;
|
||||
$block =~ s/<\/dl>/\n.br\n/g;
|
||||
$block =~ s/<\/ul>/\n.br\n/g;
|
||||
$block =~ s/<dd>\s*/\n/g;
|
||||
$block =~ s/<\/dd>/\n/g;
|
||||
$block =~ s/<\/dd>/\n.br\n/g;
|
||||
$block =~ s/<li>\s*/\n.IP \\(bu\n/g;
|
||||
$block =~ s/<dt>\s*/\n.IP "/g;
|
||||
$block =~ s/\s*<\/dt>/"/g;
|
||||
|
|
|
@ -483,6 +483,7 @@ while (<>) {
|
|||
s;\bsmtp_skip_5xx_greeting\b;<a href="postconf.5.html#smtp_skip_5xx_greeting">$&</a>;g;
|
||||
s;\bsmtp_skip_quit_response\b;<a href="postconf.5.html#smtp_skip_quit_response">$&</a>;g;
|
||||
s;\bsmtp_xforward_timeout\b;<a href="postconf.5.html#smtp_xforward_timeout">$&</a>;g;
|
||||
s;\bsmtpd_log_access_permit_actions\b;<a href="postconf.5.html#smtpd_log_access_permit_actions">$&</a>;g;
|
||||
s;\bsmtpd_autho[-</bB>]*\n*[ <bB>]*rized_verp_clients\b;<a href="postconf.5.html#smtpd_authorized_verp_clients">$&</a>;g;
|
||||
s;\bsmtpd_autho[-</bB>]*\n*[ <bB>]*rized_xclient_hosts\b;<a href="postconf.5.html#smtpd_authorized_xclient_hosts">$&</a>;g;
|
||||
s;\bsmtpd_autho[-</bB>]*\n*[ <bB>]*rized_xforward_hosts\b;<a href="postconf.5.html#smtpd_authorized_xforward_hosts">$&</a>;g;
|
||||
|
@ -524,7 +525,8 @@ while (<>) {
|
|||
s;\bsmtpd_proxy_timeout\b;<a href="postconf.5.html#smtpd_proxy_timeout">$&</a>;g;
|
||||
s;\bsmtpd_proxy_options\b;<a href="postconf.5.html#smtpd_proxy_options">$&</a>;g;
|
||||
s;\bsmtpd_recip[-</bB>]*\n* *[<bB>]*ient_limit\b;<a href="postconf.5.html#smtpd_recipient_limit">$&</a>;g;
|
||||
s;\bsmtpd_recip[-</bB>]*\n* *[<bB>]*ient_restrictions\b;<a href="postconf.5.html#smtpd_recipient_restrictions">$&</a>;g;
|
||||
s;\bsmtpd_recip[-</bB>]*\n* *[<bB>]*ient_restric[-</bB>]*\n* *[<bB>]*tions\b;<a href="postconf.5.html#smtpd_recipient_restrictions">$&</a>;g;
|
||||
s;\bsmtpd_relay_restrictions\b;<a href="postconf.5.html#smtpd_relay_restrictions">$&</a>;g;
|
||||
s;\bsmtpd_reject_unlisted_recip[-</bB>]*\n* *[<bB>]*ient\b;<a href="postconf.5.html#smtpd_reject_unlisted_recipient">$&</a>;g;
|
||||
s;\bsmtpd_reject_unlisted_sender\b;<a href="postconf.5.html#smtpd_reject_unlisted_sender">$&</a>;g;
|
||||
s;\bsmtpd_restriction_classes\b;<a href="postconf.5.html#smtpd_restriction_classes">$&</a>;g;
|
||||
|
@ -672,6 +674,8 @@ while (<>) {
|
|||
s;\bsmtpd_use_tls\b;<a href="postconf.5.html#smtpd_use_tls">$&</a>;g;
|
||||
s;\bsmtpd_reject_footer\b;<a href="postconf.5.html#smtpd_reject_footer">$&</a>;g;
|
||||
s;\bsmtpd_per_record_deadline\b;<a href="postconf.5.html#smtpd_per_record_deadline">$&</a>;g;
|
||||
s;\bsmtpd_upstream_proxy_protocol\b;<a href="postconf.5.html#smtpd_upstream_proxy_protocol">$&</a>;g;
|
||||
s;\bsmtpd_upstream_proxy_timeout\b;<a href="postconf.5.html#smtpd_upstream_proxy_timeout">$&</a>;g;
|
||||
s;\btls_daemon_random_bytes\b;<a href="postconf.5.html#tls_daemon_random_bytes">$&</a>;g;
|
||||
s;\btls_daemon_random_source\b;<a href="postconf.5.html#tls_daemon_random_source">$&</a>;g;
|
||||
s;\btls_ran[-</Bb>]*\n* *[<Bb>]*dom_bytes\b;<a href="postconf.5.html#tls_random_bytes">$&</a>;g;
|
||||
|
@ -837,7 +841,7 @@ while (<>) {
|
|||
s;\bcheck_reverse_client_hostname_ns_access\b;<a href="postconf.5.html#check_reverse_client_hostname_ns_access">$&</a>;g;
|
||||
s;\bpermit_inet_interfaces\b;<a href="postconf.5.html#permit_inet_interfaces">$&</a>;g;
|
||||
s;\bpermit_mynetworks\b;<a href="postconf.5.html#permit_mynetworks">$&</a>;g;
|
||||
s;\bpermit_sasl_authenticated\b;<a href="postconf.5.html#permit_sasl_authenticated">$&</a>;g;
|
||||
s;\bper[-</bB>]*\n* *[<bB>]*mit_sasl_authenticated\b;<a href="postconf.5.html#permit_sasl_authenticated">$&</a>;g;
|
||||
s;\bpermit_tls_clientcerts\b;<a href="postconf.5.html#permit_tls_clientcerts">$&</a>;g;
|
||||
s;\bpermit_tls_all_clientcerts\b;<a href="postconf.5.html#permit_tls_all_clientcerts">$&</a>;g;
|
||||
s;\breject_unknown_client_hostname\b;<a href="postconf.5.html#reject_unknown_client_hostname">$&</a>;g;
|
||||
|
@ -887,6 +891,7 @@ while (<>) {
|
|||
s;\breject_non_fqdn_recip[-</bB>]*\n* *[<bB>]*ient\b;<a href="postconf.5.html#reject_non_fqdn_recipient">$&</a>;g;
|
||||
s;\breject_rhsbl_recip[-</bB>]*\n* *[<bB>]*ient\b;<a href="postconf.5.html#reject_rhsbl_recipient">$&</a>;g;
|
||||
s;\breject_unauth_destination\b;<a href="postconf.5.html#reject_unauth_destination">$&</a>;g;
|
||||
s;\bdefer_unauth_destination\b;<a href="postconf.5.html#defer_unauth_destination">$&</a>;g;
|
||||
s;\breject_unknown_recipi[-</bB>]*\n*[ <bB>]*ent_domain\b;<a href="postconf.5.html#reject_unknown_recipient_domain">$&</a>;g;
|
||||
s;\breject_unlisted_recip[-</bB>]*\n* *[<bB>]*ient\b;<a href="postconf.5.html#reject_unlisted_recipient">$&</a>;g;
|
||||
s;\breject_unver[-</bB>]*\n*[ <bB>]*ified_recip[-</bB>]*\n* *[<bB>]*ient\b;<a href="postconf.5.html#reject_unverified_recipient">$&</a>;g;
|
||||
|
@ -969,6 +974,8 @@ while (<>) {
|
|||
s;\bpostscreen_reject_footer\b;<a href="postconf.5.html#postscreen_reject_footer">$&</a>;g;
|
||||
s;\bpostscreen_command_filter\b;<a href="postconf.5.html#postscreen_command_filter">$&</a>;g;
|
||||
s;\bpostscreen_whitelist_interfaces\b;<a href="postconf.5.html#postscreen_whitelist_interfaces">$&</a>;g;
|
||||
s;\bpostscreen_upstream_proxy_protocol\b;<a href="postconf.5.html#postscreen_upstream_proxy_protocol">$&</a>;g;
|
||||
s;\bpostscreen_upstream_proxy_timeout\b;<a href="postconf.5.html#postscreen_upstream_proxy_timeout">$&</a>;g;
|
||||
|
||||
s;\btlsproxy_watchdog_timeout\b;<a href="postconf.5.html#tlsproxy_watchdog_timeout">$&</a>;g;
|
||||
s;\btlsproxy_enforce_tls\b;<a href="postconf.5.html#tlsproxy_enforce_tls">$&</a>;g;
|
||||
|
|
|
@ -370,6 +370,15 @@ created with the postmap(1) or postalias(1) command. The lookup
|
|||
table name as used in "sdbm:table" is the database file name without
|
||||
the ".dir" or ".pag" suffix. </dd>
|
||||
|
||||
<dt> <b>socketmap</b> (read-only) </dt>
|
||||
|
||||
<dd> Query a Sendmail-style socketmap server. The name of the table
|
||||
specifies <b>inet</b>:<i>host</i>:<i>port</i>:<i>socketmap-name</i>
|
||||
for a TCP-based server, or
|
||||
<b>unix</b>:<i>pathname</i>:<i>socketmap-name</i> for a UNIX-domain
|
||||
server. In both cases <i>socketmap-name</i> is the name of the
|
||||
socketmap. </dd>
|
||||
|
||||
<dt> <b>sqlite</b> (read-only) </dt>
|
||||
|
||||
<dd> Perform SQLite database lookups. Configuration details are given
|
||||
|
|
|
@ -218,24 +218,24 @@ document for an introduction to the Postfix architecture. </p>
|
|||
|
||||
<td colspan="2"> </td>
|
||||
|
||||
<td bgcolor="#f0f0ff" align="center" valign="middle">
|
||||
<a href="QSHAPE_README.html#maildrop_queue"> maildrop <br>
|
||||
queue </a> </td>
|
||||
<td bgcolor="#f0f0ff" align="center" valign="middle">
|
||||
<a href="QSHAPE_README.html#maildrop_queue"> maildrop <br>
|
||||
queue </a> </td>
|
||||
|
||||
<td align="center" valign="middle"> <tt> <- </tt> </td>
|
||||
|
||||
<td bgcolor="#f0f0ff" align="center" valign="middle">Postfix<br>
|
||||
postdrop(1) </td>
|
||||
<td bgcolor="#f0f0ff" align="center" valign="middle">Postfix<br>
|
||||
postdrop(1) </td>
|
||||
|
||||
<td align="center" valign="middle"> <tt> <- </tt> </td>
|
||||
|
||||
<td bgcolor="#f0f0ff" align="center" valign="middle">Postfix<br>
|
||||
sendmail(1) </td>
|
||||
<td bgcolor="#f0f0ff" align="center" valign="middle">Postfix<br>
|
||||
sendmail(1) </td>
|
||||
|
||||
<td align="center" valign="middle"> <tt> <- </tt> </td>
|
||||
|
||||
<td bgcolor="#f0f0ff" align="center" valign="middle">Content
|
||||
<br> filter </td>
|
||||
<td bgcolor="#f0f0ff" align="center" valign="middle">Content
|
||||
<br> filter </td>
|
||||
|
||||
<td colspan="2"> </td>
|
||||
|
||||
|
@ -750,6 +750,8 @@ that injects mail back into Postfix. </p>
|
|||
-o smtpd_helo_restrictions=
|
||||
-o smtpd_client_restrictions=
|
||||
-o smtpd_sender_restrictions=
|
||||
# Postfix 2.10 and later: specify empty smtpd_relay_restrictions.
|
||||
-o smtpd_relay_restrictions=
|
||||
-o smtpd_recipient_restrictions=permit_mynetworks,reject
|
||||
-o mynetworks=127.0.0.0/8
|
||||
-o smtpd_authorized_xforward_hosts=127.0.0.0/8
|
||||
|
|
|
@ -204,12 +204,13 @@ confused with a "<i>type:table</i>" pattern. </b> </p>
|
|||
|
||||
<ul>
|
||||
|
||||
<li> <p> The order of IPv6/IPv4 outgoing connection attempts is
|
||||
not yet configurable. Currently, IPv6 is tried before IPv4. </p>
|
||||
<li> <p> Postfix SMTP clients before version 2.8 try to connect
|
||||
over IPv6 before trying IPv4. With more recent Postfix versions,
|
||||
the order of IPv6 versus IPv4 outgoing connection attempts is
|
||||
configurable with the smtp_address_preference parameter. </p>
|
||||
|
||||
<li> <p> Postfix currently does not support DNSBL (real-time
|
||||
blackhole list) lookups for IPv6 client IP addresses; currently
|
||||
there are no blacklists that cover the IPv6 address space. </p>
|
||||
<li> <p> Postfix versions before 2.6 do not support DNSBL (real-time
|
||||
blackhole list) lookups for IPv6 client IP addresses. </p>
|
||||
|
||||
<li> <p> IPv6 does not have class A, B, C, etc. networks. With IPv6
|
||||
networks, the setting "mynetworks_style = class" has the
|
||||
|
|
|
@ -17,6 +17,34 @@
|
|||
|
||||
<hr>
|
||||
|
||||
<h2> Host lookup issues </h2>
|
||||
|
||||
<p> By default Linux /etc/hosts lookups do not support multiple IP
|
||||
address per hostname. This causes warnings from the Postfix SMTP
|
||||
server that "hostname XXX does not resolve to address YYY", and is
|
||||
especially a problem with hosts that have both IPv4 and IPv6
|
||||
addresses. To fix, turn on support for multiple IP addresses: </p>
|
||||
|
||||
<blockquote>
|
||||
<pre>
|
||||
/etc/host.conf:
|
||||
...
|
||||
# We have machines with multiple IP addresses.
|
||||
multi on
|
||||
...
|
||||
</pre>
|
||||
</blockquote>
|
||||
|
||||
<p> Alternatively, specify the RESOLV_MULTI environment variable
|
||||
in main.cf: </p>
|
||||
|
||||
<blockquote>
|
||||
<pre>
|
||||
/etc/postfix/main.cf:
|
||||
import_environment = MAIL_CONFIG MAIL_DEBUG MAIL_LOGTAG TZ XAUTHORITY DISPLAY LANG=C RESOLV_MULTI=on
|
||||
</pre>
|
||||
</blockquote>
|
||||
|
||||
<h2>Berkeley DB issues</h2>
|
||||
|
||||
<p> If you can't compile Postfix because the file "db.h"
|
||||
|
|
|
@ -374,6 +374,8 @@ post-filter re-injection SMTP service. Typical additions include: </p>
|
|||
# With multiple instances, rarely need "-o param=value" overrides
|
||||
# in master.cf, each instance gets its own main.cf file.
|
||||
#
|
||||
# Postfix 2.10 and later: specify empty smtpd_relay_restrictions.
|
||||
smtpd_relay_restrictions =
|
||||
smtpd_recipient_restrictions = permit_mynetworks, reject
|
||||
|
||||
# Tolerate occasional high latency in the content filter.
|
||||
|
|
|
@ -17,25 +17,30 @@
|
|||
|
||||
<h2> <a name="intro">Introduction</a> </h2>
|
||||
|
||||
<p> The Postfix postscreen(8) server performs triage on multiple
|
||||
inbound SMTP connections at the same time. While a single postscreen(8)
|
||||
process keeps zombies away from Postfix SMTP server processes, more
|
||||
Postfix SMTP server processes remain available for legitimate
|
||||
clients. </p>
|
||||
<p> This document describes features that are available in Postfix
|
||||
2.8 and later. </p>
|
||||
|
||||
<p> The Postfix postscreen(8) daemon provides additional protection
|
||||
against mail server overload. One postscreen(8) process handles
|
||||
multiple inbound SMTP connections, and decides which clients may
|
||||
talk to a Postfix SMTP server process. By keeping spambots away,
|
||||
postscreen(8) leaves more SMTP server processes available for
|
||||
legitimate clients, and delays the onset of <a
|
||||
href="STRESS_README.html">server overload</a> conditions. </p>
|
||||
|
||||
<p> postscreen(8) should not be used on SMTP ports that receive
|
||||
mail from end-user clients (MUAs). In a typical deployment,
|
||||
postscreen(8) handles the MX service on TCP port 25, while MUA
|
||||
clients submit mail via the submission service on TCP 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. </p>
|
||||
|
||||
<p> postscreen(8) maintains a temporary whitelist for clients that
|
||||
pass its tests; by allowing whitelisted clients to skip tests,
|
||||
postscreen(8) minimizes its impact on legitimate email traffic.
|
||||
</p>
|
||||
|
||||
<p> postscreen(8) should not be used on SMTP ports that receive
|
||||
mail from end-user clients (MUAs). In a typical deployment,
|
||||
postscreen(8) is used on the "port 25" service, while MUA clients
|
||||
submit mail via the submission service (port 587) which normally
|
||||
requires client authentication, or via a "port 25" server that
|
||||
provides no MX service (i.e. a dedicated server that provides
|
||||
submission service on port 25). </p>
|
||||
|
||||
<p> postscreen(8) is part of a multi-layer defense. <p>
|
||||
|
||||
<ul>
|
||||
|
@ -43,11 +48,12 @@ submission service on port 25). </p>
|
|||
<li> <p> As the first layer, postscreen(8) blocks connections from
|
||||
zombies and other spambots that are responsible for about 90% of
|
||||
all spam. It is implemented as a single process to make this defense
|
||||
as cheap as possible. </p>
|
||||
as inexpensive as possible. </p>
|
||||
|
||||
<li> <p> The second layer implements more complex SMTP-level access
|
||||
checks with Postfix SMTP servers, policy daemons, and Milter
|
||||
applications. </p>
|
||||
checks with <a href="SMTPD_ACCESS_README.html">Postfix SMTP servers</a>,
|
||||
<a href="SMTPD_POLICY_README.html">policy daemons</a>, and
|
||||
<a href="MILTER_README.html">Milter applications</a>. </p>
|
||||
|
||||
<li> <p> The third layer performs light-weight content inspection
|
||||
with the Postfix built-in header_checks and body_checks. This can
|
||||
|
@ -55,8 +61,10 @@ block unacceptable attachments such as executable programs, and
|
|||
worms or viruses with easy-to-recognize signatures. </p>
|
||||
|
||||
<li> <p> The fourth layer provides heavy-weight content inspection
|
||||
with external content filters. Typical examples are Amavisd-new,
|
||||
SpamAssassin, and Milter applications. </p>
|
||||
with external content filters. Typical examples are <a
|
||||
href="http://www.ijs.si/software/amavisd/">Amavisd-new</a>, <a
|
||||
href="http://spamassassin.apache.org/">SpamAssassin</a>, and <a
|
||||
href="MILTER_README.html">Milter applications</a>. </p>
|
||||
|
||||
</ul>
|
||||
|
||||
|
@ -127,7 +135,8 @@ and that is the problem that postscreen(8) is focused on. </p>
|
|||
|
||||
<h2> <a name="general"> General operation </a> </h2>
|
||||
|
||||
<p> The postscreen(8) triage process involves a number of tests,
|
||||
<p> 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
|
||||
|
@ -218,15 +227,24 @@ specifies the location of the temporary whitelist. The
|
|||
temporary whitelist is not used for SMTP client addresses
|
||||
that appear on the <i>permanent</i> access list. </p>
|
||||
|
||||
<blockquote> <p> NOTE: To share a postscreen(8) cache between
|
||||
multiple postscreen(8) instances, use "<tt>postscreen_cache_map =
|
||||
proxy:btree:$data_directory/postscreen_cache</tt>", and disable
|
||||
cache cleanup (postscreen_cache_cleanup_interval = 0) in all
|
||||
postscreen(8) instances except one that is responsible for cache
|
||||
cleanup. </p> <p> postscreen(8) cache sharing requires Postfix 2.9
|
||||
or later; earlier proxymap(8) implementations don't support cache
|
||||
cleanup. </p> <p> For an alternative postscreen(8) cache sharing
|
||||
approach see the memcache_table(5) manpage. </p> </blockquote>
|
||||
<blockquote>
|
||||
|
||||
<p> NOTE: To share a postscreen(8) cache between multiple
|
||||
postscreen(8) instances under the same master(8) daemon, use
|
||||
"<tt>postscreen_cache_map =
|
||||
proxy:btree:$data_directory/postscreen_cache</tt>", and disable
|
||||
cache cleanup (postscreen_cache_cleanup_interval = 0) in all
|
||||
postscreen(8) instances except one that is responsible for cache
|
||||
cleanup. </p>
|
||||
|
||||
<p> postscreen(8) cache sharing requires Postfix 2.9 or later;
|
||||
earlier proxymap(8) implementations don't support cache cleanup.
|
||||
</p>
|
||||
|
||||
<p> For an alternative postscreen(8) cache sharing approach,
|
||||
see the memcache_table(5) manpage. </p>
|
||||
|
||||
</blockquote>
|
||||
|
||||
<p> When the SMTP client address appears on the temporary
|
||||
whitelist, postscreen(8) logs this with the client address and port
|
||||
|
@ -249,12 +267,17 @@ 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 Postfix SMTP server process. </p>
|
||||
|
||||
<p> By listening on both primary and backup MX addresses, postscreen(8)
|
||||
can deny the temporary whitelist status to clients that connect
|
||||
only to backup MX hosts (an old spammer trick to take advantage of
|
||||
backup MX hosts with weaker anti-spam policies than primary MX
|
||||
<p> 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 address only (an old spammer trick to take advantage
|
||||
of backup MX hosts with weaker anti-spam policies than primary MX
|
||||
hosts). </p>
|
||||
|
||||
<blockquote> <p> NOTE: The following solution is for small sites.
|
||||
Larger sites would have to share the postscreen(8) cache between
|
||||
primary and backup MTAs, which would introduce a common point of
|
||||
failure. </p> </blockquote>
|
||||
|
||||
<ul>
|
||||
|
||||
<li> <p> First, configure the host to listen on both primary and
|
||||
|
@ -262,6 +285,10 @@ backup MX addresses. Use the appropriate <tt>ifconfig</tt> command
|
|||
for the local operating system, or update the appropriate configuration
|
||||
files and "refresh" the network protocol stack. </p>
|
||||
|
||||
<p> <p> Second, configure Postfix to listen on the new IP address
|
||||
(this step is needed when you have specified inet_interfaces in
|
||||
main.cf). </p>
|
||||
|
||||
<li> <p> Then, configure postscreen(8) to deny the temporary whitelist
|
||||
status on the backup MX address(es). An example for Wietse's
|
||||
server is: </p>
|
||||
|
@ -538,12 +565,15 @@ logging more informative. </p>
|
|||
as: </p>
|
||||
|
||||
<pre>
|
||||
<b>NON-SMTP COMMAND from</b> <i>[address]:port command</i>
|
||||
<b>NON-SMTP COMMAND from</b> <i>[address]:port</i> <b>after</b> <i>command: text</i>
|
||||
</pre>
|
||||
|
||||
<p> Translation: the SMTP client at <i>[address]:port</i> sent a
|
||||
<i>command</i> that matches the postscreen_forbidden_commands
|
||||
parameter, or that has the syntax of a message header label. </p>
|
||||
command that matches the postscreen_forbidden_commands
|
||||
parameter, or that has the syntax of a message header label (text
|
||||
followed by optional space and ":").
|
||||
The "<tt><b>after</b> <i>command</i></tt>" portion is logged with
|
||||
Postfix 2.10 and later. </p>
|
||||
|
||||
<p> The postscreen_non_smtp_command_action parameter specifies
|
||||
the action that is taken next. See "<a href="#fail_after_220">When
|
||||
|
@ -570,12 +600,14 @@ this as:
|
|||
</p>
|
||||
|
||||
<pre>
|
||||
<b>BARE NEWLINE from</b> <i>[address]:port</i>
|
||||
<b>BARE NEWLINE from</b> <i>[address]:port</i> <b>after</b> <i>command</i>
|
||||
</pre>
|
||||
|
||||
<p> Translation: the SMTP client at <i>[address]:port</i> sent a bare
|
||||
newline character, that is newline not preceded by carriage
|
||||
return. </p>
|
||||
return.
|
||||
The "<tt><b>after</b> <i>command</i></tt>" portion is logged with
|
||||
Postfix 2.10 and later. </p>
|
||||
|
||||
<p> The postscreen_bare_newline_action parameter specifies the
|
||||
action that is taken next. See "<a href="#fail_after_220">When
|
||||
|
@ -652,29 +684,35 @@ This engine never accepts mail, therefore it has per-session limits
|
|||
on the number of commands and on the session length. </p>
|
||||
|
||||
<pre>
|
||||
<b>COMMAND TIME LIMIT</b> <b>from</b> <i>[address]:port</i>
|
||||
<b>COMMAND TIME LIMIT</b> <b>from</b> <i>[address]:port</i> <b>after</b> <i>command</i>
|
||||
</pre>
|
||||
|
||||
<p> Translation: the SMTP client at <i>[address]:port</i> reached the
|
||||
per-command time limit as specified with the postscreen_command_time_limit
|
||||
parameter. The session is terminated immediately. </p>
|
||||
parameter. The session is terminated immediately.
|
||||
The "<tt><b>after</b> <i>command</i></tt>" portion is logged with
|
||||
Postfix 2.10 and later. </p>
|
||||
|
||||
<pre>
|
||||
<b>COMMAND COUNT LIMIT from</b> <i>[address]:port</i>
|
||||
<b>COMMAND COUNT LIMIT from</b> <i>[address]:port</i> <b>after</b> <i>command</i>
|
||||
</pre>
|
||||
|
||||
<p> Translation: the SMTP client at <i>[address]:port</i> reached the
|
||||
per-session command count limit as specified with the
|
||||
postscreen_command_count_limit parameter. The session is terminated
|
||||
immediately. </p>
|
||||
immediately.
|
||||
The "<tt><b>after</b> <i>command</i></tt>" portion is logged with
|
||||
Postfix 2.10 and later. </p>
|
||||
|
||||
<pre>
|
||||
<b>COMMAND LENGTH LIMIT from</b> <i>[address]:port</i>
|
||||
<b>COMMAND LENGTH LIMIT from</b> <i>[address]:port</i> <b>after</b> <i>command</i>
|
||||
</pre>
|
||||
|
||||
<p> Translation: the SMTP client at <i>[address]:port</i> reached the
|
||||
per-command length limit, as specified with the line_length_limit
|
||||
parameter. The session is terminated immediately. </p>
|
||||
parameter. The session is terminated immediately.
|
||||
The "<tt><b>after</b> <i>command</i></tt>" portion is logged with
|
||||
Postfix 2.10 and later. </p>
|
||||
|
||||
<p> When an SMTP client makes too many connections at the same time,
|
||||
or when all postscreen(8) ports are busy, postscreen(8) rejects the
|
||||
|
@ -1044,6 +1082,15 @@ postscreen(8) usable for sites that require TLS support. The
|
|||
implementation introduces the tlsproxy(8) event-driven TLS proxy
|
||||
that decrypts/encrypts the sessions for multiple SMTP clients. </p>
|
||||
|
||||
<p> The tlsproxy(8) implementation led to the discovery of a "new"
|
||||
class of vulnerability (<a
|
||||
href="http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2011-0411"
|
||||
>CVE-2011-0411</a>) that affected multiple implementations of SMTP,
|
||||
POP, IMAP, NNTP, and FTP over TLS. </p>
|
||||
|
||||
<p> postscreen(8) was officially released as part of the Postfix
|
||||
2.8 stable release in January 2011.</p>
|
||||
|
||||
</body>
|
||||
|
||||
</html>
|
||||
|
|
|
@ -48,13 +48,17 @@ care about these low-level details. </p>
|
|||
permissive = permit
|
||||
|
||||
smtpd_recipient_restrictions =
|
||||
permit_mynetworks
|
||||
reject_unauth_destination
|
||||
check_recipient_access hash:/etc/postfix/recipient_access
|
||||
permit_mynetworks
|
||||
# reject_unauth_destination is not needed here if the mail
|
||||
# relay policy is specified with smtpd_relay_restrictions
|
||||
# (available with Postfix 2.10 and later).
|
||||
reject_unauth_destination
|
||||
check_recipient_access hash:/etc/postfix/recipient_access
|
||||
...
|
||||
|
||||
/etc/postfix/recipient_access:
|
||||
joe@my.domain permissive
|
||||
jane@my.domain restrictive
|
||||
joe@my.domain permissive
|
||||
jane@my.domain restrictive
|
||||
</pre>
|
||||
</blockquote>
|
||||
|
||||
|
@ -102,6 +106,7 @@ to IP spoofing. </p>
|
|||
<pre>
|
||||
/etc/postfix/main.cf:
|
||||
smtpd_recipient_restrictions =
|
||||
...
|
||||
check_recipient_access hash:/etc/postfix/access
|
||||
<i>...the usual stuff...</i>
|
||||
|
||||
|
@ -133,6 +138,7 @@ therefore is subject to SMTP sender spoofing. </p>
|
|||
<pre>
|
||||
/etc/postfix/main.cf:
|
||||
smtpd_recipient_restrictions =
|
||||
...
|
||||
check_recipient_access hash:/etc/postfix/protected_destinations
|
||||
<i>...the usual stuff...</i>
|
||||
|
||||
|
@ -193,6 +199,7 @@ with LDAP or SQL. </p>
|
|||
<pre>
|
||||
/etc/postfix/main.cf:
|
||||
smtpd_recipient_restrictions =
|
||||
...
|
||||
check_sender_access hash:/etc/postfix/restricted_senders
|
||||
<i>...other stuff...</i>
|
||||
|
||||
|
|
|
@ -87,7 +87,7 @@ what envelope sender addresses the client may use. </p> </li>
|
|||
|
||||
<p> Successful authentication in the Postfix SMTP server requires
|
||||
a functional SASL framework. Configuring SASL should therefore
|
||||
always be the first step. </p>
|
||||
always be the first step, before configuring Postfix. </p>
|
||||
|
||||
<p> You can read more about the following topics: </p>
|
||||
|
||||
|
@ -1367,20 +1367,33 @@ for. Examples of possible SMTP clients authorizations are: </p>
|
|||
|
||||
<h4><a name="server_sasl_authz_relay">Mail relay authorization</a></h4>
|
||||
|
||||
<p> The <code>permit_sasl_authenticated</code> restriction allows
|
||||
<p> With <code>permit_sasl_authenticated</code> the Postfix SMTP
|
||||
server can allow
|
||||
SASL-authenticated SMTP clients to send mail to remote destinations.
|
||||
Add it to the list of <code>smtpd_recipient_restrictions</code> as
|
||||
follows: </p>
|
||||
Examples:
|
||||
</p>
|
||||
|
||||
<blockquote>
|
||||
<pre>
|
||||
# With Postfix 2.10 and later, the mail relay policy is
|
||||
# preferably specified under smtpd_relay_restrictions.
|
||||
/etc/postfix/main.cf:
|
||||
smtpd_relay_restrictions =
|
||||
permit_mynetworks
|
||||
<strong>permit_sasl_authenticated</strong>
|
||||
reject_unauth_destination
|
||||
</pre>
|
||||
|
||||
<pre>
|
||||
# Older configurations combine relay control and spam control under
|
||||
# smtpd_recipient_restrictions. To use this example with Postfix ≥
|
||||
# 2.10 specify "smtpd_relay_restrictions=".
|
||||
/etc/postfix/main.cf:
|
||||
smtpd_recipient_restrictions =
|
||||
...
|
||||
permit_mynetworks
|
||||
<strong>permit_sasl_authenticated</strong>
|
||||
reject_unauth_destination
|
||||
...
|
||||
permit_mynetworks
|
||||
<strong>permit_sasl_authenticated</strong>
|
||||
reject_unauth_destination
|
||||
...other rules...
|
||||
</pre>
|
||||
</blockquote>
|
||||
|
||||
|
@ -1406,9 +1419,7 @@ use a particular envelope sender address: </p>
|
|||
smtpd_recipient_restrictions =
|
||||
...
|
||||
<strong>reject_sender_login_mismatch</strong>
|
||||
permit_sasl_authenticated
|
||||
permit_mynetworks
|
||||
reject_unauth_destination
|
||||
permit_sasl_authenticated
|
||||
...
|
||||
</pre>
|
||||
</blockquote>
|
||||
|
@ -1926,7 +1937,7 @@ font. </p>
|
|||
</blockquote>
|
||||
|
||||
<p> Instead of port 25 (smtp), specify port 587 (submission) where
|
||||
appriopriate. </p>
|
||||
appropriate. </p>
|
||||
|
||||
<h4>Encrypted SMTP session (TLS)</h4>
|
||||
|
||||
|
|
|
@ -60,10 +60,19 @@ http://www.mail-abuse.org/ and other websites. </p>
|
|||
|
||||
<p> By default, Postfix has a moderately restrictive approach to
|
||||
mail relaying. Postfix forwards mail only from clients in trusted
|
||||
networks, or to domains that are configured as authorized relay
|
||||
destinations. For a description of the default policy, see the
|
||||
smtpd_recipient_restrictions parameter in the postconf(5) manual
|
||||
page, and the information that is referenced from there. </p>
|
||||
networks, from clients that have authenticated with SASL, or to
|
||||
domains that are configured as authorized relay
|
||||
destinations. For a description of the default mail relay policy,
|
||||
see the smtpd_relay_restrictions parameter in the postconf(5) manual
|
||||
page, and the information that is referenced from there. </p>
|
||||
|
||||
<blockquote> <p> NOTE: Postfix versions before 2.10 did not have
|
||||
smtpd_relay_restrictions. They combined the mail relay and spam
|
||||
blocking policies, under smtpd_recipient_restrictions. This could
|
||||
lead to unexpected results. For example, a permissive spam blocking
|
||||
policy could unexpectedly result in a permissive mail relay policy.
|
||||
An example of this is documented under "<a href="#danger">Dangerous
|
||||
use of smtpd_recipient_restrictions</a>". </p> </blockquote>
|
||||
|
||||
<p> Most of the Postfix SMTP server access controls are targeted
|
||||
at stopping junk email. </p>
|
||||
|
@ -178,8 +187,23 @@ described in the postconf(5) manual page. </p>
|
|||
# Don't accept mail from domains that don't exist.
|
||||
smtpd_sender_restrictions = reject_unknown_sender_domain
|
||||
|
||||
# Whitelisting: local clients may specify any destination domain.
|
||||
smtpd_recipient_restrictions = permit_mynetworks, reject_unauth_destination
|
||||
# Relay control (Postfix 2.10 and later): local clients and
|
||||
# authenticated clients may specify any destination domain.
|
||||
smtpd_relay_restrictions = permit_mynetworks,
|
||||
permit_sasl_authenticated,
|
||||
reject_unauth_destination
|
||||
|
||||
# Spam control: exclude local clients and authenticated clients
|
||||
# from DNSBL lookups.
|
||||
smtpd_recipient_restrictions = permit_mynetworks,
|
||||
permit_sasl_authenticated,
|
||||
# reject_unauth_destination is not needed here if the mail
|
||||
# relay policy is specified under smtpd_relay_restrictions
|
||||
# (available with Postfix 2.10 and later).
|
||||
reject_unauth_destination
|
||||
reject_rbl_client zen.spamhaus.org,
|
||||
reject_rhsbl_helo dbl.spamhaus.org,
|
||||
reject_rhsbl_sender dbl.spamhaus.org
|
||||
|
||||
# Block clients that speak too early.
|
||||
smtpd_data_restrictions = reject_unauth_pipelining
|
||||
|
@ -205,28 +229,47 @@ DEFER result. </p>
|
|||
|
||||
<table border="1">
|
||||
|
||||
<tr> <th> Restriction list name </th> <th> Status </th> <th> Effect
|
||||
<tr> <th> Restriction list name </th> <th> Version </th> <th> Status
|
||||
</th> <th> Effect
|
||||
of REJECT or DEFER result </th> </tr>
|
||||
|
||||
<tr> <td> smtpd_client_restrictions </td> <td> Optional </td> <td>
|
||||
<tr> <td> smtpd_client_restrictions </td> <td> All </td> <td>
|
||||
Optional </td> <td>
|
||||
Reject all client commands </td> </tr>
|
||||
|
||||
<tr> <td> smtpd_helo_restrictions </td> <td> Optional </td> <td>
|
||||
<tr> <td> smtpd_helo_restrictions </td> <td> All </td> <td> Optional
|
||||
</td> <td>
|
||||
Reject HELO/EHLO information </td> </tr>
|
||||
|
||||
<tr> <td> smtpd_sender_restrictions </td> <td> Optional </td> <td>
|
||||
<tr> <td> smtpd_sender_restrictions </td> <td> All </td> <td>
|
||||
Optional </td> <td>
|
||||
Reject MAIL FROM information </td> </tr>
|
||||
|
||||
<tr> <td> smtpd_recipient_restrictions </td> <td> Required </td>
|
||||
<td> Reject RCPT TO information </td> </tr>
|
||||
<tr> <td rowspan="2"> smtpd_relay_restrictions </td> <td> ≥ 2.10
|
||||
</td> <td> Required if smtpd_recipient_restrictions does not enforce
|
||||
relay policy</td>
|
||||
<td rowspan="2"> Reject RCPT TO information </td> </tr>
|
||||
|
||||
<tr> <td> smtpd_data_restrictions </td> <td> Optional </td> <td>
|
||||
<tr> <td> < 2.10</td> <td> Not available </td>
|
||||
</tr>
|
||||
|
||||
<tr> <td rowspan="2"> smtpd_recipient_restrictions </td> <td> ≥
|
||||
2.10 </td> <td> Required if smtpd_relay_restrictions does not enforce
|
||||
relay policy</td>
|
||||
<td rowspan="2"> Reject RCPT TO information </td> </tr>
|
||||
|
||||
<tr> <td> < 2.10</td> <td> Required </td> </tr>
|
||||
|
||||
<tr> <td> smtpd_data_restrictions </td> <td> ≥ 2.0 </td> <td>
|
||||
Optional </td> <td>
|
||||
Reject DATA command </td> </tr>
|
||||
|
||||
<tr> <td> smtpd_end_of_data_restrictions </td> <td> Optional </td> <td>
|
||||
<tr> <td> smtpd_end_of_data_restrictions </td> <td> ≥ 2.2 </td>
|
||||
<td> Optional </td> <td>
|
||||
Reject END-OF-DATA command </td> </tr>
|
||||
|
||||
<tr> <td> smtpd_etrn_restrictions </td> <td> Optional </td> <td>
|
||||
<tr> <td> smtpd_etrn_restrictions </td> <td> All </td> <td> Optional
|
||||
</td> <td>
|
||||
Reject ETRN command </td> </tr>
|
||||
|
||||
</table>
|
||||
|
@ -248,10 +291,10 @@ and so on. This approach turned out to be difficult to use. </p>
|
|||
helo and sender restriction lists until the RCPT TO or ETRN command.
|
||||
This behavior is controlled by the smtpd_delay_reject parameter.
|
||||
Restriction lists are still evaluated in the proper order of (client,
|
||||
helo, etrn) or (client, helo, sender, recipient, data, or end-of-data)
|
||||
restrictions.
|
||||
helo, etrn) or (client, helo, sender, relay, recipient, data, or
|
||||
end-of-data) restrictions.
|
||||
When a restriction list (example: client) evaluates to REJECT or
|
||||
DEFER the other restriction lists (example: helo, sender, etc.)
|
||||
DEFER the restriction lists that follow (example: helo, sender, etc.)
|
||||
are skipped. </p>
|
||||
|
||||
<p> Around the time that smtpd_delay_reject was introduced, Postfix
|
||||
|
@ -300,6 +343,12 @@ list evaluates to REJECT or DEFER, the recipient address is rejected;
|
|||
no surprises here. If the result is PERMIT, then the recipient
|
||||
address is accepted. And this is where surprises can happen. </p>
|
||||
|
||||
<p> The problem is that Postfix versions before 2.10 did not have
|
||||
smtpd_relay_restrictions. They combined the mail relay and spam
|
||||
blocking policies, under smtpd_recipient_restrictions. The result
|
||||
is that a permissive spam blocking policy could unexpectedly result
|
||||
in a permissive mail relay policy. </p>
|
||||
|
||||
<p> Here is an example that shows when a PERMIT result can result
|
||||
in too much access permission: </p>
|
||||
|
||||
|
@ -309,7 +358,7 @@ in too much access permission: </p>
|
|||
3 permit_mynetworks
|
||||
4 check_helo_access hash:/etc/postfix/helo_access
|
||||
5 reject_unknown_helo_hostname
|
||||
6 reject_unauth_destination
|
||||
6 <b>reject_unauth_destination</b>
|
||||
7
|
||||
8 /etc/postfix/helo_access:
|
||||
9 localhost.localdomain PERMIT
|
||||
|
@ -326,14 +375,31 @@ smtpd_recipient_restrictions evaluates to PERMIT for EVERY host
|
|||
that announces itself as "localhost.localdomain", making Postfix
|
||||
an open relay for all such hosts. </p>
|
||||
|
||||
<p> In order to avoid surprises like these with
|
||||
smtpd_recipient_restrictions, you should place non-recipient
|
||||
<p> With Postfix before version 2.10 you should place non-recipient
|
||||
restrictions AFTER the reject_unauth_destination restriction, not
|
||||
before. In the above example, the HELO based restrictions should
|
||||
be placed AFTER reject_unauth_destination, or better, the HELO
|
||||
based restrictions should be placed under smtpd_helo_restrictions
|
||||
where they can do no harm. </p>
|
||||
|
||||
<pre>
|
||||
1 /etc/postfix/main.cf:
|
||||
2 smtpd_recipient_restrictions =
|
||||
3 permit_mynetworks
|
||||
4 <b>reject_unauth_destination</b>
|
||||
5 check_helo_access hash:/etc/postfix/helo_access
|
||||
6 reject_unknown_helo_hostname
|
||||
7
|
||||
8 /etc/postfix/helo_access:
|
||||
9 localhost.localdomain PERMIT
|
||||
</pre>
|
||||
|
||||
<p> The above mistake will not happen with Postfix 2.10 and later,
|
||||
when the relay policy is specified under smtpd_relay_restrictions,
|
||||
and the spam blocking policy under smtpd_recipient_restrictions.
|
||||
Then, a permissive spam blocking policy will not result in a
|
||||
permissive mail relay policy. </p>
|
||||
|
||||
<h2> <a name="testing"> SMTP access rule testing </a> </h2>
|
||||
|
||||
<p> Postfix has several features that aid in SMTP access rule
|
||||
|
@ -348,18 +414,21 @@ sender. Specify "soft_bounce = yes" in the main.cf file to prevent
|
|||
the Postfix SMTP server from rejecting mail permanently, by changing
|
||||
all 5xx SMTP reply codes into 4xx. </p> </dd>
|
||||
|
||||
<dt> warn_if_reject </dt> <dd> <p> This is a different safety net
|
||||
that changes SMTP server REJECT actions into warnings. Instead of
|
||||
rejecting a command, Postfix logs what it would reject. Specify
|
||||
"warn_if_reject" in an SMTP access restriction list, before the
|
||||
restriction that you want to test without actually rejecting mail.
|
||||
</p> </dd>
|
||||
<dt> warn_if_reject </dt> <dd> <p> When placed before a reject-type
|
||||
restriction, access table query, or check_policy_service query,
|
||||
this logs a "reject_warning" message instead of rejecting a request
|
||||
(when a reject-type restriction fails due to a temporary error,
|
||||
this logs a "reject_warning" message for any implicit "defer_if_permit"
|
||||
actions that would normally prevent mail from being accepted by
|
||||
some later access restriction). This feature has no effect on
|
||||
defer_if_reject restrictions. </p> </dd>
|
||||
|
||||
<dt> XCLIENT </dt> <dd> <p> With this Postfix 2.1 feature, authorized
|
||||
SMTP clients can impersonate other systems, so that you can do
|
||||
realistic SMTP access rule tests. Examples of how to impersonate
|
||||
other systems for access rule testing are given at the end of the
|
||||
XCLIENT_README document. </p> </dd>
|
||||
<dt> XCLIENT </dt> <dd> <p> With this feature, an authorized SMTP
|
||||
client can impersonate other systems and perform realistic SMTP
|
||||
access rule tests. Examples of how to impersonate other systems
|
||||
for access rule testing are given at the end of the XCLIENT_README
|
||||
document. <br> This feature is available in Postfix 2.1. </p>
|
||||
</dd>
|
||||
|
||||
</dl>
|
||||
|
||||
|
|
|
@ -281,6 +281,10 @@ specified with the <b>user</b> attribute. </p>
|
|||
"-", to avoid "connection refused" and other problems when you
|
||||
increase the smtpd process limit. </p>
|
||||
|
||||
<li> <p> Line 8: reject_unauth_destination is not needed here if
|
||||
the mail relay policy is specified with smtpd_relay_restrictions
|
||||
(available with Postfix 2.10 and later). </p>
|
||||
|
||||
<li> <p> Lines 8, 9: always specify "check_policy_service" AFTER
|
||||
"reject_unauth_destination" or else your system could become an
|
||||
open relay. </p>
|
||||
|
@ -299,8 +303,8 @@ of a master.cf service name (in the above example, "policy") and a
|
|||
built-in suffix (in the above example: "_time_limit"). </p>
|
||||
</blockquote>
|
||||
|
||||
<li> <p> Solaris UNIX-domain sockets do not work reliably. Use
|
||||
TCP sockets instead: </p>
|
||||
<li> <p> With Solaris < 9, or Postfix < 2.10 on any Solaris
|
||||
version, use TCP sockets instead of UNIX-domain sockets: </p>
|
||||
|
||||
</ul>
|
||||
|
||||
|
@ -436,6 +440,10 @@ SMTP server process that talks to it.
|
|||
See the spawn(8) manpage for more information about the
|
||||
<i>transport</i>_time_limit parameter. </p>
|
||||
|
||||
<li> <p> Line 9: reject_unauth_destination is not needed here if
|
||||
the mail relay policy is specified with smtpd_relay_restrictions
|
||||
(available with Postfix 2.10 and later). </p>
|
||||
|
||||
<blockquote> <p> Note: the "greylist_time_limit" parameter will not
|
||||
show up in "postconf" command output before Postfix version 2.9.
|
||||
This limitation applies to many parameters whose name is a combination
|
||||
|
@ -445,7 +453,8 @@ a built-in suffix (in the above example: "_time_limit"). </p>
|
|||
|
||||
</ul>
|
||||
|
||||
<p> On Solaris you must use inet: style sockets instead of unix:
|
||||
<p> With Solaris < 9, or Postfix < 2.10 on any Solaris
|
||||
version, use inet: style sockets instead of unix:
|
||||
style, as detailed in the "<a href="#client_config">Policy
|
||||
client/server configuration</a>" section above. </p>
|
||||
|
||||
|
@ -497,10 +506,15 @@ http://www.monkeys.com/anti-spam/filtering/sender-domain-validate.in.
|
|||
|
||||
<ul>
|
||||
|
||||
<li> <p> Line 9: On Solaris you must use inet: style sockets
|
||||
<li> <p> Line 9: On Solaris < 9, or Postfix < 2.10 on any
|
||||
Solaris version, use inet: style sockets
|
||||
instead of unix: style, as detailed in the "<a href="#greylist">Example:
|
||||
greylist policy server</a>" section above. </p>
|
||||
|
||||
<li> <p> Line 5: reject_unauth_destination is not needed here if
|
||||
the mail relay policy is specified with smtpd_relay_restrictions
|
||||
(available with Postfix 2.10 and later). </p>
|
||||
|
||||
<li> <p> Line 6: Be sure to specify "check_sender_access" AFTER
|
||||
"reject_unauth_destination" or else your system could become an
|
||||
open mail relay. </p>
|
||||
|
@ -547,10 +561,15 @@ most of the delays and most of the database pollution problem. </p>
|
|||
|
||||
<ul>
|
||||
|
||||
<li> <p> Line 7: On Solaris you must use inet: style sockets
|
||||
<li> <p> Line 7: On Solaris < 9, or Postfix < 2.10 on any
|
||||
Solaris version, use inet: style sockets
|
||||
instead of unix: style, as detailed in the "<a href="#greylist">Example:
|
||||
greylist policy server</a>" section above. </p>
|
||||
|
||||
<li> <p> Line 5: reject_unauth_destination is not needed here if
|
||||
the mail relay policy is specified with smtpd_relay_restrictions
|
||||
(available with Postfix 2.10 and later). </p>
|
||||
|
||||
<li> <p> Lines 6-7: Be sure to specify check_sender_access and
|
||||
check_policy_service AFTER reject_unauth_destination or else your
|
||||
system could become an open mail relay. </p>
|
||||
|
|
|
@ -40,43 +40,43 @@ except that the latter uses a dedicated protocol instead of SMTP.
|
|||
|
||||
<tr>
|
||||
|
||||
<td bgcolor="#f0f0ff" align="center" valign="middle"
|
||||
width="10%"> Internet </td>
|
||||
<td bgcolor="#f0f0ff" align="center" valign="middle"
|
||||
width="10%"> Internet </td>
|
||||
|
||||
<td align="center" valign="middle" width="5%"> <tt> -> </tt> </td>
|
||||
|
||||
<td bgcolor="#f0f0ff" align="center" valign="middle"
|
||||
width="10%"> <a href="smtpd.8.html">Postfix SMTP server</a>
|
||||
</td>
|
||||
<td bgcolor="#f0f0ff" align="center" valign="middle"
|
||||
width="10%"> <a href="smtpd.8.html">Postfix SMTP server</a>
|
||||
</td>
|
||||
|
||||
<td align="center" valign="middle" width="5%"> <tt> -> </tt> </td>
|
||||
|
||||
<td bgcolor="#f0f0ff" align="center" valign="middle"
|
||||
width="10%"> <b>Before</b> <b>queue</b> <b>filter</b> </td>
|
||||
<td bgcolor="#f0f0ff" align="center" valign="middle"
|
||||
width="10%"> <b>Before</b> <b>queue</b> <b>filter</b> </td>
|
||||
|
||||
<td align="center" valign="middle" width="5%"> <tt> -> </tt> </td>
|
||||
|
||||
<td bgcolor="#f0f0ff" align="center" valign="middle"
|
||||
width="10%"> <a href="smtpd.8.html">Postfix SMTP server</a>
|
||||
</td>
|
||||
<td bgcolor="#f0f0ff" align="center" valign="middle"
|
||||
width="10%"> <a href="smtpd.8.html">Postfix SMTP server</a>
|
||||
</td>
|
||||
|
||||
<td align="center" valign="middle" width="5%"> <tt> -> </tt> </td>
|
||||
|
||||
<td bgcolor="#f0f0ff" align="center" valign="middle"
|
||||
width="10%"> <a href="cleanup.8.html">Postfix cleanup
|
||||
server</a> </td>
|
||||
<td bgcolor="#f0f0ff" align="center" valign="middle"
|
||||
width="10%"> <a href="cleanup.8.html">Postfix cleanup
|
||||
server</a> </td>
|
||||
|
||||
<td align="center" valign="middle" width="5%"> <tt> -> </tt> </td>
|
||||
|
||||
<td bgcolor="#f0f0ff" align="center" valign="middle"
|
||||
width="10%"> Postfix queue </td>
|
||||
<td bgcolor="#f0f0ff" align="center" valign="middle"
|
||||
width="10%"> Postfix queue </td>
|
||||
|
||||
<td align="center" valign="middle" width="5%"> <tt> -< </tt> </td>
|
||||
|
||||
<td bgcolor="#f0f0ff" align="center" valign="middle"
|
||||
width="10%"> <a href="smtp.8.html">smtp</a><br> <a
|
||||
href="local.8.html">local</a><br> <a
|
||||
href="virtual.8.html">virtual</a> </td>
|
||||
<td bgcolor="#f0f0ff" align="center" valign="middle"
|
||||
width="10%"> <a href="smtp.8.html">smtp</a><br> <a
|
||||
href="local.8.html">local</a><br> <a
|
||||
href="virtual.8.html">virtual</a> </td>
|
||||
|
||||
</tr>
|
||||
|
||||
|
@ -213,26 +213,26 @@ http://bent.latency.net/smtpprox/. </p>
|
|||
|
||||
<td align="center" valign="middle" width="5%"> <tt> -> </tt> </td>
|
||||
|
||||
<td bgcolor="#f0f0ff" align="center" valign="middle"
|
||||
width="10%"> <a href="smtpd.8.html">Postfix SMTP server on
|
||||
port 25</a> </td>
|
||||
<td bgcolor="#f0f0ff" align="center" valign="middle"
|
||||
width="10%"> <a href="smtpd.8.html">Postfix SMTP server on
|
||||
port 25</a> </td>
|
||||
|
||||
<td align="center" valign="middle" width="5%"> <tt> -> </tt> </td>
|
||||
|
||||
<td bgcolor="#f0f0ff" align="center" valign="middle"
|
||||
width="10%"> filter on localhost port 10025 </td>
|
||||
<td bgcolor="#f0f0ff" align="center" valign="middle"
|
||||
width="10%"> filter on localhost port 10025 </td>
|
||||
|
||||
<td align="center" valign="middle" width="5%"> <tt> -> </tt> </td>
|
||||
|
||||
<td bgcolor="#f0f0ff" align="center" valign="middle"
|
||||
width="10%"> <a href="smtpd.8.html">Postfix SMTP server on
|
||||
localhost port 10026</a> </td>
|
||||
<td bgcolor="#f0f0ff" align="center" valign="middle"
|
||||
width="10%"> <a href="smtpd.8.html">Postfix SMTP server on
|
||||
localhost port 10026</a> </td>
|
||||
|
||||
<td align="center" valign="middle" width="5%"> <tt> -> </tt> </td>
|
||||
|
||||
<td bgcolor="#f0f0ff" align="center" valign="middle"
|
||||
width="10%"> <a href="cleanup.8.html">Postfix cleanup
|
||||
server</a> </td>
|
||||
<td bgcolor="#f0f0ff" align="center" valign="middle"
|
||||
width="10%"> <a href="cleanup.8.html">Postfix cleanup
|
||||
server</a> </td>
|
||||
|
||||
<td align="center" valign="middle" width="5%"> <tt> -> </tt> </td>
|
||||
|
||||
|
@ -261,8 +261,8 @@ http://bent.latency.net/smtpprox/. </p>
|
|||
smtp inet n - n - 20 smtpd
|
||||
-o smtpd_proxy_filter=127.0.0.1:10025
|
||||
-o smtpd_client_connection_count_limit=10
|
||||
# Postfix 2.7 and later performance feature.
|
||||
# -o smtpd_proxy_options=speed_adjust
|
||||
# Postfix 2.7 and later performance feature.
|
||||
# -o smtpd_proxy_options=speed_adjust
|
||||
#
|
||||
# After-filter SMTP server. Receive mail from the content filter
|
||||
# on localhost port 10026.
|
||||
|
@ -272,6 +272,8 @@ http://bent.latency.net/smtpprox/. </p>
|
|||
-o smtpd_client_restrictions=
|
||||
-o smtpd_helo_restrictions=
|
||||
-o smtpd_sender_restrictions=
|
||||
# Postfix 2.10 and later: specify empty smtpd_relay_restrictions.
|
||||
-o smtpd_relay_restrictions=
|
||||
-o smtpd_recipient_restrictions=permit_mynetworks,reject
|
||||
-o smtpd_data_restrictions=
|
||||
-o mynetworks=127.0.0.0/8
|
||||
|
|
|
@ -102,20 +102,18 @@ mail from the network, and it does not deliver any mail locally. A
|
|||
null client typically uses POP, IMAP or NFS for mailbox access. </p>
|
||||
|
||||
<p> In this example we assume that the Internet domain name is
|
||||
"example.com" and that the machine is named "nullclient.example.com".
|
||||
"example.com" and that the machine is named "hostname.example.com".
|
||||
As usual, the examples show only parameters that are not left at
|
||||
their default settings. </p>
|
||||
|
||||
<blockquote>
|
||||
<pre>
|
||||
1 /etc/postfix/main.cf:
|
||||
2 myorigin = $mydomain
|
||||
3 relayhost = $mydomain
|
||||
4 inet_interfaces = loopback-only
|
||||
5 local_transport = error:local delivery is disabled
|
||||
6
|
||||
7 /etc/postfix/master.cf:
|
||||
8 Comment out the local delivery agent entry
|
||||
2 myhostname = hostname.example.com
|
||||
3 myorigin = $mydomain
|
||||
4 relayhost = $mydomain
|
||||
5 inet_interfaces = loopback-only
|
||||
6 mydestination =
|
||||
</pre>
|
||||
</blockquote>
|
||||
|
||||
|
@ -123,19 +121,29 @@ their default settings. </p>
|
|||
|
||||
<ul>
|
||||
|
||||
<li> <p> Line 2: Send mail as "user@example.com" (instead of
|
||||
"user@nullclient.example.com"), so that nothing ever has a reason
|
||||
to send mail to "user@nullclient.example.com". </p>
|
||||
<li> <p> Line 2: Set myhostname to hostname.example.com, in case
|
||||
the machine name isn't set to a fully-qualified domain name (use
|
||||
the command "postconf -d myhostname" to find out what the machine
|
||||
name is). </p>
|
||||
|
||||
<li> <p> Line 3: Forward all mail to the mail server that is
|
||||
<li> <p> Line 2: The myhostname value also provides the default
|
||||
value for the mydomain parameter (here, "mydomain = example.com").
|
||||
</p>
|
||||
|
||||
<li> <p> Line 3: Send mail as "user@example.com" (instead of
|
||||
"user@hostname.example.com"), so that nothing ever has a reason
|
||||
to send mail to "user@hostname.example.com". </p>
|
||||
|
||||
<li> <p> Line 4: Forward all mail to the mail server that is
|
||||
responsible for the "example.com" domain. This prevents mail from
|
||||
getting stuck on the null client if it is turned off while some
|
||||
remote destination is unreachable. </p>
|
||||
remote destination is unreachable. Specify a real hostname
|
||||
here if your "example.com" domain has no MX record. </p>
|
||||
|
||||
<li> <p> Line 4: Do not accept mail from the network. </p>
|
||||
<li> <p> Line 5: Do not accept mail from the network. </p>
|
||||
|
||||
<li> <p> Lines 5-8: Disable local mail delivery. All mail goes to
|
||||
the mail server as specified in line 3. </p>
|
||||
<li> <p> Line 6: Disable local mail delivery. All mail goes to
|
||||
the mail server as specified in line 4. </p>
|
||||
|
||||
</ul>
|
||||
|
||||
|
@ -347,31 +355,41 @@ is the real purpose of the firewall email function. </p>
|
|||
3 relay_domains = example.com
|
||||
4 parent_domain_matches_subdomains =
|
||||
5 debug_peer_list smtpd_access_maps
|
||||
6 smtpd_recipient_restrictions =
|
||||
7 permit_mynetworks reject_unauth_destination
|
||||
8
|
||||
9 relay_recipient_maps = hash:/etc/postfix/relay_recipients
|
||||
10 transport_maps = hash:/etc/postfix/transport
|
||||
11
|
||||
12 /etc/postfix/relay_recipients:
|
||||
13 user1@example.com x
|
||||
14 user2@example.com x
|
||||
15 . . .
|
||||
16
|
||||
17 /etc/postfix/transport:
|
||||
18 example.com smtp:[inside-gateway.example.com]
|
||||
<br>
|
||||
6a # Postfix 2.10 and later support separate relay control and
|
||||
7a # spam control.
|
||||
8a smtpd_relay_restrictions =
|
||||
9a permit_mynetworks reject_unauth_destination
|
||||
10a smtpd_recipient_restrictions = ...spam blocking rules....
|
||||
<br>
|
||||
6b # Older configurations combine relay control and spam control. To
|
||||
7b # use this with Postfix ≥ 2.10 specify "smtpd_relay_restrictions=".
|
||||
8b smtpd_recipient_restrictions =
|
||||
9b permit_mynetworks reject_unauth_destination
|
||||
10b ...spam blocking rules....
|
||||
<br>
|
||||
11 relay_recipient_maps = hash:/etc/postfix/relay_recipients
|
||||
12 transport_maps = hash:/etc/postfix/transport
|
||||
13
|
||||
14 /etc/postfix/relay_recipients:
|
||||
15 user1@example.com x
|
||||
16 user2@example.com x
|
||||
17 . . .
|
||||
18
|
||||
19 /etc/postfix/transport:
|
||||
20 example.com smtp:[inside-gateway.example.com]
|
||||
</pre>
|
||||
</blockquote>
|
||||
|
||||
<p> Translation: </p>
|
||||
|
||||
<ul>
|
||||
|
||||
<li><p> Lines 1-7: Accept mail from local systems in $mynetworks,
|
||||
|
||||
<li><p> Lines 1-10: Accept mail from local systems in $mynetworks,
|
||||
and accept mail from outside for "user@example.com" but not for
|
||||
"user@anything.example.com". The magic is in lines 4-5. </p>
|
||||
|
||||
<li> <p> Lines 9, 12-14: Define the list of valid addresses in the
|
||||
<li> <p> Lines 11, 13-16: Define the list of valid addresses in the
|
||||
"example.com" domain that can receive mail from the Internet. This
|
||||
prevents the mail queue from filling up with undeliverable
|
||||
MAILER-DAEMON messages. If you can't maintain a list of valid
|
||||
|
@ -379,7 +397,7 @@ recipients then you must specify "relay_recipient_maps =" (that
|
|||
is, an empty value), or you must specify an "@example.com x"
|
||||
wild-card in the relay_recipients table. </p>
|
||||
|
||||
<li> <p> Lines 10, 17-18: Route mail for "example.com" to the inside
|
||||
<li> <p> Lines 12, 19-20: Route mail for "example.com" to the inside
|
||||
gateway machine. The <tt>[]</tt> forces Postfix to do no MX lookup.
|
||||
</p>
|
||||
|
||||
|
@ -521,18 +539,28 @@ is all you need: </p>
|
|||
3
|
||||
4 /etc/postfix/main.cf:
|
||||
5 relay_domains = . . . the.backed-up.domain.tld
|
||||
6 smtpd_recipient_restrictions =
|
||||
7 permit_mynetworks reject_unauth_destination
|
||||
8
|
||||
9 # You must specify your NAT/proxy external address.
|
||||
10 #proxy_interfaces = 1.2.3.4
|
||||
11
|
||||
12 relay_recipient_maps = hash:/etc/postfix/relay_recipients
|
||||
<br>
|
||||
6a # Postfix 2.10 and later support separate relay control and
|
||||
7a # spam control.
|
||||
8a smtpd_relay_restrictions =
|
||||
9a permit_mynetworks reject_unauth_destination
|
||||
10a smtpd_recipient_restrictions = ...spam blocking rules....
|
||||
<br>
|
||||
6b # Older configurations combine relay control and spam control. To
|
||||
7b # use this with Postfix ≥ 2.10 specify "smtpd_relay_restrictions=".
|
||||
8b smtpd_recipient_restrictions =
|
||||
9b permit_mynetworks reject_unauth_destination
|
||||
10b ...spam blocking rules....
|
||||
<br>
|
||||
11 # You must specify your NAT/proxy external address.
|
||||
12 #proxy_interfaces = 1.2.3.4
|
||||
13
|
||||
14 /etc/postfix/relay_recipients:
|
||||
15 user1@the.backed-up.domain.tld x
|
||||
16 user2@the.backed-up.domain.tld x
|
||||
17 . . .
|
||||
14 relay_recipient_maps = hash:/etc/postfix/relay_recipients
|
||||
15
|
||||
16 /etc/postfix/relay_recipients:
|
||||
17 user1@the.backed-up.domain.tld x
|
||||
18 user2@the.backed-up.domain.tld x
|
||||
19 . . .
|
||||
</pre>
|
||||
</blockquote>
|
||||
|
||||
|
@ -541,11 +569,11 @@ need the above, plus: </p>
|
|||
|
||||
<blockquote>
|
||||
<pre>
|
||||
18 /etc/postfix/main.cf:
|
||||
19 transport_maps = hash:/etc/postfix/transport
|
||||
20
|
||||
21 /etc/postfix/transport:
|
||||
22 the.backed-up.domain.tld relay:[their.mail.host.tld]
|
||||
20 /etc/postfix/main.cf:
|
||||
21 transport_maps = hash:/etc/postfix/transport
|
||||
22
|
||||
23 /etc/postfix/transport:
|
||||
24 the.backed-up.domain.tld relay:[their.mail.host.tld]
|
||||
</pre>
|
||||
</blockquote>
|
||||
|
||||
|
@ -559,15 +587,15 @@ need the above, plus: </p>
|
|||
|
||||
<li><p>Do not list the.backed-up.domain.tld in virtual_mailbox_domains.</p>
|
||||
|
||||
<li> <p> Lines 1-7: Forward mail from the Internet for
|
||||
<li> <p> Lines 1-9: Forward mail from the Internet for
|
||||
"the.backed-up.domain.tld" to the primary MX host for that domain.
|
||||
</p>
|
||||
|
||||
<li> <p> Line 10: This is a must if Postfix receives mail via a
|
||||
<li> <p> Line 12: This is a must if Postfix receives mail via a
|
||||
NAT relay or proxy that presents a different IP address to the
|
||||
world than the local machine. </p>
|
||||
|
||||
<li> <p> Lines 12-16: Define the list of valid addresses in the
|
||||
<li> <p> Lines 14-18: Define the list of valid addresses in the
|
||||
"the.backed-up.domain.tld" domain. This prevents your mail queue
|
||||
from filling up with undeliverable MAILER-DAEMON messages. If you
|
||||
can't maintain a list of valid recipients then you must specify
|
||||
|
@ -575,7 +603,7 @@ can't maintain a list of valid recipients then you must specify
|
|||
specify an "@the.backed-up.domain.tld x" wild-card in the
|
||||
relay_recipients table. </p>
|
||||
|
||||
<li> <p> Line 22: The <tt>[]</tt> forces Postfix to do no MX lookup. </p>
|
||||
<li> <p> Line 24: The <tt>[]</tt> forces Postfix to do no MX lookup. </p>
|
||||
|
||||
</ul>
|
||||
|
||||
|
|
|
@ -514,17 +514,13 @@ services that accept remote connections. </p>
|
|||
|
||||
<h2><a name="other"> Other measures to off-load zombies </a> </h2>
|
||||
|
||||
<p> OpenBSD <a href="http://www.openbsd.org/spamd/">spamd</a>
|
||||
implements a daemon that handles all connections from "new" clients.
|
||||
Only well-behaved mail clients are allowed to talk to the mail
|
||||
server. Other clients are tarpitted, and will never get a chance
|
||||
to affect mail server performance. </p>
|
||||
|
||||
<p> At some point in the future, Postfix may come with a simple
|
||||
front-end daemon that does basic greylisting and pipelining detection
|
||||
to keep zombies and other ratware away from Postfix itself. This
|
||||
would use the "pass" service type which has been available in
|
||||
stable Postfix releases since Postfix 2.5. </p>
|
||||
<p> The postscreen(8) daemon, introduced with Postfix 2.8, provides
|
||||
additional protection against mail server overload. One postscreen(8)
|
||||
process handles multiple inbound SMTP connections, and decides which
|
||||
clients may to talk to a Postfix SMTP server process. By keeping
|
||||
spambots away, postscreen(8) leaves more SMTP server processes
|
||||
available for legitimate clients, and delays the onset of server
|
||||
overload conditions. </p>
|
||||
|
||||
<h2><a name="credits"> Credits </a></h2>
|
||||
|
||||
|
|
|
@ -137,10 +137,8 @@ the DNS requests or replies. </p>
|
|||
|
||||
<li> <p> If the number of smtpd(8) processes has reached the process
|
||||
limit as specified in master.cf, new SMTP clients must wait until
|
||||
a process becomes available. Increase the number of processes if
|
||||
memory permits. See the instructions given under "<a
|
||||
href="#proc_limit">Tuning the number of Postfix processes</a>".
|
||||
</p>
|
||||
a process becomes available. See the STRESS_README and POSTSCREEN_README
|
||||
documents for measures that help to prevent SMTP server overload. </p>
|
||||
|
||||
</ul>
|
||||
|
||||
|
@ -391,7 +389,7 @@ default. They should be used only for transports that deliver mail
|
|||
to a small number of high volume domains. </p>
|
||||
|
||||
<p> A common situation where high concurrency is called for is on
|
||||
gateways relaying a high volume of mail from between the Internet
|
||||
gateways relaying a high volume of mail between the Internet
|
||||
and an intranet mail environment. Approximately half the mail
|
||||
(assuming equal volumes inbound and outbound) will be destined
|
||||
for the internal mail hubs. Since the internal mail hubs will be
|
||||
|
@ -441,7 +439,7 @@ recipients into smaller lists. Postfix will attempt to send multiple
|
|||
copies of the message in parallel. </p>
|
||||
|
||||
<p> IMPORTANT: Be careful when increasing the recipient limit per
|
||||
message delivery; some smtpd(8) servers abort the connection when they
|
||||
message delivery; some SMTP servers abort the connection when they
|
||||
run out of memory or when a hard recipient limit is reached, so
|
||||
that the message will never be delivered. </p>
|
||||
|
||||
|
@ -568,13 +566,13 @@ and so on: </p>
|
|||
</blockquote>
|
||||
|
||||
<p> You need to execute "postfix reload" to make the change effective.
|
||||
The limits are enforced by the Postfix master(8) daemon which does
|
||||
This limit is enforced by the Postfix master(8) daemon which does
|
||||
not automatically read main.cf when it changes. </p>
|
||||
|
||||
<p> You can override the process limit for specific Postfix daemons
|
||||
by editing the master.cf file. For example, if you do not wish to
|
||||
receive 100 SMTP messages at the same time, but do not want to
|
||||
change the process limits for local mail deliveries, you could
|
||||
change the process limits for other Postfix daemons, you could
|
||||
specify: </p>
|
||||
|
||||
<blockquote>
|
||||
|
|
|
@ -218,7 +218,7 @@ second form overrides them explicitly. The values shown are the
|
|||
recommended ones. </p>
|
||||
|
||||
<p> You can use the smtpd_command_filter feature to append XVERP
|
||||
to SMTP commands from legacy sofware. This requires Postfix 2.7
|
||||
to SMTP commands from legacy software. This requires Postfix 2.7
|
||||
or later. </p>
|
||||
|
||||
<blockquote>
|
||||
|
|
|
@ -357,7 +357,11 @@ in the virtual(8) manual page. </p>
|
|||
domains, non-UNIX accounts</a></h2>
|
||||
|
||||
<p> This is a variation on the Postfix virtual mailbox example.
|
||||
Again, every hosted address can have its own mailbox. </p>
|
||||
Again, every hosted address can have its own mailbox. However, most
|
||||
parameters that control the virtual(8) delivery agent are no longer
|
||||
applicable: only virtual_mailbox_domains and virtual_mailbox_maps
|
||||
stay in effect. These parameters are needed to reject mail for
|
||||
unknown recipients. </p>
|
||||
|
||||
<p> While non-Postfix software is being used for final delivery,
|
||||
some Postfix concepts are still needed in order to glue everything
|
||||
|
|
|
@ -18,9 +18,13 @@
|
|||
# \fBnewaliases\fR in order to rebuild the indexed file after
|
||||
# changing the Postfix alias database.
|
||||
#
|
||||
# The input and output file formats are expected to be compatible
|
||||
# with Sendmail version 8, and are expected to be suitable for the
|
||||
# use as NIS maps.
|
||||
# When the table is provided via other means such as NIS, LDAP
|
||||
# or SQL, the same lookups are done as for ordinary indexed files.
|
||||
#
|
||||
# Alternatively, the table can be provided as a regular-expression
|
||||
# map where patterns are given as regular expressions. In
|
||||
# this case, the lookups are done in a slightly different way
|
||||
# as described below under "REGULAR EXPRESSION TABLES".
|
||||
#
|
||||
# Users can control delivery of their own mail by setting
|
||||
# up \fB.forward\fR files in their home directory.
|
||||
|
@ -95,8 +99,28 @@
|
|||
# CASE FOLDING
|
||||
# .ad
|
||||
# .fi
|
||||
# The local(8) delivery agent always folds the search string
|
||||
# to lowercase before database lookup.
|
||||
# The local(8) delivery agent always folds the search string
|
||||
# to lowercase before database lookup.
|
||||
# REGULAR EXPRESSION TABLES
|
||||
# .ad
|
||||
# .fi
|
||||
# This section describes how the table lookups change when the table
|
||||
# is given in the form of regular expressions. For a description of
|
||||
# regular expression lookup table syntax, see \fBregexp_table\fR(5)
|
||||
# or \fBpcre_table\fR(5). NOTE: these formats do not use ":" at the
|
||||
# end of a pattern.
|
||||
#
|
||||
# Each regular expression is applied to the entire search
|
||||
# string. Thus, a search string \fIuser+foo\fR is not broken
|
||||
# up into \fIuser\fR and \fIfoo\fR.
|
||||
#
|
||||
# Regular expressions are applied in the order as specified
|
||||
# in the table, until a regular expression is found that
|
||||
# matches the search string.
|
||||
#
|
||||
# Lookup results are the same as with indexed file lookups.
|
||||
# For security reasons there is no support for \fB$1\fR,
|
||||
# \fB$2\fR etc. substring interpolation.
|
||||
# SECURITY
|
||||
# .ad
|
||||
# .fi
|
||||
|
|
|
@ -101,8 +101,9 @@
|
|||
# This document assumes that header and body_checks rules are specified
|
||||
# in the form of Postfix regular expression lookup tables. Usually the
|
||||
# best performance is obtained with \fBpcre\fR (Perl Compatible Regular
|
||||
# Expression) tables, but the slower \fBregexp\fR (POSIX regular
|
||||
# expressions) support is more widely available.
|
||||
# Expression) tables. The \fBregexp\fR (POSIX regular
|
||||
# expressions) tables are usually slower, but more widely
|
||||
# available.
|
||||
# Use the command "\fBpostconf -m\fR" to find out what lookup table
|
||||
# types your Postfix system supports.
|
||||
#
|
||||
|
|
|
@ -29,17 +29,17 @@
|
|||
# .fi
|
||||
# The general format of the master.cf file is as follows:
|
||||
# .IP \(bu
|
||||
# Each logical line defines a single Postfix service.
|
||||
# Each service is identified by its name and type as described
|
||||
# below. When multiple lines specify the same service name
|
||||
# and type, only the last one is remembered. Otherwise, the
|
||||
# order of master.cf service definitions does not matter.
|
||||
# .IP \(bu
|
||||
# Empty lines and whitespace-only lines are ignored, as are
|
||||
# lines whose first non-whitespace character is a `#'.
|
||||
# .IP \(bu
|
||||
# A logical line starts with non-whitespace text. A line that
|
||||
# starts with whitespace continues a logical line.
|
||||
# .IP \(bu
|
||||
# Each logical line defines a single Postfix service.
|
||||
# Each service is identified by its name and type as described
|
||||
# below. When multiple lines specify the same service name
|
||||
# and type, only the last one is remembered. Otherwise, the
|
||||
# order of master.cf service definitions does not matter.
|
||||
# .PP
|
||||
# Each logical line consists of eight fields separated by
|
||||
# whitespace. These are described below in the order as they
|
||||
|
@ -181,11 +181,19 @@
|
|||
# etc., just like in main.cf. See \fBpostconf\fR(5) for
|
||||
# syntax.
|
||||
# .sp
|
||||
# NOTE 1: do not specify whitespace around the "=". In parameter
|
||||
# values, either avoid whitespace altogether, use commas
|
||||
# instead of spaces, or consider overrides like "-o
|
||||
# name=$override_parameter" with $override_parameter set in
|
||||
# main.cf.
|
||||
# NOTE 1: do not specify whitespace around the "=" or in
|
||||
# parameter values. To specify a parameter value that contains
|
||||
# whitespace, use commas instead of spaces, or specify the
|
||||
# value in main.cf. Example:
|
||||
# .sp
|
||||
# .nf
|
||||
# /etc/postfix/master.cf:
|
||||
# submission inet .... smtpd
|
||||
# -o smtpd_mumble=$submission_mumble
|
||||
# .sp
|
||||
# /etc/postfix/main.cf
|
||||
# submission_mumble = text with whitespace...
|
||||
# .fi
|
||||
# .sp
|
||||
# NOTE 2: Over-zealous use of parameter overrides makes the
|
||||
# Postfix configuration hard to understand and maintain. At
|
||||
|
|
|
@ -66,21 +66,25 @@
|
|||
#
|
||||
# Access to remote proxymap servers is under development.
|
||||
#
|
||||
# NOTE 1: When using memcache with persistent backup as
|
||||
# \fBpostscreen\fR(8) or \fBverify\fR(8) cache, disable
|
||||
# automatic cache cleanup (*_cache_cleanup_interval = 0) in
|
||||
# all Postfix instances except for one instance that will be
|
||||
# responsible for cache cleanup.
|
||||
# NOTE 1: When sharing a persistent \fBpostscreen\fR(8) or
|
||||
# \fBverify\fR(8) cache, disable automatic cache cleanup (set
|
||||
# *_cache_cleanup_interval = 0) except with one Postfix
|
||||
# instance that will be responsible for cache cleanup.
|
||||
#
|
||||
# NOTE 2: In the case of a proxied backup database, the full
|
||||
# backup database
|
||||
# name (including the "proxy:" prefix) must be specified in
|
||||
# the proxymap server's proxy_read_maps or proxy_write_maps
|
||||
# setting (depending on whether the access is read-only or
|
||||
# read-write).
|
||||
# NOTE 2: When different tables share the same memcache
|
||||
# database, each table should use the \fBkey_format\fR feature
|
||||
# (see below) to prepend its own unique string to the lookup
|
||||
# key. Otherwise, automatic \fBpostscreen\fR(8) or \fBverify\fR(8)
|
||||
# cache cleanup may not work.
|
||||
#
|
||||
# NOTE 3: When the backup database is accessed with "proxy:"
|
||||
# lookups, the full backup database name (including the
|
||||
# "proxy:" prefix) must be specified in the proxymap server's
|
||||
# proxy_read_maps or proxy_write_maps setting (depending on
|
||||
# whether the access is read-only or read-write).
|
||||
# .IP "\fBflags (default: 0)\fR"
|
||||
# Optional flags that should be stored along with a memcache
|
||||
# update.
|
||||
# update. The flags are ignored when looking up information.
|
||||
# .IP "\fBttl (default: 3600)\fR"
|
||||
# The expiration time in seconds of memcache updates.
|
||||
#
|
||||
|
@ -103,17 +107,20 @@
|
|||
# By default, these are the same as the lookup and update
|
||||
# keys that are given to the Postfix memcache client.
|
||||
#
|
||||
# NOTE: The \fBkey_format\fR feature is not used for \fBbackup\fR
|
||||
# NOTE 1: The \fBkey_format\fR feature is not used for \fBbackup\fR
|
||||
# database requests.
|
||||
#
|
||||
# When the same memcache database is used to cache information
|
||||
# from multiple tables, you can use the \fBkey_format\fR
|
||||
# feature to avoid name collisions by prepending a fixed
|
||||
# string. Examples:
|
||||
# NOTE 2: When different tables share the same memcache
|
||||
# database, each table should prepend its own unique string
|
||||
# to the lookup key. Otherwise, automatic \fBpostscreen\fR(8)
|
||||
# or \fBverify\fR(8) cache cleanup may not work.
|
||||
#
|
||||
# Examples:
|
||||
#
|
||||
# .nf
|
||||
# key_format = aliases:%s
|
||||
# key_format = access:%s
|
||||
# key_format = verify:%s
|
||||
# key_format = postscreen:%s
|
||||
# .fi
|
||||
#
|
||||
# The \fBkey_format\fR parameter supports the following '%'
|
||||
|
|
|
@ -25,9 +25,9 @@ $(PROG): $(OBJS) $(LIBS)
|
|||
$(CC) $(CFLAGS) -o $@ $(OBJS) $(LIBS) $(SYSLIBS)
|
||||
|
||||
# Eliminate dependency on installed Postfix.
|
||||
../../conf/bounce.cf.default: template_test.ref annotate.pl
|
||||
../../conf/bounce.cf.default: template_test.ref annotate.sh
|
||||
rm -f $@
|
||||
perl annotate.pl <template_test.ref >$@
|
||||
./annotate.sh <template_test.ref >$@
|
||||
|
||||
main.cf:
|
||||
echo queue_directory=. >main.cf
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue