防止代理,nat服务器的一些经验.希望大家讨论讨论
在开发icc3000认证计费系统的客户端过程中,对于防止客户机使用代理,nat服务器,积累了这样一些经验,拿出来和大家共享:1 要想有效的防止proxy,nat等一机带多机的共享技术,必须强制客户使用客户端软件来认证.否则免谈.没有任何办法能防止住代理.
2 技术手段不是唯一的,只能做到防止大部分人.对于少部分用户,还是没有办法防止住.
3 从技术上来说有这样一些手段
3.1 对于nat共享上网,有两种方式,单网卡nat和双网卡nat,对于双网卡NAT,可以用的防止技术有在客户端读取其网卡数量,然后不允许多网卡进行认证.对于单网卡Nat来说.就需要通过捕获数据包来判断了.建议使用winpcap3.1库来做.因为需要sniffer到数据链路层,对通过网卡的数据流进行分析,NAT总是有一个特点,就是流过的数据源地址和目的地址都不是本机的.如果发觉大量的这种数据流过,则证明有NAT服务器.当然同时需要过滤必须MAC地址是本机的,这样这条规则即使在HUB环境下也适用.
3.2 对于http的proxy,其有一个特征码,就是"GET http://"或者"POST http://",而普通的http请求是"GET /"或者"POST /",通过这个特征可以检测出客户机是否使用了HTTP代理
3.3 SOCKS代理分两钟,socks4和socks5,都差不多,也可以提取去特征码来判断,socks有明显的特征,就是socks开始的时候总有个协商的过程,通常发的报文是05 01 00或者04 01 00开头的,通过对比这些特征,还有字节大小等,基本上可以检测出来是否使用了socks代理.
4 除了报文检测技术外,还可以通过流量控制,连接数限制等一系列的手段来防止代理.
综合这些技术手段,相信大部分代理还是可以防止住的.在配合一定的管理手段.就更好了. 这是我写的一个测试是否有代理的程序
http://202.196.160.24/icc3000/proxy_check.exe
注意:需要先安装winpcap3.1库 对通过网卡的数据流进行分析,NAT总是有一个特点,就是流过的数据源地址和目的地址都不是本机的.如果发觉大量的这种数据流过,则证明有NAT服务器
这种方法只能做检测。而且是被动的,如果客户比较多,你的服务器负载不知道会有多高。
感觉太美的方法不错,控制TTL。 这个功能一般人都用不上..如果是小区的话,还差不多 SOCKS代理分两钟,socks4和socks5,都差不多,也可以提取去特征码来判断,socks有明显的特征,就是socks开始的时候总有个协商的过程,通常发的报文是05 01 00或者04 01 00开头的,通过对比这些特征,还有字节大小等,基本上可以检测出来是否使用
一定要在装客户端????? 原帖由 DreamCat 于 2005-10-11 18:20 发表
这种方法只能做检测。而且是被动的,如果客户比较多,你的服务器负载不知道会有多高。
感觉太美的方法不错,控制TTL。
斑竹可能没有明白我的意思。这个是装在客户的机器上的,服务器并不需要多少负载,这个需要用认证来配合使用。
ttl的控制没多少意义。大部分代理软件如sygate,winroute等并不是路由方式,ttl也不改变。 原帖由 lovellh 于 2005-10-11 21:12 发表
SOCKS代理分两钟,socks4和socks5,都差不多,也可以提取去特征码来判断,socks有明显的特征,就是socks开始的时候总有个协商的过程,通常发的报文是05 01 00或者04 01 00开头的,通过对比这些特征,还有字节大小等,基本上 ...
必须要客户端,否则没有什么办法能防止代理服务器。就好像huawei的认证客户端一样 哦,是客户端的。
大部分代理软件如sygate,winroute等并不是路由方式,ttl也不改变。的确如此。必须在客户端安装软件么?个人比较讨厌在客户端装软件。
页:
[1]