SOCKS代理伺服器可从 ftp://sunsite.unc.edu/pub/Linux/system/Network/misc/socks-linux- src.tgz取得。该档内也有一个称为"socks-conf"的设置档可作参考。可把该档解压,然后根据其中的说明使用该档。但使用时并不简单,应首先确定Makefile档正确无误。 在 /etc/inetd.conf中应该增添代理伺服器。因此,应该增加以下一行。
socks stream tcp nowait nobody /usr/local/etc/sockd sockd这样伺服器才会在需要时运行。
SOCKS需要两个设置档进行设定。一个设置档设定进入取用的权限,另一个设置档设定路径,以便找到适当的代理伺服器。权限档应在伺服器上,路径档应在每一台UNIX机上。DOS机和Macintosh机都会确定自行的路径。
在socks4.2(beta)版中,权限档称为"sockd.conf",应该只有两行,一行允许(permit),一行拒绝(deny)。每行都有三项设定:
permit 192.168.2.23 255.255.255.255
则只允许每一位元相符的地址,即192.168.2.23。如果地址为︰
permit 192.168.2.0 255.255.255.0则会允许192.168.2.0至192.168.2.255之间的每一个地址,即整个C级的地址。不得有下列这种地址出现︰
permit 192.168.2.0 0.0.0.0这会允许每一地址使用,不论其地址为何。 因此,允许每一个应该允许的地址,然后拒绝其余地址。如允许192.168.2.xxx范围中的每一用户,可用下列方式表示︰
permit 192.168.2.0 255.255.255.0 deny 0.0.0.0 0.0.0.0
注意deny行中的第一个"0.0.0.0"。由于地址以0.0.0.0修改,因此IP为何都没有影响。用0作为IP地址,因为便于打字。 特别的用户可以给予或拒绝使用的权限。这可通过iden的查验来实现。由于不是所有系统都支持iden,其中包括Trumpet Winsock,所以此处不预备多加说明。随同socks提供的说明以够使用。
SOCKS中的路径档称为"socks.conf",极易与权限档混淆。 路径档让SOCKS用户知道何时用socks,何时不用。例如,在示范的网路中192.168.2.3并不需要使用socks与192.168.2.1防火墙对话。通过Ethernet,它们之间有直接的连接。又127.0.0.1自动设为loopback。因此也不需要用socks同自己对话。它有三行输入︰
在direct行下列入不使用sock的地址。所有这些地址都可直接联上网路,无须经过代理伺服器。在这里又有三个位置要填︰identifier、address和modifier。例如︰
direct 192.168.2.0 255.255.255.0
Sockd行告诉电脑那一个用户的电脑上有socks server daemon。该行内容如下︰
sockd @=<serverlist> <IP address> <modifier>
注意@= 填入的内容。利用这种方法可以填入一系列代理伺服器的IP地址。在这里只用一个代理伺服器的地址为例。但可以列上多个伺服器的地址,以便加大容量,并当有伺服器失灵时,有其他的伺服器顶替。
设定IP地址和modifier域的方法和其他例子相同。
要使应用程序利用代理伺服器,这些应用程序需要"sockified"。在这里需要两个telnet,一个进行直接通讯,一个通过代理伺服器进行通讯。SOCKS软件中有说明sock一个程序的方法,也附有几个已经sock好的程序。如果要直接使用sock好的程序,SOCKS软件会直接设定。因此,应该将保护网路内的所有程序改名,然后再改用已经sock好的程序。例如,"Finger"变为"finger.orig","telnet"变为"telnet.orig"。 必须通过include/socks.h档告诉SOCKS这种设定。 有些程序能自行处理routing和sockifying的问题。Netscape就使其中之一。例如在Netscape下要用用代理伺服器,只要在Proxies下SOCK栏内填入伺服器的地址即可(在此为192.168.2.1)。当然,每种应用程序都得作些小变动,不论其处理代理伺服器的方法为何。
Trumpet Winsock中有自带的代理伺服器功能。在"setup"选单中填入伺服器的IP地址和所有直接可联的电脑的地址。然后,Trumpet就会处理所有外送的数据包。
SOCKS软件只处理TCP数据包,而不处理 UDP。这多少减少了它的用处,因为,许多有用的程序,例如talk和Archie,都利用UDP。有一套软件,称为UDPrelay,由Tom Fitzgerald设计<fitz@wang.com>,主要作为UDP数据包的代理伺服器使用。不过在编写本文时,这套软件不能用于Linux.
归根结底,代理伺服器是一个安全装置
。在有限的IP地址的情况下,用它使许多用户进入网际网路有许多缺点。代理伺服器可使保护网路内的用户联到网路之外,但使网路之外的用户完全无法同网路之内的用户联系。这表示无法同网路之内的电脑进行talk或archie联网,也无法发送电子邮件。这些缺点看来并不严重,但是如果︰
防火墙
,但由于每一个人都可进入代理伺服器,因此你在这个伺服器上并没有个别帐户。
FTP是代理伺服器的另一个问题。在取得或使用ls
时,FTP伺服器在客户机上打开一个socket,并通过它传送信息。代理伺服器不允许进行这项工作,因此FTP无法使用。
此外,代理伺服器运行缓慢。由于需要额外资源较多,几乎任何其他能达成这项作用的伺服器都要比它快。
一般而言,如果有IP地址联网,而又不必特别顾虑安全问题,那就不要使用防火墙和(或)代理伺服器。如果没有IP地址联网,但也不顾虑安全问题,那就不妨使用IP模拟器,象Term,Slirp或TIA。Term可从ftp://sunsite.unc.edu
取得,Slirp可从ftp://blitzen.canberra.edu.au/pub/slirp
取得,TIA可从marketplace.com取得。使用代理伺服器的理想网路是有许多用户需要联网,那只要做一次设定之后就不必再做太多其他的工作。