【问题标题】:Postfix - connect to 127.0.0.1[127.0.0.1]:10024: Connection refused)后缀 - 连​​接到 127.0.0.1[127.0.0.1]:10024:连接被拒绝)
【发布时间】:2015-08-01 16:18:29
【问题描述】:

我经常遇到 postfix 问题(在 Debian Squeeze 上,还安装了 amavisd-new 和 fail2ban):突然之间,通常是在晚上(但并非总是如此),邮件停止投递并且队列已满。日志显示了一堆这种风格的条目:

May 18 19:54:16 ks4000003 postfix/error[6889]: 376352016039: to=<info@xxxxxxx>, relay=none, delay=0.62, delays=0.58/0.01/0/0.04, dsn=4.4.1, status=deferred (delivery temporarily suspended: connect to 127.0.0.1[127.0.0.1]:10024: Connection refused)

一旦我重新启动服务器,它就会工作(并且队列已全部清除)。直到下一次它仍然没有任何问题(通常每 1-2 周一次,但最近每天早上我都必须重新启动服务器)。

对此的任何想法将不胜感激。我应该提到我真的是服务器管理的新手;我在 google/stackoverflow 上搜索了类似的问题,但找不到真正类似的问题。

我的后缀配置:

alias_database = hash:/etc/aliases
alias_maps = hash:/etc/aliases
always_add_missing_headers = yes
append_dot_mydomain = no
biff = no
body_checks = regexp:/etc/postfix/body_checks
broken_sasl_auth_clients = yes
config_directory = /etc/postfix
content_filter = amavis:[127.0.0.1]:10024
header_checks = regexp:/etc/postfix/header_checks
html_directory = /usr/share/doc/postfix/html
inet_interfaces = all
mailbox_size_limit = 0
message_size_limit = 0
mime_header_checks = regexp:/etc/postfix/mime_header_checks
mydestination = ks4000003.ip-198-245-60.net, localhost, localhost.localdomain
myhostname = ks4000003.ip-198-245-60.net
mynetworks = 127.0.0.0/8 [::1]/128
myorigin = /etc/mailname
nested_header_checks = regexp:/etc/postfix/nested_header_checks
proxy_read_maps = $local_recipient_maps $mydestination $virtual_alias_maps $virtual_alias_domains $virtual_mailbox_maps $virtual_mailbox_domains $relay_recipient_maps $relay_domains $canonical_maps $sender_canonical_maps $recipient_canonical_maps $relocated_maps $transport_maps $mynetworks $virtual_mailbox_limit_maps
readme_directory = /usr/share/doc/postfix
receive_override_options = no_address_mappings
recipient_delimiter = +
relay_domains = mysql:/etc/postfix/mysql-virtual_relaydomains.cf
relay_recipient_maps = mysql:/etc/postfix/mysql-virtual_relayrecipientmaps.cf
relayhost = 
smtp_destination_concurrency_limit = 5
smtp_destination_rate_delay = 1s
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
smtpd_banner = $myhostname ESMTP $mail_name (Debian/GNU)
smtpd_client_restrictions = permit_mynetworks, permit_sasl_authenticated, check_client_access mysql:/etc/postfix/mysql-virtual_client.cf
smtpd_error_sleep_time = 0
smtpd_recipient_restrictions = check_client_access hash:/etc/postfix/rbl_whitelist, permit_mynetworks, permit_sasl_authenticated, check_recipient_access mysql:/etc/postfix/mysql-virtual_recipient.cf, reject_unknown_recipient_domain, reject_unauth_destination, reject_unverified_sender, reject_unauth_destination,reject_unlisted_recipient, reject_invalid_hostname, reject_non_fqdn_sender, reject_rbl_client cbl.abuseat.org, reject_rbl_client bl.spamcop.net, reject_rbl_client sbl.spamhaus.org, reject_rbl_client truncate.gbudb.net
smtpd_sasl_auth_enable = yes
smtpd_sasl_authenticated_header = yes
smtpd_sasl_path = private/auth
smtpd_sasl_security_options = noanonymous
smtpd_sasl_type = dovecot
smtpd_sender_restrictions = check_sender_access hash:/etc/postfix/sender_access mysql:/etc/postfix/mysql-virtual_sender.cf reject_non_fqdn_sender reject_unknown_sender_domain
smtpd_tls_cert_file = /etc/postfix/smtpd.cert
smtpd_tls_key_file = /etc/postfix/smtpd.key
smtpd_tls_security_level = may
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtpd_use_tls = yes
transport_maps = proxy:mysql:/etc/postfix/mysql-virtual_transports.cf
unknown_local_recipient_reject_code = 550
virtual_alias_domains = 
virtual_alias_maps = proxy:mysql:/etc/postfix/mysql-virtual_forwardings.cf, mysql:/etc/postfix/mysql-virtual_email2email.cf
virtual_gid_maps = static:5000
virtual_mailbox_base = /var/vmail
virtual_mailbox_domains = proxy:mysql:/etc/postfix/mysql-virtual_domains.cf
virtual_mailbox_maps = proxy:mysql:/etc/postfix/mysql-virtual_mailboxes.cf
virtual_transport = dovecot
virtual_uid_maps = static:5000

