免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 794 | 回复: 0

让Linux用户通过msproxy上网 [复制链接]

论坛徽章:
0
发表于 2004-09-03 13:42 |显示全部楼层
msproxy是一种常用的代理服务器,它和浏览器之间采用NTLM认证方式,遗憾的是Mozilla不支持这种认证方式,所以,Linux用户无法通过msproxy上网,本文介绍的ntlmaps是开源组织提供的一款可以让Linux用户通过msproxy上网的软件,相信它能为那些Windows和Linux用户共存的代理服务提供者提供一个可行的解决方案。
关键字:NTLM认证        ntlmaps        代理服务

1.Linux用户通过msproxy代理服务上网的问题
目前,普通用户上网一般是局域网、电话拨号或ADSL等方式。在局域网中,大多都采用代理服务的方式或NAT方式。常见的代理服务器很多,msproxy就是广泛使用的一种。
随着Linux逐渐普及,越来越多地人开始转向Linux系统。毕竟Linux仍处于发展中,Linux客户还只占少数,所以msproxy依然作为主要的代理服务器之一毅然承担着很大一部分客户的上网任务。实际上,msproxy和浏览器之间是通过NTLM协议认证的。可惜,Mozilla浏览器不支持NTLM认证,所以通过Mozilla上网的Linux用户就被拒绝了。
解决Linux用户无法通过msproxy代理上网的方法主要包括:安装多个系统并通过windows上网,这种方法只适合高级用户,并且需要较高的系统配置;另外一种方案就是远程登录到其它的Windows系统,并通过远程的Windows上网,这种方式只有极少数用户具备条件,所以,必须有一种能够使大众Linux用户通过msproxy上网的方案,由开源组织提供的一款微型软件ntlmaps便能满足这种需求,并且msproxy端不需要任何改变,下面就来分析它的工作原理。
2.        NTLM APS 的基本原理
NTLM APS(NTLM Authorization Proxy Server)通过修改客户端请求数据的头部分,使之满足msproxy的认证格式,使得无法支持NTLM认证的浏览器也能支持NTLM认证。图1表示在没有NTLM认证代理的情况下IE浏览器通过msproxy上网的原理图。首先,浏览器发送HTTP请求,msproxy服务器要求首先进行msproxy认证,于是,浏览器再次发送认证协议数据,服务器检测认证数据,如果认证失败,则拒绝继续代理,否则就由代理服务器完成请求页的下载,然后再传递给浏览器。对于Linux主机来说,由于Moziila不支持NTLM认证,所以msproxy就无法实现代理Linux主机的HTTP请求。

图1 IE 浏览器通过msproxy上网

如图2表示mozilla浏览器通过NTLM代理上网的结构图。这里,Mozilla浏览器没有把HTTP请求之发送给msproxy,而是发送给了NTLM 代理服务器,NTLM代理服务器根据需要修改客户端请求数据的头部,让Mozilla发送的请求数据也能能通过msproxy的NTLM认证,从而能够使得mozilla通过msproxy上网。


图2 mozilla 浏览器通过msproxy上网
目前,由开源组织提供能够提供的微型软件ntlmaps就是专门一款很好的NTLM认证代理。它不仅能够完成NTLM认证代理功能,同时还能实现个性化的“二级代理”的功能,下面就介绍它的安装和配置过程。
2.安装配置ntlmaps
ntlmaps是免费软件,Python语言编写。目前版本为0.98,可以直接下载安装,下载地址:http://sourceforge.net/projects/ntlmaps/。为了能够正常安装,请确保系统已经安装Python语言的软件包。这里以Red Hat Enterprise Linux AS 3 (内核版本: 2.4.21-15.EL)为例,Linux
1)安装ntlmaps
        首先检查系统是否安装python语言包:
        #rpm –qa |grep python          //作者试验系统版本为2.2.3-5
安装ntlmmaps包:
#gzip –d   aps098.tar.gz
#tar –xvf aps098.tar
2)配置ntlmaps
在启动认证代理服务器之前,首先要进行配置,设置代理服务器msproxy的IP、端口信息和ntlmaps的基本配置,配置文件为server.cfg,由于篇幅有限,这里只给出主要的设置项目:
[GENERAL]                                                #常规设置
LISTEN_PORT:5865                                #ntlmaps默认监听端口,默认即可
PARENT_PROXY:your_parentproxy        #msproxy代理服务器的IP地址
PARENT_PROXY_PORT:8080                        #msproxy代理服务器端口,http一般是8080
[NTLM_AUTH]
NT_HOSTNAME: hostname                      #可选的主机名
NT_DOMAIN: domainname                      #可选的NT服务器域名
USER: username                            #msproxy指定的用户名,如没有则空白即可
PASSWORD: password                        #msproxy需要的密码,空白即可,自动提示输入
3)启动ntlmaps
# ./main.py &                        #这里的&表示后台运行
或者
#python main.py
4)修改浏览器配置
要让mozilla浏览器上网,就必须同时修改浏览器代理设置,设置浏览器的代理服务器为127.0.0.1, 端口为5865即可,如果ntlmaps的端口不是默认的5865,则浏览器的配置相应修改即可。操此位置,mozilla浏览器就可以顺利通过msproxy代理服务器上网了。
3.总结
ntlmaps的确给想通过msproxy上网的linux用户带来了福音。实际上,对windows系统或类Unix下的非IE浏览器要直接通过msproxy上网也会被拒绝,同样也可以使用这种方法让那些非IE浏览器通过NTLM 认证代理上网。在windows系统下配置过程类似,不同的是首先要安装Python for windows(百度中搜索即可找到相关下载链接),运行runserver.bat即可启动服务器。
Ntlmaps不仅可以代理当前的机器上网,而且可以代理其它机器上网,就像一个二级服务器一样,要实现二级代理,需要修改server.cfg文件并重新启动机器即可。Server值需要修改2行,如下所示:
ALLOW_EXTERNAL_CLIENTS:0         #  设为 1 可以让其它的compute 使用它上网  
FRIENDLY_IPS: #代理允许的IP列表,空格分隔
补充一点,听说mozilla的最新版本能够支持NTLM认证,不知是否属实,笔者没有试验。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP