Exim - 通过全世界可读的 exim.conf 泄露密码 - 有必要吗?

Exim - 通过全世界可读的 exim.conf 泄露密码 - 有必要吗?

我看到的/etc/exim.conf是全球可读的。问题在于,要将 Exim 配置为使用像 Sendgrid 这样的 SMTP 服务来路由所有外发电子邮件,您需要将用户名和密码放入该文件中,然后服务器上的非特权用户就可以获取它。

有什么原因导致此文件不能仅由 root 读取?我想知道为什么它不默认这样做,因为它可能包含敏感信息。有人知道吗?

-rw-r--r-- 1 root root 57523 Jun 19 23:16 /etc/exim.conf

答案1

通常,密码会进入密码文件,并由需要它的传输根据需要读取。示例配置应包含服务器和客户端连接的身份验证示例。可以为服务器身份验证和/或客户端身份验证配置多种身份验证方法。

Exim 默认使用两个密码文件:/etc/exim/passwd用于连接到 exim 的用户,以及/etc/exim/passwd.client当 exim 连接到远程服务器时。

答案2

说得好。你特别考虑配置的安全性,这很好。答案是视情况而定(像往常一样)。例如,如果你让 exim 在其自己的 OpenVZ/LXC/Docker/KVM/XEN/PhysicalServer 中运行,呃……我们称之为“范围”,你可能不会考虑,因为除非root没有人可以窥视这个配置。

相反,如果“范围”与不同的不太受信任的用户共享(如果您是支持安全的管理员,则不太可能),则文件权限无疑被视为重要。

至于exim,您应该查看其手册并查看它是否被任何非特权用户使用,例如,通常有exim用户/组用于运行exim守护程序。如果根据exim服务操作的逻辑,相关配置文件应该对exim用户可读,那么您可以认为该用户exim可以是配置的所有者。但实际上,这是一个安全漏洞,因为如果在用户入侵的exim情况下运行的服务exim,攻击者可以更改配置。

我提出的解决方案是使用组访问来实现此目的。确保exim用户是您选择的某个组的成员,该组对配置文件具有读取权限,将组访问权限设置为“只读”,理论上,您可以安全地删除“其他人”的任何访问权限。

相关内容