我运行 Monit 来检查 Debian 服务器上的进程。它对所有其他服务(Apache SSL、Postfix、SSH 等)都正常运行,但 Monit 对 Dovecot 的检查却屡屡失败。我认为这可能是在安装一些软件包更新后开始的,但我不确定是什么时候。
由于电子邮件仍在运行,因此 Dovecot 客户端连接工作正常。我尝试使用 open_ssl s_client 进行测试,SSLv3、TLS1.1 和 TLS1.2 似乎也一切正常。
/etc/monit/monitrc 中的 Dovecot 部分:
check process dovecot with pidfile /run/dovecot/master.pid start program = "/usr/sbin/service dovecot start" stop program = "/usr/sbin/service dovecot stop" if failed port 993 type tcpssl sslauto protocol imap then unmonitor
当我启用 Dovecot 监控时,我在 /var/log/monit 中收到以下消息:
'dovecot' failed protocol test [IMAP] at INET[localhost:993] via TCPSSL -- IMAP: error receiving data -- Success
我认为这可能是这样的https://secure.kitserve.org.uk/content/ssl-tls-version-conflict-zarafa-monit但我尝试用以下所有选项依次替换“sslauto”,但没有成功:SSLV2|SSLV3|TLSV1|TLSV11|TLSV12
我一直参考的 Monit 文档在这里: http://mmonit.com/monit/documentation/#connection_testing
提前致谢
答案1
问题是由于http://osdir.com/ml/ubuntu-security-announce/2014-05/msg00023.html正如 TomDogg 提到的。
这个论坛有更多详细信息:http://comments.gmane.org/gmane.comp.monitoring.monit.general/7378
仅供参考,即使您尝试使用 POP 而不是 IMAP,问题仍然是一样的。
以下是可能的解决方案:
应用这 2 个补丁或等待它们成为主流版本的一部分:
http://hg.dovecot.org/dovecot-2.2/rev/09d3c9c6f0ad
http://hg.dovecot.org/dovecot-2.2/rev/7129fe8bc260正如 Sebastian S 在他的回答中提到的那样,监控不使用 SSL 的 pop 或 imap。
if failed host localhost port 143 type tcp protocol imap then restart
按照 kexik 的建议,只监控不使用 imap 或 pop 的端口
if failed port 993 for 5 cycles then restart
选项 1 是唯一真正的解决方案,因为其他两个解决方案迫使您测试与您希望测试的不同的东西,但它们至少可以在您等待更新时轻松提供类似的测试。
答案2
如果您想全面监控 dovecot,您可以考虑使用以下配置监控不使用 SSL 的 143 端口:
if failed host localhost port 143 type tcp protocol imap then restart
答案3
使用以下命令检查您的版本:
$ monit -V
仅从 开始才可sslauto
用TLSV11
或进行替换。TLSV12
5.8
(例如,5.6
截至今天,Ubuntu 仅在其 repo 中。)
在这里找到有关问题/提交的更多详细信息:https://bitbucket.org/tildeslash/monit/issue/14/monit-33-add-support-for-tlsv11-and-tlsv12
因此您可以:
a) 强制将 monit 更新至版本5.8
(或更高版本),或
b)强制你的机器使用较旧的 TLS 版本,例如SSLV2
或SSLV3
或TLSV1
并保留sslauto
在你的监控检查中,或者
c) 注释掉监控检查直到你的发行版可用5.8
。