我看到/etc/exim.conf
的是世界可读的。这样做的问题是配置 Exim 以使用像 Sendgrid 这样的 SMTP 服务来路由所有外发电子邮件,您将用户名和密码放入该文件,然后允许服务器上的非特权用户获取它。
有什么理由不能使这个文件只能由 root 读取吗?我想知道为什么它不会默认为它包含敏感信息的可能性。有人知道吗?
-rw-r--r-- 1 root root 57523 Jun 19 23:16 /etc/exim.conf
我看到/etc/exim.conf
的是世界可读的。这样做的问题是配置 Exim 以使用像 Sendgrid 这样的 SMTP 服务来路由所有外发电子邮件,您将用户名和密码放入该文件,然后允许服务器上的非特权用户获取它。
有什么理由不能使这个文件只能由 root 读取吗?我想知道为什么它不会默认为它包含敏感信息的可能性。有人知道吗?
-rw-r--r-- 1 root root 57523 Jun 19 23:16 /etc/exim.conf
好点子。对您有好处,您特别考虑配置的安全性。答案是视情况而定(像往常一样)。例如,如果你有 exim 在它自己的 OpenVZ/LXC/Docker/KVM/XEN/PhysicalServer 中运行,呃……我们称它为“范围”,你可能不会打扰,除非
root
没有人可以窥视这个配置。相反,如果“范围”与不同的不那么受信任的用户共享(不太可能,如果你是专业安全管理员),文件权限可以被认为是重要的,毫无疑问。
至于
exim
,你应该查看它的手册,看看它是否被任何非特权用户使用,比如说,通常有exim
用户/组用来运行exim
守护进程。如果通过服务操作的逻辑,exim
相关配置文件应该对exim
用户可读,您可以认为用户exim
可以是配置的所有者。但实际上,这是一个安全漏洞,导致exim
服务在exim
用户下运行受到威胁,攻击者可以更改配置。我可以提出的解决方案是为此目的使用组访问。确保
exim
用户是您选择对配置文件具有读取访问权限的某个组的成员,将组访问权限设置为“只读”,理论上,您可以安全地删除“其他人”的任何访问权限。通常,密码将进入密码文件并由需要它的传输根据需要读取。示例配置应包含服务器和客户端连接的身份验证示例。可以为服务器身份验证和/或客户端身份验证配置多种身份验证方法。
Exim 默认使用两个密码文件:
/etc/exim/passwd
用于连接到 exim 的用户,以及/etc/exim/passwd.client
当 exim 连接到远程服务器时。