“ISA代理 + Windows域账…

“ISA代理 + Windows域账户”环境下Ubuntu的更新

April 26th, 2012 iceway.zhang Leave a comment Go to comments

迁移到新的Windows域(delta.corp)之后, 在公司网络中使用代理浏览网页可以, 但是Ubuntu下的软件更新, apt-get却不能联网。试了ntlmaps,依然会提示“407 Proxy Authentication Required”。找到一个类似的二级代理工具cntlm,经测试可以正常使用,以下是安装配置方式。

  1. 从“ http://sourceforge.net/projects/cntlm/files/cntlm/cntlm 0.92.3/” 下载cntlm并安装,Ubuntu要下载deb格式的安装包,注意区分32bit和64bit软件。
    安装命令(以64bit包为例):
    dpkg -i cntlm_0.92.3_amd64.deb
    
  2. 修改配置文件/etc/cntlm.conf。主要更改以下几项参数, 以我的账户配置为例
    Username iceway.zhang #你的域用户名
    Domain delta.corp #账户所属域名
    Password ****** #你登录域所用到的密码
    Proxy 172.17.92.135:8080 #公司代理服务器
    Listen 8080 #这个端口号可以自己设置, 只要没有被其他程序占用即可。
    

    另外,配置文件中的NoProxy参数可以设置发往哪些IP段的数据包不需要cntlm代理,即跳过本地代理功能, 自己根据需要修改即可。

  3. 重新启动cntlm。
    命令:
    /etc/init.d/cntlm restart
    
  4. 配置apt-get的代理, 编辑文件/etc/apt/apt.conf, 加入以下内容。
    Acquire::http::Proxy "http://127.0.0.1:8080";
    

至此, apt-get已经可以正常更新了, 配置一个正确的源, 然后就可以使用apt-get命令安装以及更新软件。

目前cntlm官网最新版本是0.92.3版,下载deb包安装后会默认添加一个cntlm用户(属组:nogroup)以及创建脚本/etc/init.d/cntlm,还会创建软连接到/etc/rc*.d/,这样开机后cntlm会默认启动。

现在可以将你需要使用http/https代理的工具都指向本机的代理服务器了,比如环境变量http_proxy, git配置的http.proxy以及firefox的代理都可以, 这样一来用到这些工具时都可以正常连接网络了。配置了http_proxy,wget命令可以下载http/https协议的文件,配置git的代理,可 以直接使用git工具更新网络上http/https协议的git代码仓库。
export http_proxy=”http://127.0.0.1:8080″
git config –global http.proxy “http://127.0.0.1:8080″

***注***

  • ntlmaps和cntlm都是二级代理工具。 Windows主机的代理认证报文和linux的有些不太一样,而Widnows的域账户认证好像只能接受Windows主机的代理报文,所以需要这个工 具作二次代理,将Linux下的代理报文转换之后发送给Windows域服务器,让Windows以为数据包是从Windows主机上发出的。
  • apt-get的代理格式本身也可以使用需要认证的代理,配置的格式如下:
    Acquire::http:Proxy "http://:@:";
    

    但是对于Windows域账户这种用户名或者密码中包含特殊字符’\'的账户却不能正常工作,这种情况也需要二级代理。

你可能感兴趣的:(“ISA代理 + Windows域账…)