Postfix - SMTP 端口 25

Postfix - SMTP 端口 25

我需要使用端口 25 在本地网络(nagios、ups 等)上发送一些无需 sasl 身份验证的通知。

所以我必须阻止网络访问以使用端口 25

我已将其添加到 smtp master 并且正在运行,

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
#

答案1

标准 Postfix 配置允许从外部接收邮件以及通过端口 25 从本地“受信任”主机/网络发送邮件而无需身份验证。您无需弄乱smtpd_client_restrictions,默认值非常合理。smtpd_*_restrictions除了 之外,所有 的默认值均为空smtpd_recipient_restrictions,即:

smtpd_recipient_restrictions = permit_mynetworks, reject_unauth_destination

这正是您需要的。permit_mynetworks允许来自参数指定的主机的邮件mynetworks,并rejest_unauth_destination拒绝所有收件人不是本地的邮件(即收件人域匹配mydestinationinet_interfacesproxy_interfacesvirtual_alias_domainsvirtual_mailbox_domainsrelay_domains

在像您这样的简单情况下,您唯一需要关心的参数是mydestination列出您的服务器可以接收邮件的所有可能的名称,以及mynetworks包括允许无需身份验证即可发送邮件的所有主机/网络的 IP 地址。

我建议你从非常简单但有效的配置开始配置 Postfix,然后逐渐添加更复杂的东西。一个好的起点是http://www.postfix.org/STANDARD_CONFIGURATION_README.html显示了最典型的配置。对于你的情况,“本地网络上的 Postfix”可能是你感兴趣的。

master.cf而且,不要用太多不需要的参数弄乱您的设置,这是很好的做法-o。相反,main.cf是放置配置的预期位置。在简单的 Postfix 实例中,master.cf通常可以保留出厂默认设置。

另外有用的命令是postconf -d列出默认值所有 Postfix 配置参数,并postconf -n列出您需要的配置参数明确指定main.cf它们可能与默认值相同或不同)。

相关内容