如何在系统范围的Linuxconfiguration文件中安全地存储代理密码?

我正在大学环境中开发虚拟机,其他几个用户也有root权限。 取一个像/etc/rhsm/rhsm.conf这样的configuration文件:

proxy_hostname = proxy_port = proxy_user = proxy_password = 

现在大学的代理服务器需要用户名和密码。 但是我真的不想把我自己的个人用户名和密码保存在系统pipe理员可以读取的其他(可能是可信的)文件中。 有解决scheme吗?

在Git的情况下,我们可以在我们的本地目录中拥有我们的密码。 (想想看,这在技术上是不安全的,因为任何人都可以读取任何目录,但至less其他系统pipe理员不会意外碰到密码而不去查找它。)

简单的答案是不可能的。 root用户可以完全访问服务器。 像SELinux这样的工具可能会让其他pipe理员更难,但并非不可能。

基本上有三种select:

  • 通过将密码隐藏在目录中的某个地方来对其进行混淆。 就像Stevebuild议的那样,在〜/ boring / work / stuff / completely / unrelated / to / proxy / password.cfg中运行你自己的代理。 或者说服代理让一个程序从一些二进制文件中获取密码(或者configuration文件),这个二进制文件会试着检查是否把密码发送给代理进程。 或者用硬编码密码编译代理二进制文件。 有许多可能性,但都是通过默默无闻的安全。
  • 存储密码的地方,你是唯一的pipe理员,或者你是唯一的所有者(一些其他服务器,闪存驱动器等),并尝试提供代理服务器从该位置以某种方式获取密码。
  • 请求一个不需要被其他pipe理员保护的不同密码。

如果你“信任”奥特尔pipe理员,而你只是想保护密码免受意外事件的侵害,那么首先select就会很好。 第二个将是“正确安全”的方式。 而第三个是“正确的企业”方式。

但还有一件事情你应该考虑。 一旦密码被加载到代理中,坏人可以尝试从代理中取出密码。 因为这似乎不是那么大的问题,如果对父代理的身份validation过程使用明文密码,可能会非常容易。 甚至有些其他pipe理员为了一个有效的原因分析networkingstream量也可能会发生意外。