【问题讨论】:

  • 检查你的后缀的错误日志。 /var/log/mail 左右;-)。您的发件人进程无法连接到 postfix 服务。也许错误日志会告诉你原因。
  • 我写的错误来自邮件日志...我在日志中看到一个奇怪的错误,关于postfix无法短暂连接到mysql,但我不确定它是否相关。之后网站仍然运行良好...
  • 我已经看到问题出在连接到端口 10024 上。看看 postfix 配置,啊 amavis 内容过滤器。我看起来您的 amavis 进程挂断了,或者至少不再接受任何连接。我不知道在哪里可以找到 amavis 日志。也可能在邮件日志中。 forums.fedoraforum.org/showthread.php?t=170210
  • 我有一个 amavisd-new 故障(虽然我无法理解)和数据库故障......很奇怪......这是它的摘录:pastebin.com/rZ5rAHQS
  • 朋友建议我检查/etc/init.d/.depend.start 目标,当再次出现问题时,我将每个服务一个一个重新初始化,测试邮件服务器是否开始动作在每次重新启动之间确定,以便确定哪个服务导致了这个问题(如果它不是直接 amavisd-new)。

标签: linux debian postfix-mta


【解决方案1】:

首先是amavis问题: 根据您 pastebin 的说法:qmgr 向 amavis 请求某些内容并得到它不理解的响应。我假设 qmgr 向 amavis 发送了一封应该检查的邮件。 amavis 已关闭或邮件导致 amavis 产生损坏的响应。但是你怎么能检查这个呢?

最好的方法是停止 amavis 服务并使用

从控制台启动它
# amavisd debug

然后amavis会输出到控制台。 这是一个可能有帮助的链接:http://www.amavis.org/#faq

然后是数据库问题:

根据您的 pastebin: dovecot 和 postfix 尝试连接到 mysql 数据库。 postfix 使用地址为 localhost 或 127.0.0.1 的 tcp 套接字,dovecot 使用 unix 套接字。如果您没有更改 mysql 端口的配置,则应该在地址 127.0.0.1:3306 处有一个侦听套接字。 侦听地址可能是 IPv6 地址,例如 ::1:3306

您可以通过以下方式验证:netstat -ltn

如果您配置了不同的端口,则此端口必须显示在 netstat 输出中。您可能已将 mysql 配置为您的传出 IP 地址。然后你会找到类似 198.245.60.7:3306 的东西。在这种情况下,无法访问 127.0.0.1:3306。

“后缀”错误消息表示该端口没有侦听器,或者您无权访问。 “dovecot”消息表明您没有向 mysql 服务器提供密码或密码错误,因此它不会对 dovecot 进行身份验证。请检查配置。

【讨论】:

  • 好的,所以我猜porte由于某种原因关闭了。感谢您非常有帮助的回答。由于它包含许多有助于解决此问题的提示,因此我将其标记为已接受的答案。如果我发现有用的东西,我会在这里跟进。
  • 谢谢。我想知道你的发现。顺便说一句:如果您将 mysql 绑定到外部地址,则应将其重新分配给 localhost。如果您的防火墙不阻止相应的。端口,甚至脚本小子也可以进入您的数据库。
  • 对不起,我应该警告你不要发布你的 netstat 输出。黑客可以使用它来攻击您的服务。例如,他会看到,有四个网卡,并且有地址和开放的 dns 端口。如果可能,请从 pastebin 中删除它,顺便说一下,输出对我来说似乎没问题。是的,我认为您的问题不应该被否决。因此+1
  • 非常感谢 :) 我想我公开输出是愚蠢的:/除此之外我还能做些什么来避免攻击?
  • 我可以警告你,因为我自己犯了这些错误并从中吸取了教训。我不认为我们是愚蠢的。你只会从错误中学习。就像 Jeri 所说的“失败并且经常失败”。 youtube.com/watch?v=xhQ7d3BK3KQ(我爱那个女人;她的地窖里有一个电子显微镜。;-))
猜你喜欢
  • 2017-05-23
  • 1970-01-01
  • 1970-01-01
  • 2015-07-31
  • 1970-01-01
  • 2021-01-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多