朱有忠(吉林省统计局)
摘要:结合HP-UX操作系统小型计算机,讨论了构建HP小型机下的Socks代理服务器的安装与配置,并探讨了如何将一台HP小型机构建成一台高性能的Socks代理服务器的基本途径。
关键词:构建HP小型计算机Socks代理服务器
1什么是Socks代理服务器
采用Socks协议的代理服务器就是Socks代理服务器,它是一种通用的代理服务器。Socks其实是一种网络代理协议,是个电路级的底层网关,由DavidKoblas在1990年开发。此后,就一直作为InternetRFC中的开放标准。Socks在协议栈的TCP层上运行。Socks代理只是简单地传递数据包,而不必关心是何种应用协议(比如FTP、HTTP、SMTP和POP等请求),所以,Socks代理比其他应用层代理要快得多。它通常绑定在代理服务器的1080端口上。因此Socks代理服务比HTTP代理服务的应用范围要广得多。
目前的Socks版本是Socks5,Socks5同Socks4的区别主要在于Socks5代理支持TCP和UDP协议,而且还支持各种身份验证机制、服务器端域名解析等,Socks5通过配置可以支持Socks4。我们平时使用的InternetExplorer、QQ等软件都支持Socks代理设置。
在实际应用中Socks代理可以用做为:电子邮件、新闻组软件、网络传呼ICQ、网络聊天MIRC和各种游戏应用软件当中。
本文将介绍如何将一台HP小型机架设成一台Socks代理服务器。
2设置Socks代理服务器的网络环境和gcc编译器的安装
统计系统所配置的HP小型机一般都配有两个网卡,要把HP小型机架设成一台Socks代理服务器,要同时启用这两个网卡。如笔者所配置的HP小型机网络环境为:一块网卡使用的是统计系统的内部私有地址是:10.22.31.15/255.255.240.0,它连接内部网;另一块网卡使用的是Internet网的合法地址是:210.72.44.15/255.255.255.0,并且缺省网关是210.72.44.1。
配置或修改网卡的IP地址,可通过sam工具。但最简单的办法是修改/etc/rc.config.d/netconf文件。
修改完后,用如下命令重启网络配置:
#/sbin/init.d/netstart
然后用ping命令检查两个网卡与自己的网段主机是否能连通,用netstat-r命令检查网络通信路由是否加上,即要保证本计算机既可以与内网的主机通信,同时也可以直接上因特网。
Socksv5软件是基于GPL的自由软件,故对下载源代码后,要能在HPUX操作系统下运行,必须通过gcc编译器进行重新编译,下面介绍一下gcc编译器的在HPUX下的安装过程:
从网上下载gcc3.3.2forHPUX11版编译器,下载地址为:http://hpux.connect.org.uk/ftp/hpux/Gnu/gcc-3.3.2/gcc-3.3.2-sd-11.00.depot.gz
以root用户登录,建立一个/usr/src目录,将gcc-3.3.2-sd-11.
00.depot.gz文件拷贝到该目录下。先用gzip将该文件包展开。命令如下:
#cd/usr/src
#gzip-dcgcc-3.3.2-sd-11.00.depot.gz
利用HPUX的软件安装工具swinstall来安装gcc-3.3.2,命令如下:
#swinstall-s/usr/src/gcc-3.3.2-sd-11.00.depot
安装完成后,用swlist命令检查安装的结果。
#swlistgcc
#Initializing...
#Contactingtarget“hbhp2000”...
#Target:hbhp2000:/
#gcc3.3.2gcc
gcc.gcc-INC
gcc.gcc-MAN
gcc.gcc-RUN
gcc.gcc-SHLIBS
表明gcc已安装在本计算机上。
然后,用vi编辑/etc/PATH文件,在path路径中加入gcc执行文件所在的目录/usr/local/bin,存盘退出,再重新用root用户登录。
在root用户提示符下键入gcc,若结果如下:
#gcc-v
Readingspecsfrom/usr/local/lib/gcc-lib/hppa2.0n-hp-hpux11.00/3.3.2/specs
Configuredwith:./configure:(reconfigured)./configure:
(reconfigured)./configure:(reconfigured)./configure:
(reconfigured)./configureThreadmodel:single
gccversion3.3.2
则表明gcc已成功安装和可以正常运行。
3Socksv5的安装
3.1软件的获取对于非商业使用Socks源代码是免费的,你可以直接从Socks5的官司方站点http://archive.socks.permeo.com/
cgi-bin/download.pl下载:
Socks5v1.0realse11(UnixSource)软件包:Socks5-v1.0r11.tar.gz
补丁文件:Socks5-v1.0r11.patch1.txt
3.2将下载来的Socks5-v1.0r11.tar.gz拷贝到/usr/src目录下。
3.3用gzip和tar解开压缩包。
#gzipdcsocks5v1.or11.tar.gz|tarxvf
3.4打上补丁将Socks5-v1.0r11.patch1.txt拷贝到/usr/socks5-
v1.0r11/include目录下,并进入该目录,用下列命令打上补丁。
#patchp0<socks5-v1.0r11.patch1.txt
3.5进入Socks5-v1.0r11目录开始编译
#cd/usr/src/socks5-v1.0r11
#./configure--withthreads
#make
#makeinstall
执行configure时,后带with-threads参数,表示Socks在执行是以多线程方式执行。
注意,在make的过程中会出现编译错误,不用管它,继续使用makeinstall编译安装。完成后检查/usr/local/bin目录中有否有Socks5和stopsocks两个执行文件。如果有,表明本系统可以执行Socks5代理服务进程。
4Socksv5的配置
我们主要通过Socks5.conf文件来配置Socksv5服务器。该配置文件的路径可以在编译Socksv5时自行指定,缺省路径为:/etc/socks5.conf。Socksv5服务器在每次启动或收到HUP信号时读入该配置文件的内容。该配置文件通常由以下几个方面的内容构成:
—banhost:定义拒绝服务的客户列表
—authentication:定义SOCKSv5服务器使用的用户认证方法
—interface:定义SOCKSv5服务器绑定的ip地址和服务端口
—variablesandflags:定义SOCKSv5服务器运行的环境
—proxies:定义客户可以通过SOCKSv5服务器访问的地址列表以及Socksv5服务器访问这些地址的方法
—accesscontrol:定义SOCKSv5服务器接受或拒绝客户连接的规则
有关Socks5配置参考在因特网上有很多文章,读者可自
行参阅。在笔者的网络环境中,要求吉林统计信息内网(10.22.0.0/255.255.0.0)用户都能使用Socks5代理服务器,故必须在/etc/socks5.conf中加入以下内容:
#支持Socks4代理
SetSOCKSS_V4SUPPORT
#连接时要经过用户认证
Auth--u#允许来自10.22.0.0/255.255.0.0的用户名为user1的用户认证的连接
Permitu10.22.0.0/255.255.0.0——user1
#允许来自10.22.0.0/255.255.0.0的用户名为user2的用户认证的连接
Permitu10.22.0.0/255.255.0.0——user2
要使用username/password用户认证,其认证的用户名和口令定义在/etc/socks5.passwd文件中,内容如下:
User1user1
User2user2
表明定义了两个用户:user1、user2,其对应的口令也为user1和user2.
因编译有错误,编译完成后,没有生成Socks5运行的两个配置文件:/etc/socks5.conf和/etc/sockst5.passwd,故可vi编辑器创建这两个文件,并将上述内容加到这两个文件中,配置好后,就可以开始测试与运行Socks5。
5测试与运行
键入以下命令
#/usr/local/bin/socks5fs
如果出现下面的信息表示测试成功:
07884:Socks5startingatWedFeb1112:14:312009innormalmode
然后退出测试Socks5,可开始正式运行。
正式运行用/usr/local/bin/socks5命令;停止Socks5用/usr/local/binstopsocks命令。可通过Webmin工具,很容易地创建Socks5启动脚本,这样,下次系统启动时就会自动启动Socks5。