使用内核密钥保留服务

使用内核密钥保留服务

我的 Linux 系统中有一个名为“.fetchmailrc”的文件,它用于配置 fetchmail 将从哪个电子邮件地址接收邮件。因此,我必须以纯文本形式输入我的密码和电子邮件地址。

.fetchmailrc 文件如下所示:

set daemon 1
set logfile /home/user/.fetchmail.log
set no bouncemail
poll pop.gmail.com proto POP3 auth password no dns user "MY_EMAIL" password     "MY_PASSWORD" is user keep ssl

mda "/usr/bin/procmail -d %T"

我相信一定有更好的方法来做到这一点,因为如果黑客访问了我的服务器,他就可以轻松读取文件并获取我的凭据。

我听说 Linux 系统中有 PAM(可插入式身份验证模块),但我不知道这是否与我要做的事情有关。

答案1

无论您如何存储密码,当运行不提示输入密码的程序时,程序必须使用服务器上可用的信息解密存储的密码。获得服务器访问权限的“黑客”可以使用服务器上存储的所有信息。因此,他也可以以与程序解密密码相同的方式解密密码。

如果您用于加密和存储密码的方案比较复杂,那么“黑客”可能需要花费更长的时间。

所以你无法做到你想做的事:无论你如何存储密码,你都无法让它“不被黑客攻击”。黑客只能做程序所做的一切(或者甚至只是执行程序,然后嗅探网络流量)。

PAM 模块与此无关。它们不用于存储密码,而是提供配置现有 Linux 服务的身份验证方法的方法。希望使用 PAM 的程序必须为其编写。

答案2

使用内核密钥保留服务

如果您担心有人会反复获得您系统的 root 访问权限,那么您几乎无能为力。(但那是一场噩梦,请遵循最佳实践并保留良好的备份)。

但是,如果一切仍然安全,那么您可以做得更好,而不是将密码留在纯文本文件中(任何找到您正在运行或关闭的系统驱动器的人都可以读取它)。请执行以下操作:

  • 加密您的家,这样文本文件(在 $HOME 中)至少在您未登录时是加密的。
  • 加密您的整个驱动器,类似于上述。
  • 不要将密码保存在文件中,只在需要时自己输入
  • 如果您必须存储输入的密码,请在登录时输入它们,然后将它们输入:

相关内容