我需要使用端口25在本地网络(nagios、ups等)上发送一些通知,而无需sasl身份验证。
所以我必须阻止网络访问才能使用端口25。
我添加了smtp主机及其工作,
smtpd_client_restrictions=permit_mynetworks,reject但是当某人从外部发送电子邮件时(587/465)会出错
Client host rejected: Access denied为什么?
也许有一种不同的方法
# ==========================================================================
# service type private unpriv chroot wakeup maxproc command + args
# (yes) (yes) (no) (never) (100)
# ==========================================================================
#smtp inet n - y - - smtpd
#smtp inet n - n - 1 postscreen
#smtpd pass - - n - - smtpd
#dnsblog unix - - n - 0 dnsblog
#tlsproxy unix - - n - 0 tlsproxy
smtp inet n - y - - smtpd
-o syslog_name=postfix/smtp
# -o smtpd_tls_wrappermode=yes
# -o smtpd_sasl_auth_enable=yes
# -o smtpd_reject_unlisted_recipient=no
-o smtpd_client_restrictions=permit_mynetworks,reject
# -o smtpd_helo_restrictions=$mua_helo_restrictions
# -o smtpd_sender_restrictions=$mua_sender_restrictions
# -o smtpd_recipient_restrictions=permit_mynetworks,reject_unauth_destination
# -o smtpd_relay_restrictions=permit_mynetworks,defer_unauth_destination
# -o smtpd_recipient_restrictions=
# -o smtpd_relay_restrictions=permit_sasl_authenticated,reject
# -o milter_macro_daemon_name=ORIGINATING
# -o smtpd_sasl_type=dovecot
# -o smtpd_sasl_path=private/auth
submission inet n - y - - smtpd
-o syslog_name=postfix/submission
-o smtpd_tls_security_level=encrypt
-o smtpd_sasl_auth_enable=yes
-o smtpd_tls_auth_only=yes
-o smtpd_reject_unlisted_recipient=no
-o smtpd_client_restrictions=permit_sasl_authenticated,reject
# -o smtpd_helo_restrictions=
# -o smtpd_sender_restrictions=$mua_sender_restrictions
-o smtpd_recipient_restrictions=permit_sasl_authenticated,permit_mynetworks,reject_unauth_destination
-o smtpd_relay_restrictions=permit_sasl_authenticated,permit_mynetworks,defer_unauth_destination
# -o smtpd_recipient_restrictions=
# -o smtpd_relay_restrictions=permit_sasl_authenticated,reject
-o milter_macro_daemon_name=ORIGINATING
-o smtpd_sasl_type=dovecot
-o smtpd_sasl_path=private/auth
smtps inet n - y - - smtpd
-o syslog_name=postfix/smtps
-o smtpd_tls_wrappermode=yes
-o smtpd_sasl_auth_enable=yes
-o smtpd_reject_unlisted_recipient=no
-o smtpd_client_restrictions=permit_sasl_authenticated,reject
# -o smtpd_helo_restrictions=$mua_helo_restrictions
# -o smtpd_sender_restrictions=$mua_sender_restrictions
-o smtpd_recipient_restrictions=permit_sasl_authenticated,permit_mynetworks,reject_unauth_destination
-o smtpd_relay_restrictions=permit_sasl_authenticated,permit_mynetworks,defer_unauth_destination
# - smtpd_recipient_restrictions=
# -o smtpd_relay_restrictions=permit_sasl_authenticated,reject
# -o milter_macro_daemon_name=ORIGINATING
-o smtpd_sasl_type=dovecot
-o smtpd_sasl_path=private/auth
#628 inet n - n - - qmqpd
pickup unix n - n 60 1 pickup
cleanup unix n - n - 0 cleanup
qmgr unix n - n 300 1 qmgr
#qmgr unix n - n 300 1 oqmgr
tlsmgr unix - - n 1000? 1 tlsmgr
rewrite unix - - n - - trivial-rewrite
bounce unix - - n - 0 bounce
defer unix - - n - 0 bounce
trace unix - - n - 0 bounce
verify unix - - n - 1 verify
flush unix n - n 1000? 0 flush
proxymap unix - - n - - proxymap
proxywrite unix - - n - 1 proxymap
smtp unix - - n - - smtp
relay unix - - n - - smtp
-o syslog_name=postfix/$service_name
# -o smtp_helo_timeout=5 -o smtp_connect_timeout=5
showq unix n - n - - showq
error unix - - n - - error
retry unix - - n - - error
discard unix - - n - - discard
local unix - n n - - local
virtual unix - n n - - virtual
lmtp unix - - n - - lmtp
anvil unix - - n - 1 anvil
scache unix - - n - 1 scache
postlog unix-dgram n - n - 1 postlogd
#发布于 2021-02-10 12:08:53
标准的后缀配置既允许从外部接收邮件,也可以通过端口25从本地“受信任的”主机/网络发送邮件,而无需身份验证。您不需要处理smtpd_client_restrictions,默认设置是相当合理的。所有smtpd_*_restrictions的默认值均为空,但smtpd_recipient_restrictions除外,即:
smtpd_recipient_restrictions = permit_mynetworks, reject_unauth_destination这正是你所需要的。permit_mynetworks允许来自由mynetworks参数指定的主机的邮件,而rejest_unauth_destination拒绝所有收件人不是本地的邮件(即收件人域匹配mydestination、inet_interfaces、proxy_interfaces、virtual_alias_domains、virtual_mailbox_domains或relay_domains)。
在像您这样的简单情况下,您所关心的唯一参数是mydestination,它应该列出服务器可以接收邮件的所有可能的名称,以及mynetworks,它们应该包括允许不经身份验证发送邮件的所有主机/网络的IP地址。
我建议您开始从非常简单的配置后缀,但工作配置,并逐步添加更复杂的事情。一个很好的起点是http://www.postfix.org/STANDARD_配置_README.html,它显示了最典型的配置。在您的例子中,“本地网络上的后缀”可能会让您感兴趣。
而且,最好不要使用太多不需要的master.cf参数来扰乱您的-o。相反,main.cf是放置您的配置的预定位置。在简单的后缀实例中,通常可以在工厂默认情况下保留master.cf。
另外,有用的命令是postconf -d (列出所有后缀配置参数的default值)和postconf -n (D21列出您explicitly在main.cf中指定的配置参数(它们可能与默认值相同或不同)。
https://serverfault.com/questions/1053084
复制相似问题