Cntlm

时间:2016-06-08 08:25:14

标签: linux proxy

我在多个用户共享的终端中的公司代理后面工作。我们使用Cntlm来连接到Internet。由于每个用户都有自己的凭据,我想知道是否可以使用本地配置文件(类似于:~/.cntlm)而不是全局配置文件(/etc/cntlm.conf)。

由于我没有找到通过Cntlm本身做到这一点的方法,我想到将标准/etc/cntlm.conf转换为指向$HOME/.cntlm的符号链接,即每个用户都有{ {1}}文件及其主目录中的凭据。我们的想法是在用户登录后启动Cntlm服务,并让系统将符号链接动态解析为当前用户的主目录。这听起来很聪明,但后来我发现在Linux中根本不允许使用变量符号链接herehere

值得注意的是,在我们的案例中,在任何给定时间只有一个用户登录。此外,我正在寻找不会让敏感信息“暴露”的解决方案,例如本地导出环境变量.cntlmhttp_proxy(如其他地方所建议的那样)。这种方法的问题在于每个用户都具有对计算机的root访问权限,并且使用的登录/密码来自LDAP,并且还可以访问其他系统。在这一点上,我想强调一点,我并不关心我或我的同事对任何人造成伤害的任何企图。我只是在调查软件限制。也就是说,虽然我相信我的同事,但我认为没有理由将密码硬编码而不是存储其哈希(如Cntlm在https_proxy中所做的那样)或使用其他一些实现更好保护机制的工具(如果存在) (例如:首次使用时加密,密码提示等)。

我知道,因为每个人都拥有对该计算机的root访问权限,每个用户拥有一个配置文件并不会阻止某人使用其他人的凭据访问Internet,这会导致远程代理将所有访问记录为来自错误的用户(一切都受到监控),这显然很糟糕。我认为所有这些问题都很明显,所以我可能在这里遗漏了一些东西(使用错误的工具,也许?)。

所以,这是我的两个问题:

  1. 如何设置Cntlm(或您可能建议的替代工具),以便多个用户(一次只有一个活动用户在系统中)可以使用自己的凭据通过代理连接到Internet最低限度的安全设置?

  2. 如果有多个用户同时登录,是否有任何工具可以根据各个配置文件正确协调/提供请求?

  3. 修改

    也许我的问题不够清楚。我们的问题与使用控制台应用程序有关,例如cntlm.confgitcurl等。浏览器没有问题,因为它会提示输入凭据并提供选项存储它们。例如,Git允许set up of a proxy。大多数其他应用程序也是如此,但必须单独设置每个应用程序真的很烦人。这就是我们使用Cntlm的原因。

1 个答案:

答案 0 :(得分:0)

我们使用的解决方案是不在cntlm.conf中放置任何凭据信息。

在这种情况下,当浏览器连接到cntlm时,cntlm将引发“407 Proxy Authentication Required”,浏览器将提示输入用户名和密码。通常可以说服浏览器将密码存储在其中 - 或者至少在Chrome的情况下,存储在Ubuntu的加密密码存储中。

这比将密码放入用户特定的配置文件要安全得多。

以下是我们的配置:

Domain          ADDomain
Proxy           proxy.example.com:8080
Listen          3128
NTLMToBasic     yes
NoProxy *.example.com