浅谈构建HPUX小型机下的Socks代理服务器

(整期优先)网络出版时间:2010-06-16
/ 2

浅谈构建HPUX小型机下的Socks代理服务器

朱有忠

朱有忠(吉林省统计局)

摘要:结合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。