BIND请求被用在那些需要客户机接受到服务器连接的协议中。FTP就是一个众所周知的例子,它通过使用命令和状态报告建立最基本的客户机-服务器连接,按照需要使用服务器-客户端连接来传输数据。(例如:ls,get,put) 都期望在使用应用协议的客户端在使用CONNECT建立首次连接之后仅仅使用BIND请求建立第二次连接。都期望SOCKS主机在评估BIND请求时能够使用ST.ADDR和DST.PORT。
有两次应答都是在BIND操作期间从SOCKS服务器发送到客户端的。第一次是发送在服务器创建和绑定一个新的socket之后。BIND.PORT域包含了SOCKS主机分配和侦听一个接入连接的端口号。BND.ADDR域包含了关联的IP地址。
客户端具有代表性的是使用这些信息来通报应用程序连接到指定地址的服务器。第二次应答只是发生在预期的接入连接成功或者失败之后。在第二次应答中,BND.PORT和BND.ADDR域包含了欲连接主机的地址和端口号。
UDP ASSOCIATE(连接?)
UDP 连接请求用来建立一个在UDP延迟过程中操作UDP数据报的连接。DST.ADDR和DST.PORT域包含了客户机期望在这个连接上用来发送UDP数据报的地址和端口。服务器可以利用该信息来限制至这个连接的访问。如果客户端在UDP连接时不持有信息,则客户端必须使用一个全零的端口号和地址。
当一个含有UDP连接请求到达的TCP连接中断时,UDP连接中断。
在UDP连接请求的回应中,BND.PORT和BND.ADDR域指明了客户端需要被发送UDP请求消息的端口号/地址。
回应过程
当一个回应(REP值非X''00'')指明失败时,SOCKS主机必须在发送后马上中断该TCP连接。该过程时间必须为在侦测到引起失败的原因后不超过10秒。
如果回应代码(REP值为X''00'')时,则标志成功,请求或是BIND或是CONNECT,客户机现在就可以传送数据了。如果所选择的认证方法支持完整性、认证机制和/或机密性的封装,则数据被方法选择封装包来进行封装。类似,当数据从客户机到达SOCKS主机时,主机必须使用恰当的认证方法来封装数据。
7.基于UDP客户机的程序
一个基于UDP的客户端必须使用在BND.PORT中指出的UDP端口来发送数据报到UDP延迟服务器,而该过程是作为对UDP连接请求的回应而进行的。如果所选择的认证方法提供认证机制、完整性、和/或机密性,则数据报必须使用恰当的封装套给予封装。每一个UDP数据报携带一个UDP请求的报头(header):
+----+------+------+----------+----------+----------+
|RSV | FRAG | ATYP | DST.ADDR | DST.PORT | DATA |
+----+------+------+----------+----------+----------+
| 2 | 1 | 1 | Variable | 2 | Variable |
+----+------+------+----------+----------+----------+
UDP请求报头是:
o RSV Reserved X''0000''
o FRAG Current fragment number
o ATYP address type of following addresses:
o IP V4 address: X''01''
o DOMAINNAME: X''03''
o IP V6 address: X''04''
o DST.ADDR desired destination address
o DST.PORT desired destination port
o DATA user data
当一个UDP延迟服务器决定延迟一个UDP数据报时,它会按兵不动,对客户机无任何通报。类似的,它会将它不能或不打算延迟的数据报Drop?掉。当一个UDP延迟服务器接收到一个来自远程主机的延迟数据报,它必须使用上面的UDP请求报头来封装该数据报,和任何认证方法选择的封装。
一个UDP延迟服务器必须从SOCKS服务器获得所期望的客户机的IP地址,而该客户机要发送数据报到BND.PORT--在至UDP连接的回应中已经给出。UDP延迟服务器还必须drop掉除了特定连接中的一条记录之外的其它的所有源IP地址。
FRAG域指出了数据报是否为大量的数据片(flagments)中的一片。如果标明了,高序(high-order)位说明是序列的结束段,而值为X''00''则说明该数据报是独立的。值介于1-127之间片断位于数据片序列中间。每一个接收端都有一个和庑┦萜喙氐闹刈槎恿斜?REASSEMBLY QUEUE)和一个重组时间表(REASSEMBLY TIMER)。重组队列必须被再次初始化并且相关联的数据片必须被丢掉,而无论该重组时间表是否过期,或者一个新的携带FRAG域的数据报到达,并且FRAG域的值要小于正在进行的数据片序列中的FRAG域的最大值。且重组时间表必须不少于5秒。无论如何最好避免应用程序直接与数据片接触(?)。
数据片的执行是可选的,一个不支持数据片的执行必须drop掉任何除了FRAG域值为X''00''了数据报。
一个利用SOCKS的UDP程序接口必须预设有效的缓冲区来装载数据报,并且系统提供的实际缓冲区的空间要比数据报大:
o if ATYP is X''01'' - 10+method_dependent octets smaller
o if ATYP is X''03'' - 262+method_dependent octets smaller
o if ATYP is X''04'' - 20+method_dependent octets smaller
8.安全考虑
该文档描述了一个应用层的用于穿越IP网络防火墙的协议。这种穿越的安全性是高度依赖于正规的认证和正规执行方法提供的有效封装,以及在SOCKS客户端和SOCKS服务端所选择的安全性,还有管理员对认证方法选项所作的小心周密的考虑。
9.参考文献
[1] Koblas, D., "SOCKS", Proceedings: 1992 Usenix Security Symposium.
各种代理软件下载地址[分享]
从现在开始寻找、更新各种代理相关的软件,并且公布软件的官方下载地址和网站。
代理猎手(Proxy Hunter) V3.1 完整版
主页:无
下载地址:http://skycn.net/soft/1034.html
代理服务器猎手,可以很快速的查找网络上的免费 Proxy 哦!主要有以下特点:支持多网址段、多端口自动查询,支持自动验证并给出速度评价,支持后续的再验证,支持用户设置连接超时和验证超时,支持用户设置验证内容,支持进度时间预测,支持用户设置最大连接数(可以作到不影响其他网络程序),支持自动查找最新版本,最大的特点是搜索速度快,最快可以在十几分钟内搜完整个B类地址的 65536 个地址。
代理服务器搜索者
主页:http://www.goodproxy.com/cn/
下载地址:http://www.goodproxy.com/download/cnpf.exe
免费,无限制版本 代理服务器搜索者, 专门搜索 sock4/5 和 Tunnel (允许通过Connect 指令代理各种服务的)类型的代理服务器。速度奇快,多线程,每10秒钟搜索一个C 类网段.实际测试 56KB 200线程 30分钟一个B 段.100% 准确率. 运行稳定,每天24小时运行。安装简单,使用方便,支持右键功能和Ctrl+A,Ctrl+C,Ctrl+V.可以随意导出和导入校验.proxy 纪录格式通用。
Lan2IP 代理服务器
主页:http://www.x2ip.com/
下载地址:http://www.x2ip.com/download/lan2ip.exe
一个操作简单的把自己的机子做成http代理服务器的小软件。
HTTPort 汉化版
主页:http://www.htthost.com/
汉化版下载地址:http://www.hanzify.org/ronnier/c......ekeasysoft.com/
下载地址:http://www.seekeasysoft.com/adslhtt...slhttpproxy.htm(里面包含多个下载地址)
一个非常不错的国产中文代理服务器软件,设置简单、功能强大。具有网站转向、网站禁止访问功能。而且还能使用上级代理服务器访问网络功能。不过是共享软件。好像有使用次数限制,需要注册。
提供网站HTTP代理访问服务器工具。在能连接互联网的机器上运行本程序,然后在不能连接互联网的机器上修改IE浏览器的INTERNET选项中的网络连接属性设置,将使用代理服务器选项打钩,地址一栏中填入运行本程序的机器的IP地址如192.168.0.1,端口填入8080,这样局域网中上百台电脑便可以通过服务器端访问全球各地的WWW网站了,你可以在代理服务器上限制用户不能访问某些反动或色情或恶意站点,从而发挥代理访问的网络限制保护功能。真正让您不花钱一分钟就能建立自己的HTTP代理服务器,好酷哟!
宽带POP3代理服务器V1.0
主页:http://www.seekeasysoft.com/
下载地址:http://www.seekeasysoft.com/adslpop...slpop3proxy.htm(里面包含多个下载地址)
与上面“的极限http代理服务器”来自同一个网站。提供POP3代理收取邮件工具。在能连接互联网的机器上运行本程序,然后在不能连接互联网的机器上运行客户端邮件收发软件如OUTLOOK/FOXMAIL等,并将信箱的USER用户名改为USER#pop3服务器地址,将pop3服务器地址改为运行本程序的机器IP地址。按上述设置就可让不能直接收邮件的电脑通过能上网的代理机器收取邮件了。真正让您不花钱一分钟就能建立自己的POP3代理收信服务器工具,好酷哟!
宽带SMTP服务器V1.2
主页:http://www.seekeasysoft.com/
下载地址:http://www.seekeasysoft.com/adslsmt...lsmtpserver.htm(里面包含多个下载地址)
该软件还是常州搜易电脑软件部推出的一款精典工具软件。客户端代理发信SMTP服务器。无论你使用outlook/foxmail等国内外邮件客户端软件,只需在SMTP发信服务器地址中填入127.0.0.1或局域网IP地址,不需发信认证就可以将邮件直接发送到目标信箱,发送成功或失败可以马上知晓,并且可以设置转发失败后语音提示和自动发送退信。将它安装在局域网的机器上相当于拥有了一个自己的SMTP服务器,所有的局域网电脑都可以通过它向全球各地转信。如果安装在ADSL宽带上,相当于自己架设了一个类似于免费电子邮件服务商smtp.163.net/smtp.sohu.com这样的发信服务器,全球网友都可以通过它代理发送电子邮件了。真正让您不花钱一分钟就能建立自己的SMTP服务器,好酷哟!
http://netadmin.77169.com/HTML/20051130012430.html
【代理知识】绝对值得珍藏!
0
相关文章