工作电邮服务器突然中断

好吧,这个服务器的背景是:我在AWS上运行的Ubuntu 14.04服务器上安装了postfix / dovecot / spamassassin / opendkim。 拉了一下头发后,一切都奏效了。 为什么,噢,为什么呢,我不是把这个该死的东西放在一边 – 呃,我们永远不会知道这个答案。 我升级到Ubuntu 16.04,升级后,一切正常工作! 为了防万一,我做了一个备份映像,但是为了启动和运行,只需要在一个configuration文件中进行一次更改。

然后,出于一些莫名其妙的原因,我的住宅知识产权发生了变化(应该是静态的,我已经拥有相同的知识产权一年半了)。

现在,当我尝试从Thunderbird发送邮件时,我在/var/log/mail.log中获得了这个信息:

Sep 4 14:03:19 ip-xx-59-35 postfix/master[2746]: reload -- version 3.1.0, configuration /etc/postfix Sep 4 14:03:30 ip-xx-59-35 postfix/smtpd[2933]: warning: dict_nis_init: NIS domain name not set - NIS lookups disabled Sep 4 14:03:30 ip-xx-59-35 postfix/smtpd[2933]: connect from unknown[xxx61] Sep 4 14:03:30 ip-xx-59-35 postfix/smtpd[2933]: warning: connect to Milter service unix:/opendkim/opendkim.sock: Connection refused Sep 4 14:03:30 ip-xx-59-35 postfix/smtpd[2933]: Anonymous TLS connection established from unknown[xxx61]: TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits) Sep 4 14:03:30 ip-xx-59-35 postfix/smtpd[2933]: NOQUEUE: reject: RCPT from unknown[xxx61]: 550 5.7.25 Client host rejected: cannot find your hostname, [xxx61]; from=<blanked> to=<blanked> proto=ESMTP helo=<[192.168.0.10]> Sep 4 14:03:32 ip-xx-59-35 postfix/smtpd[2933]: disconnect from unknown[xxx61] ehlo=2 starttls=1 auth=1 mail=1 rcpt=0/1 quit=1 commands=6/7 

我的IP甚至在一个configuration文件中的唯一地方是/etc/postfix/main.cf,所以我去了那里并更新它(到xxx0 / 24,就像以前一样)。 重新启动后,仍然无法正常工作。 我也非常困惑,为什么opendkim拒绝通过套接字连接…

如果有人能提供一些见解,将非常感激。 我可以根据需要提供更多信息。 我最初遵循这个由四部分组成的电子邮件服务器教程。 我的configuration文件几乎与本教程第2部分中的相同。

编辑:我开始回顾上周的日志(在这个问题开始之前)。 opendkim套接字已经拒绝了一段时间的连接,但邮件服务器仍在工作,而这种情况正在发生。 当我的笔记本电脑连接到服务器发送邮件时,我注意到日志中的一个主要区别。 以下是IP更改前的样子:

 Aug 29 17:03:43 ip-35 postfix/smtpd[22986]: warning: dict_nis_init: NIS domain name not set - NIS lookups disabled Aug 29 17:03:43 ip-35 postfix/smtpd[22986]: connect from CPE00fc8d374753-CM00fc8d374750.cpe.net.cable.rogers.com[old.ip.138.5] Aug 29 17:03:43 ip-35 postfix/smtpd[22986]: warning: connect to Milter service unix:/opendkim/opendkim.sock: Connection refused Aug 29 17:03:43 ip-35 postfix/smtpd[22986]: Anonymous TLS connection established from **cpe00fc8d374753-cm00fc8d374750.cpe.net.cable.rogers.com**[old.ip.138.5]: TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits) Aug 29 17:03:43 ip-35 postfix/smtpd[22986]: 8931F80078: client=CPE00fc8d374753-CM00fc8d374750.cpe.net.cable.rogers.com[old.ip.138.5], sasl_method=PLAIN, [email protected] 

注意在IP之前有一个主机名? 现在丢失了,它发送给Thunderbird的错误是它找不到我的主机名。 我相信build立服务器这是我打开的安全选项之一。 我真的很难在如何解决它,而不会影响邮件服务器的安全性。

另外,opendkim的东西很奇怪。 OpenDkim是切换到16.04之后我必须改变的一件事 – 由于切换到systemctl(systemd),它已经为opendkim服务创build了一个新文件。 出于某种原因,opendkim正在寻找一个不同的地方,因为它的configuration文件,所以我只是添加一个参数,该.service文件指向它的configuration文件/etc/opendkim.conf …它工作正常。 我专门检查了一下,确保它能够正常工作。 所以我真的在挠头。

问题的确是我的ISP,出于某种奇怪的原因,当我发送电子邮件时,不会将我的IP和主机名一起发送到我的邮件服务器。 所以,由于/etc/postfix/main.cf中的smtpd_sender_restrictions和smtpd_recipient_restictions,它拒绝未知的主机名。

它看起来像这样:

 smtpd_recipient_restrictions = reject_unknown_client_hostname, reject_unknown_sender_domain, reject_unknown_recipient_domain, reject_unauth_pipelining, permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination, reject_invalid_hostname, reject_non_fqdn_sender smtpd_sender_restrictions = reject_unknown_sender_domain, reject_sender_login_mismatch 

你会注意到,permit_mynetworks reject_unknown_client_hostname 之后 。 要解决这个问题,我只需要将permit_mynetworks移动到列表的前面,并将其添加到sender_restrictions列表中。 在variablesmynetworks中,我放入了特定的IP而不是以.0结尾,以避免其他人能够发送(尽pipe他们仍然需要我的密码)。 我不确定是否会有重大的安全问题,如果有人能find更好的解决方法,我将不胜感激!

opendkim的东西还没有工作,但这是一个单独的问题。