linux - Cntlm 的本地配置文件

标签 linux proxy

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

因为我没有找到通过 Cntlm 本身来完成它的方法,所以我想到将标准 /etc/cntlm.conf 转换为指向 $HOME/的符号链接(symbolic link).cntlm,即每个用户在其主目录中都有一个 .cntlm 文件及其凭据。这个想法是在用户登录后启动 Cntlm 服务,并让系统动态解析符号链接(symbolic link)到当前用户的主目录。起初这听起来很聪明,但后来我发现变量符号链接(symbolic link)在 Linux 中根本不允许,正如所讨论的 herehere .

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

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

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

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

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

编辑:

也许我的问题不够清楚。我们的问题是和console应用的使用有关,比如git, curl, wget等,在浏览器中是没有问题的,因为它提示输入凭据并提供存储它们的选项。例如,Git 允许 set up of a proxy .大多数其他应用程序也是如此,但是必须分别设置每个应用程序真的很烦人。这就是我们使用 Cntlm 的原因。

最佳答案

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

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

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

这是我们的配置:

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

关于linux - Cntlm 的本地配置文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37697062/

相关文章:

authentication - NTLM 身份验证和智能卡

linux - 将存储在 ec2 实例上的文件备份到 s3

java - 从输入流中提取内容

apache - 如何使 Apache 将 http 请求代理到 https

linux - X11:如何在登录后运行应用程序?

python - 如何通过 TOR 和 Privoxy 使用 Python 请求获取 HTTPS 内容

http - 在 NodeJS 中通过 SOCKS5 代理执行 http 请求

linux - 是否可以在远程 shell 脚本中调用函数?

linux - open xml sdk 2.0是否支持linux平台?

linux - 如何用 Shell 脚本替换 .txt 文件中未确定位置的字符串?