Exim 未监听端口 465 或 587 上的 TLS 连接

Exim 未监听端口 465 或 587 上的 TLS 连接

我正在 Ubuntu 服务器上配置 Exim,以便通过以下方式发送和接收邮件TLS。

我按照许多指南操作,了解如何使用 TLS 配置 Exim,但我的 Exim 仍然无法监听 465 或 587

Exim 只监听 25 端口,我可以发送和接收邮件

这是我遵循的官方指南: https://help.ubuntu.com/community/Exim4

但还是没有运气,我也没有在配置文件中找到任何参考资料来表明 exim 正在监听哪些端口

我还使用以下命令通过 ufw 允许端口 465 和 587:

ufw allow 465
ufw allow 465

但 Exim 仍然无法监听 465 或 587,有人能帮我解释一下为什么会发生这种情况吗,或者我是否遗漏了某些步骤

答案1

对于 Ubuntu 18.04,我发现以下内容有效update-exim4.conf.conf

dc_local_interfaces='<; [0.0.0.0]:465; [0.0.0.0]:587'

然后照常运行:运行update-exim4.conf并重新启动服务。

检查(抱歉 - 还有更多现代的方法,但手指记住了netstat):

# netstat --listen -lnp | grep exim
tcp        0      0 0.0.0.0:465             0.0.0.0:*               LISTEN      10874/exim4         
tcp        0      0 0.0.0.0:587             0.0.0.0:*               LISTEN      10874/exim4 

注意:启用端口 25 也是个好主意。例如,某些本地服务可能要将邮件发送到 localhost:25。

答案2

您必须在“/etc/default/exim4”文件中进行配置。该文件显示:

# Options for the SMTP listener daemon. By default, it is listening on
# port 25 only. To listen on more ports, it is recommended to use
# -oX 25:587:10025 -oP /run/exim4/exim.pid 
SMTPLISTENEROPTIONS=''

因此,要使其监听其他端口,您必须更改 /etc/default/exim4 中的 SMTPLISTENEROPTIONS。要仅使用端口 587,您必须写入以下内容:

SMTPLISTENEROPTIONS='-oX 25:587:10025 -oP /run/exim4/exim.pid'

要使用端口 465,您必须这样写:

SMTPLISTENEROPTIONS='-oX 25:465:587:10025 -oP /run/exim4/exim.pid'

之后你必须重新启动 exim:

/etc/init.d/exim4 restart

使用端口 465 时,还必须添加

tls_on_connect_ports = 465

到您的 exim 配置文件,以便在连接到端口 465 时立即启动 SSL 会话。

之后你可以检查连接:

不使用 SSL:

telnet localhost 25
EHLO test

使用 SSL:

openssl s_client -connect localhost:25 -starttls smtp
EHLO test
openssl s_client -crlf -connect localhost:465
EHLO test
openssl s_client -connect localhost:587 -starttls smtp
EHLO test

如果您的 exim 服务器管理多个域,并且每个域使用不同的证书,那么您可以在测试服务器时使用“-servername”参数:

openssl s_client -connect localhost:587 -servername example.com -starttls smtp
EHLO test

然后您可以检查是否发送了正确的证书。

相关内容