后缀:警告:连接到 127.0.0.1:10023:连接被拒绝,未接收来自外部域的邮件

Dav*_*sar 3 linux ubuntu smtp postfix ubuntu-12.04

我有一个 Postfix 服务器运行了很短的时间,它可以工作,但我今天不得不重新启动服务器,而且我不再收到来自外部来源的电子邮件:

Jan 23 01:34:44 myservername postfix/smtpd[1055]: connect from db3ehsobe006.messaging.microsoft.com[213.199.154.144]
Jan 23 01:34:45 myservername postfix/smtpd[1055]: warning: connect to 127.0.0.1:10023: Connection refused
Jan 23 01:34:45 myservername postfix/smtpd[1055]: warning: problem talking to server 127.0.0.1:10023: Connection refused
Jan 23 01:34:46 myservername postfix/smtpd[1055]: warning: connect to 127.0.0.1:10023: Connection refused
Jan 23 01:34:46 myservername postfix/smtpd[1055]: warning: problem talking to server 127.0.0.1:10023: Connection refused
Jan 23 01:34:46 myservername postfix/smtpd[1055]: NOQUEUE: reject: RCPT from db3ehsobe006.messaging.microsoft.com[213.199.154.144]: 451 4.3.5 Server configuration problem; from=<MyKnownWorking@EmailAccountOutside> to=<MyAccount@MyDomain.com> proto=ESMTP helo=<db3outboundpool.messaging.microsoft.com>
Run Code Online (Sandbox Code Playgroud)

服务器正在侦听port 10023,但我注意到它仅通过 IPv6 侦听:

> sudo netstat -a | grep 10023
tcp6       0      0 ip6-localhost:10023     [::]:*                  LISTEN
Run Code Online (Sandbox Code Playgroud)

我没有防火墙规则可以拒绝特定端口,地狱,我继续刷新规则集只是为了确认它。这是我的 postconf -n 的输出(我编辑了我的域名而不是“mydomain.com”:

> sudo postconf -n
alias_database = hash:/etc/aliases
alias_maps = hash:/etc/aliases
    append_dot_mydomain = no
biff = no
broken_sasl_auth_clients = yes
config_directory = /etc/postfix
content_filter = amavis:[127.0.0.1]:10024
disable_vrfy_command = yes
inet_interfaces = all
inet_protocols = ipv4
mailbox_size_limit = 0
message_size_limit = 0
mydestination = localhost.$mydomain, localhost, mail.mydomain.com, servername.mydomain.com
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
mynetworks_style = host
myorigin = /etc/mailname
readme_directory = no
receive_override_options = no_address_mappings
recipient_delimiter = +
relayhost =
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
smtp_use_tls = yes
smtpd_banner = mail.mydomain.com ESMTP $mail_name
smtpd_delay_reject = yes
smtpd_helo_required = yes
smtpd_recipient_restrictions = reject_unauth_pipelining, permit_mynetworks, permit_sasl_authenticated, reject_non_fqdn_recipient, reject_unknown_recipient_domain, reject_unauth_destination, check_policy_service inet:127.0.0.1:10023, permit
smtpd_sasl_auth_enable = yes
smtpd_sasl_local_domain =
smtpd_sasl_security_options = noanonymous
smtpd_sender_restrictions = permit_sasl_authenticated, permit_mynetworks, warn_if_reject reject_non_fqdn_sender, reject_unknown_sender_domain, reject_unauth_pipelining, permit
smtpd_tls_cert_file = /etc/ssl/private/mail.mydomain.com.crt
smtpd_tls_key_file = /etc/ssl/private/mail.mydomain.com.key
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtpd_use_tls = yes
virtual_alias_maps = mysql:/etc/postfix/maps/alias.cf
virtual_gid_maps = static:5000
virtual_mailbox_base = /var/spool/mail/virtual
virtual_mailbox_domains = mysql:/etc/postfix/maps/domain.cf
virtual_mailbox_limit = 0
virtual_mailbox_maps = mysql:/etc/postfix/maps/user.cf
virtual_uid_maps = static:5000
Run Code Online (Sandbox Code Playgroud)

如您所见,我什至试图通过 inet_protocols 指定它侦听 ipv4 连接。我已经尝试过使用和不使用该命令。

任何故障排除帮助将不胜感激!当然,如果您发现我的配置中的任何内容非常愚蠢,我也不会受到建议或批评。

Tim*_*ski 5

您上次对smtpd_recipient_restrictions 的检查使用策略服务来验证收件人。通常这是一个 postgrey 服务,并且似乎在 Postfix 连接到它时存在一些问题。

smtpd_recipient_restrictions = ...,check_policy_service inet:127.0.0.1:10023, permit
Run Code Online (Sandbox Code Playgroud)

如果您从 smtpd_recipient_restrictions 中删除check_policy_service inet:127.0.0.1:10023,您应该消除错误,但您仍然应该确定将在此处运行的 postgrey 或其他服务会发生什么。

在 Unbuntu 系统上检查 Postgrey

通常,postgrey 默认配置将在端口 10023 上侦听连接并确定是否应该允许或拒绝它们。您可以检查 Unbutu 服务器上的某些部分以查看是否已安装...

  • 你有/etc/default/postgrey文件吗?这是基本的配置文件。
  • 你有/etc/postgrey文件夹吗?这是您可以将元素列入白名单的地方。
  • 当你运行时> which postgrey它会找到一个二进制文件吗?我的是在/usr/sbin/postgrey.
  • 您是否有/etc/init.d/postgrey用于在启动时启动它的脚本?这是 Ubuntu 守护进程的典型位置。

这些只会为您提供有关此服务器是否已postgrey配置过的一些线索。如果进程在您的服务器上运行不正常,您将需要进一步查找故障排除。


小智 5

面对同样的问题,尝试了很多方法,如bshea提出的,谷歌搜索和尝试。
基础: Ubuntu 14.04.2 LTS,postgrey服务启动,但没有出现在进程列表中,即服务启动但悄悄退出。

找到更改线路的解决方案/etc/default/postgrey

改变这一行:

POSTGREY_OPTS="--inet=10023"
Run Code Online (Sandbox Code Playgroud)

对此

POSTGREY_OPTS="--inet=127.0.0.1:10023"
Run Code Online (Sandbox Code Playgroud)

无需使用端口、协议,也无需降级版本。无法解释原因,但服务在ps -aux,一切正常。