一、背景
公司网络使用了域账号管理机制,上网必须配指定的机器名和域名,最头痛的是还需要密码,访问网站经常弹出输入用户名密码的窗口,很多软件都不能自动升级。
对于那些使用NTLM进行身份验证的网络代理环境(即设置上除需要代理主机和端口之外还需要提供域用户和密码)来说,通过代理上网是一件头痛的事情,这主要是因为很多软件不支持NTLM验证的代理,比如目前的git就不能支持NTLM验证,即使在代理中指定了域帐号和密码,在连接过程中依然报: Received HTTP code 407 from proxy after CONNECT ,说明验证并未通过。
如果有这样一种工具能封装NTLM验证然后对外提供普通的HTTP代理服务,那么第三方应用就可以通过配置普通的代理访问网络了,这就是Cntlm所要解决的问题。
Cntlm是一种快速高效的NTLM代理,它支持TCP / IP隧道,经过身份验证的连接缓存,ACL,正确的守护程序日志记录和行为等。它的响应速度是同类NTLM代理的十倍之多,而使用的RAM和CPU却少了几个数量级或数量级。
使用 Cntlm Authentication Procxy进行代理的转换,把公司的代理转成本地的标准代理,这样虚拟机内部的系统也就可以上网了,而且使用了Cntlm以后,公司的限制就没有了!
Cntlm也有Linux版本,这意味着在Linux系统上通过NTLM身份验证的网络代理也是可行的。
二、关于NTLM
NTLM百度百科
https://baike.baidu.com/item/NTLM/6371298?fr=aladdin
NTLM身份认证
https://blog.csdn.net/qq_39353923/article/details/82599014
NTLM 工作原理概述
https://blog.csdn.net/qq_26886929/article/details/53905654
NTLM认证原理及其过程
https://blog.csdn.net/qq_39101049/article/details/103147447
Windows安全认证原理
https://blog.csdn.net/zztfj/article/details/9700129?depth_1-utm_source=distribute.pc_relevant.none-task&utm_source=distribute.pc_relevant.none-task
三、关于Cntlm的安装
# yum -y install epel-release
# yum -y install cntlm
# yum info cntlm
# rpm -ql cntlm
# cat /usr/lib/systemd/system/cntlm.service
# wget https://nchc.dl.sourceforge.net/project/cntlm/cntlm/cntlm%200.92.3/cntlm-0.92.3.tar.gz
# tar -zxf cntlm-0.92.3.tar.gz
# cd cntlm-0.92.3
# vim README
# mkdir -p /usr/local/cntlm
# ./configure
# make
# make install DESTDIR=/usr/local/cntlm
# ll -R /usr/local/cntlm/
四、关于Cntlm的配置和使用
Cntlm Authentication Proxy
http://cntlm.sourceforge.net
Cntlm (user-friendly wiki / technical manual)
http://cntlm.sourceforge.net/cntlm_manual.pdf
Cntlm Authentication Proxy
https://sourceforge.net/projects/cntlm/files/cntlm
cntlm-0.92.3.tar.gz
https://nchc.dl.sourceforge.net/project/cntlm/cntlm/cntlm%200.92.3/cntlm-0.92.3.tar.gz
cntlm-0.92.3-setup.exe
https://nchc.dl.sourceforge.net/project/cntlm/cntlm/cntlm%200.92.3/cntlm-0.92.3-setup.exe
“ISA代理 + Windows域账户”环境下apt-get的使用
https://iceway.wordpress.com/tag/cntlm
Cntlm 配置上网代理
https://www.cnblogs.com/joy99/p/10386210.html
如何使用Cntlm配置代理上网
https://blog.csdn.net/SdustLiYang/article/details/7034974
Cntlm安装和配置
https://blog.csdn.net/bluishglc/article/details/37600773
cntlm配置指导
https://blog.csdn.net/kingsuper_/article/details/84964445
How to fill proxy information in cntlm config file ?
https://wiert.me/2015/04/10/how-to-fill-proxy-information-in-cntlm-config-file-stack-overflow
How to configure an outbound HTTP and HTTPS proxy for Bitbucket Server
https://confluence.atlassian.com/bitbucketserverkb/how-to-configure-an-outbound-http-and-https-proxy-for-bitbucket-server-779171680.html
Using pip behind a proxy with CNTLM
https://www.ghcc.net/node/13527
如何指向Git使用cntlm(How to point Git to use cntlm)
http://www.it1352.com/798631.html