Chinaunix

标题: Iptables是不是可以利用Mangle表中的TTL禁止二级代理??? [打印本页]

作者: R9_Alien    时间: 2006-01-06 07:43
标题: Iptables是不是可以利用Mangle表中的TTL禁止二级代理???
我在以前使用Routeros时看到可以在mangle表的Prerouting链中,通过设置-m TTL --dec 1 来禁止二级代理,请问版主和各位兄弟有何见解???谢谢!!!!
作者: platinum    时间: 2006-01-06 08:41
原帖由 R9_Alien 于 2006-1-6 07:43 发表
我在以前使用Routeros时看到可以在mangle表的Prerouting链中,通过设置-m TTL --dec 1 来禁止二级代理,请问版主和各位兄弟有何见解???谢谢!!!!

恩,就这个问题我也在 www.routerclub.com 问过发贴的那个人,却没有答复
经过我的分析发现,这实际上是“瞎掰”,根本就不能实现阻止代理的需求
除非后面还有个 -m ttl --ttl 128 -j ACCEPT,然后 -m state --state RELATED,ESTABLISHED,再 -j DROP
即便能通过判断 TTL 来实现,那么代理的人再 -m ttl --inc 1 就回来了,呵呵
其实都是瞎掰,如果真的能实现,网络尖兵干吗用的?
作者: R9_Alien    时间: 2006-01-06 08:59
呵呵,白金版主,我在那见过你,而且见过一个不懂装懂得人跟你乱嚷嚷,呵呵,谢谢你。
那防二级代理在Squid或者Iptables上有好的办法吗?
作者: platinum    时间: 2006-01-06 10:10
原帖由 R9_Alien 于 2006-1-6 08:59 发表
呵呵,白金版主,我在那见过你,而且见过一个不懂装懂得人跟你乱嚷嚷,呵呵,谢谢你。
那防二级代理在Squid或者Iptables上有好的办法吗?

啊,你也看到了,随他们去吧,没必要和他们争执,所以我就没再说话

其实这种东西,很难从一个角度去衡量的
一般判断是否存在代理,我认为有几个方面

1、通过 SNMP
  某些 ADSL 小路由上面没有关闭 SNMP 服务,可以通过 public@IP 的方式提取里面的信息,包括后面的 IP

2、通过判断连接数
  一般的正常访问(同时开多个 BT 种子下载除外)连接数都是有限的,可以取一个合理的阀值

3、同 IP 多 MAC
  这种情况多出现不多,一般是用 ARP 欺骗实现的

4、TTL 分析
  不同的系统默认的 TTL 数不同,Windows 是 128,早期 Linux Kernel 和 Solaris 是 255,FreeBSD 和现在的 Linux Kernel 都是 64,TTL 有个特点,每过一次路由就 -1,所以如果 TTL 不是 64、128、255 的时候,多数可能是自己又做了一次代理(网络环境特殊的情况除外,用 squid 做代理除外)

5、squid 代理
  这种代理的机制,不是路由转发,而是服务器收到 client 的请求后自己去 get/post 页面,所以 TTL 不会变化,但通过分析 HTTP 头可以看到类似“proxy”、“X-Forward”的字样,这也是一个判断的方式

6、seq
  根据 TCP 理论,每个包都有一个 seq 的,而不同的系统这个 seq 是不同的,具体我没有研究过这个,只是听说过

网络尖兵实际上就是通过以上一些方法综合判断实现的,判断方法也有点类似处理垃圾邮件那样,每个方法都有一个分值,总分超过一定数的时候“判断”(实际是猜测)他在用代理,其实这也不准,如果客户很气氛的打个投诉电话,理直气壮说绝对没用代理,他们也没有证据(当然,如果是 1、3 点实现的,那投诉也没用,4 有可能投诉没用)

以上是一点拙见 ^_^
作者: R9_Alien    时间: 2006-01-06 10:15
强,版主理解得真深,受益非浅,感谢,这几点收藏了!!!
作者: 顽主    时间: 2006-03-02 21:28
标题: 我个人认为使用二级代理,可以使用layer7来做!
我个人认为使用二级代理,可以使用layer7来做!
找到包中带有,***proxy字样的,封了就ok了,绝对好用
作者: skylove    时间: 2006-03-02 21:54
layer7 在我这里跑起来的情形是。。。命令一开始,然后就没有退回到命令好,就那样挂起来了,得自己按ctrl+c取消掉。。。 不知道是不是因为我用户太多的原因,导致过滤速度跟不上了。。。
作者: platinum    时间: 2006-03-02 21:54
原帖由 顽主 于 2006-3-2 21:28 发表
我个人认为使用二级代理,可以使用layer7来做!
找到包中带有,***proxy字样的,封了就ok了,绝对好用

有的代理没有 proxy 字样,而且 squid 是源码的,自己可以改内容再编译
想绕过去的话怎么都有办法
作者: depthblue_xsc    时间: 2006-03-03 10:42
我也看过routeros中将ttl改为1的方法,简直是XXX,要彻底的防止二级代理几乎不可能,如果一个产品能够分析常见的二级代理的特征,那么对于改动后的squid等还是没有任何办法的。




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2