当欲望失去了枷锁,就没有了向前的路,只能转左,或者向右,左边是地狱,右边也是地狱……
分类: LINUX
2006-01-15 15:52:48
Socks服务器,别人可能是用来做代理局域网的工作,而我的目的只有一个,锁定该死的拨号上网IP。当管理一些服务器需要限定IP的时候,除了连回公司自己的座机外,可能架一个Socks服务器也是一个不错的选择,更何况架好之后也能做其他只用。8)
凡事选择正确的方法很重要,我没有随随便便地找个howto或者example就开始我的架设工作,首先试着找了一下能够找到的各种socks daemon。我的工作机用的是gentoo,它有良好的package库,搜索完毕后发现……可以选择的咚咚不是很多。dante和nylon,两者的最后更新都是去年了。虽然我知道socks的技术更新不是很快,但是心理上我还是喜欢更新快一点的软件,至少说明它不是一个老古董,作者也的确在尽心完善它。
然后…………找了 :) 全称是Socks Server 5,我不知道作者为什么不取个更个性化的名字。可能工程最初也只是按兴趣随便开始的吧。它更新得没多久,是个新东西。但是这并不说明它是个笨拙的新生儿。下面是它的features
Socks 4 Protocol SS5 V2.4
CONNECT operation Supported
BIND operation Supported
IDENTD protocol (Rfc 1413) Not supported
Socks 4A Protocol Extension SS5 V2.4
DNS resolution Supported: dns response can be ordered
Socks 5 Protocol Rfc 1928 SS5 V2.4
Authentication Basic using:
a) password file
b) Generic External Authentication Program
c) PAM support
d) Fake authentication
CONNECT operation Supported
BIND operation Supported
UDP PROXY or UDP ASSOCIATE Supported
DNS resolution Supported: dns response can be ordered
Other features SS5 V2.4
Profiling Supported using:
a) group file
b) ldap support
Protocol fixup Supported for the following protocols:
a) Http,
b) Https,
c) Smtp,
d) Pop3,
e) Imap4
Bandwidth control Supported
Source interface Supported only CONNECT operation
Server load balancing Supported: ss5 balance the requests over different real servers (ONLY thread mode!)
Session affinity by sticky option now available
Admin Console Supported: ss5 shows Virtual table, Affinity table and Statistics table
一句话,看上很美。就它了。
作者提供了很多分发包格式,因为我要装的那台机器是redhat9的,我就拉了一个回来,像其他的集成ldap和pam的,我也用不到,就不需要一个高大全的东西了。
即使是它的源码包,也没有提供自定义端口的参数。因此多了一些修改源码的地方。
rpm -ivh ss5-2.4-slb-mr7.src.rpm
cd /usr/src/redhat/SOURCES
tar -xzvf ss5-2.4.tar.gz
进入解开的ss5-2.4目录,编辑SS5Main.h 修改SOCKS5_PORT常量,其他的常
量也可以按需要修改
#define SOCKS5_PORT 9780
然后把改过的目录重新打包回去
tar -czvf ss5-2.4.tar.gz ss5-2.4
编译(这里用了-ba参数生成源码srpm)
cd ../SPECS
rpmbuild -ba --target=i686 ss5.spec
最后安装
cd ../RPMS/i686
rpm -ivh ss5-2.4-mr7.i686.rpm
配置方面很简单,网站本身有一些示例,配置文件本身也都有注释。我只按自己的需要配置了一部分。
建立/etc/ss5.passwd文件,把用户和密码按每行一个用户的格式写好,用户和密码用空格区分。
接下来就是/etc/ss5.conf
#允许从任何地址用认证方式链接
auth - - u
#允许任何转发,不过像http等需要fixup的协议还要特别指定
permit - - - - - - - - -
#fixup的类似写法
#permit - - - - 80 http - - -
#指定admin的IP,主要是三个状态页
admin 123.456.789.123
其他比较有实用价值的是permit的流量控制,virtual段所实现的流量均衡等。