silvanesw 发表于 2007-7-27 15:57:21

关于分别封QQ和QQ共享的讨论,已经在本人的ROS中实现。

在这之前先要转贴一下精华区会员soft_route 的贴子。因为他的说明对封QQ的原理做了解释。只不过封的过程有一些问题,但是在这之前还需

要说明有一个难以解决的尴尬问题,因为QQ登陆的TCP方式使用目的端口80 ,所以要想封QQ,必须封掉网页。。。。这算是一个副作用,也就

是网上很多人都认为QQ是无法被封的原因。

首先来说封QQ,以下是贴子引用。

-------------------------------------------------------------

QQ的登陆方式 :
UDP方式,目的端口8000 4000=OICQ Client
TCP方式,目的端口80
VIP方式,目的端口443
文章内容:
QQ服务器分为三类:

1、UDP 8000端口类7个:速度最快,服务器最多。
QQ上线会向这7个服务器发送UDP数据包,选择回复速度最快的一个作为连接服务器。
sz sz2 : 61.144.238.145 146 156
sz3 sz4 sz6 sz7 : 202.104.129.251 254 252 253
sz5 : 61.141.194.203

2、TCP HTTP连接服务器2个,使用HTTP 80端口连接
这2个服务器名字均以tcpconn开头,域后缀是tencent.com,域名与IP对应为
tcpconn tcpconn3 218.17.209.23
tcpconn2 tcpconn4 218.18.95.153
虽然有4个名字,但是只有2个服务器

3、会员VIP登陆服务器,使用HTTP 443安全连接
服务器IP 218.17.209.42

由于第2、3种我这儿无法选择进行登陆,我只是通过反向查询得到了IP及端口,至于第1种我经过了详细的测试,封锁了这7个UDP服务器,QQ是

不能登陆的。
Nslookup -querytype=all www.tencent.com
218.18.95.165
202.96.170.188
202.104.129.246
61.144.238.137
202.96.170.175
202.103.190.61
202.103.149.40
218.18.95.140
218.18.95.153
61.135.131.240
216.239.33.99
218.17.209.23
202.104.129.251

-----------------------------------------------------------------------

经过以上分析,登陆QQ所开的所有端口为顺序为8000,4000,80,443.之所以封不住,问题在于,它的服务器远不止这些。光封这些是没有用处的

。而我,想起了以前的NT权限,可能大家对这方面不太熟悉吧,大致过程是:对用户分组,根据用户类型分成不同的组,然后直接对目录设置

组权限,当需要新加一个用户时,只需要把用户设置给不用的组,此用户即具有该组所对应的权限。类似的利用可以用在封QQ上。
我将所有访问8000(UDP),4000(UDP),443(TCP)端口的IP添加到一个组,就是一个动态列表。然后我直接封锁内网指定IP对这个列表的访问,

再加上直接封掉80端口,从而彻底断掉指定IP上QQ的问题。
经过如上的配置,我已经在网吧成功封掉了吧台QQ。
而单纯封QQ共享(主要是网吧应用,防止别人在共享里面存放攻击类软件,但是做到最后也只是一个尝试。)
   经过跟踪,QQ共享使用TCP9910端口,只是当封掉9910后,和上面类似,它会尝试使用80,443等端口连接服务器,封掉的办法仍然和上面类

似,将所有访问TCP 9910端口所对应的IP添加到一个列表中去,然后直接禁止访问这个列表中的所有端口。
以下是设置的脚本。
本人两个地方使用ROS,封QQ是2.9.26,封QQ共享是2.9.27
以下为详细代码和设置。(以下为本人研究结论,非转载,其中可能有一些错误的地方,但是已经解决了传说中的QQ不能封住的问题,另外,这里是直接封QQ本身,使用代理来上QQ不在讨论之内。)


封QQ:
add chain=forward protocol=udp dst-port=8000 action=add-dst-to-address-list \
    address-list=qq_lst address-list-timeout=0s comment="禁止主机上QQ" \
    disabled=no
add chain=forward protocol=udp dst-port=4000 action=add-dst-to-address-list \
    address-list=qq_lst address-list-timeout=0s comment="" disabled=no
add chain=forward src-address=192.168.10.211 protocol=udp \
    dst-address-list=qq_lst action=drop comment="" disabled=no
add chain=forward src-address=192.168.10.211 protocol=tcp dst-port=80 \
    action=drop comment="" disabled=no
add chain=forward src-address=192.168.10.211 protocol=tcp dst-port=443 \
    action=drop comment="" disabled=no


封QQ共享:
add chain=forward protocol=tcp dst-port=9910 action=add-dst-to-address-list \
    address-list=qq_share address-list-timeout=0s comment="filter qq_share" \
    disabled=yes
add chain=forward protocol=tcp dst-port=0-65535 dst-address-list=qq_share \
    action=drop comment="" disabled=yes

以下贴出封QQ共享的图。封QQ的类似,就不贴了。(题外话,腾讯真是太有钱了,QQ共享服务器20多个IP,QQ服务器300多个IP。)











[ 本帖最后由 silvanesw 于 2007-7-27 16:44 编辑 ]

dhp 发表于 2007-7-28 00:09:33

好文章

wyuan523 发表于 2007-7-30 22:18:47

学习。 。 。

ee007 发表于 2007-7-30 22:52:49

顶顶!

soft_route 发表于 2007-8-2 22:07:06

不错!顶!:P

luzai 发表于 2007-8-3 15:49:52

看了半天,没点新意
我们公司内部早就开始实现对大部分人禁q,少部分人开放的服务了
但是对代理真的没招

silvanesw 发表于 2007-8-4 19:36:58

换句话说,封掉代理的方法和封掉QQ的方法没有两样。代理也是基于IP和端口的。楼上的也太没有新意了。不会引申来利用了。

消瘦的浮云 发表于 2008-6-19 11:30:36

弱弱的问一句:
为什么我的“地址列表”栏里面的东西会一会有一会没有啊?

hcb 发表于 2008-6-19 15:54:30

基本原理就是封服务器IP,用代理的也一样封,发现一个代理就封一个,至于如何发现,可以用另外的软件自动检测

专卖精品 发表于 2008-6-19 16:08:45

用3.0的L7

silvanesw 发表于 2008-6-19 17:16:43

难道被挖坟了?快一年的贴子了,现在又被挖出来了?呵呵.

zheng1983 发表于 2009-9-28 10:36:19

6# luzai


请问你们公司用ROS 通过什么方法实现的啊

zheng1983 发表于 2009-9-28 10:37:15

好像没效果 请指点下
页: [1]
查看完整版本: 关于分别封QQ和QQ共享的讨论,已经在本人的ROS中实现。