分类: LINUX
2011-09-26 15:23:58
朋友公司的一个客户请朋友的公司帮忙把内网的QQ给封掉了,朋友请我帮忙给看看。
到实地考察后也解到该客户使用JUNIPER SSG5-Seria路由器通过光纤接入internet,路由器的IP地址为192.168.6.1.1,内网中大概有40多台电脑,IP也是192.168.6.1/24网段的。
该客户的这个要求一共有两个难点:
一是JUNIPER SSG5-Seria路由器我以前没有接触过,且全是英文界面,只能慢慢摸索,好在后来也在网上查到了一些资料可供参考;
二是因为腾讯QQ服务器的数量众多,且提供多种接入方式,要想完全封掉内网的QQ确实有一些难度。网上虽然有不少资料,但多语焉不详。
经过对网上这些资料的汇总分析后得到以下信息,QQ的连接一共使用三种方式,一种是使用UDP协议8000端口,另一种是供VIP用户(也就是会员)登录使用的TCP协议443端口,第三种同样是TCP协议的80端个,每个端口对应的服务器的IP地址若干个。其中UDP协议的8000端口和供VIP用户登录的TCP协议的443端口可以直接封掉,而TCP协议的80端口因为浏览网页也使用到,所以不能直接封掉,否则会导致网页打不开,只有封掉相应的IP地址。
下面就说一下具体的步骤:
一、登录路由器
JUNIPER SSG5-Seria路由器的连接方式多,但因本身对该路由并不熟悉,所以最简单的方式就是通过WEB方式登录。
在浏览器中输入路由的IP地址,本例是中,显示如下图:
(图1)
输入用户名以及密码,点击下面的“Login”按钮。如果路由器是使用的初始密码,则用户名和密码都是“netscreen”。
进入路由器后显示下面的主界面:
(图2)
在上面的界面中,左边部分是菜单,右边具是具体的内容。
我们现在要先把UDP协议的8000端口和TCP协议的443端口封掉,点击菜单“Policy”-“Policy Elements”-“Services”-“Custom”,显示下如界面:
(图3)
点击右上角的“New”按钮,弹出如下界面:
(图4)
在“Service Name”一栏中为本端口组随便起一个名子,比如“QQ端口”,在下面的端口选择中的第一条,选择UDP,“Source Port”保持默认“0-65535”,“Destination Port”中的“Low”和“Hight”均输入“8000”,然后两样的方法在第二条中定义TCP协议的443端口。定义好后界面如下:
(图5)
点击最下面的“OK”按钮,退出本界面,返回到上一层界面,就会在下方出现一个新的端口组,如图4中所示。
下面选择“Policy”-“Policies”菜单来定义具体的规则和策略,如下图:
(图6)
在上图的界面中,要先在“From”中选择“Trust”(即安全区域),在“To”中选择“Untrust”,然后点击“New”按钮,出现如下所示的策略定义界面。
(图7)
在“Name (optional)”中输入本条策略的名子,可以是随便内容,如“KillQQ端口”,“Source Address”中选择“Address Book Entry”,然后在后面的下拉列表中选择“Any”(代表源地址可以是任意的),“Destination Address”中同样选择“Address Book Entry”,后面一样选择“Any”(代表目录的地址也可以是任意的),“Service”选择我们刚才建立的端口集合,这儿应该是“QQ端口”,“Application”中选择“None”,下面的“Action”中一定要选择“Deny”(拒绝),最后的“Position at Top”后面打上勾(表示将本条策略加到最上面),最后点击“OK”按钮,返回到图6的界面,此时就会在最上面出现刚才我们添加的规则,如下图。
(图8)
至此,8000和443端口就已经封掉了。
下一步的的工作就是封使用80端口的服务器的IP地址了。腾讯提供80端口的服务器的IP地址太多,收集这些IP地址是个比较繁琐的工作。获得这些IP地址的方法比较多,这儿提供一个相对比较简单的办法。安装一个QQ2008II Beta1版,运行,然后登录。登录后点击左下角的菜单,然后选择“设置”-“系统设置”-“登录设置”,弹出如下图的界面:
(图9)
在图9界面的最下方显示有“当前登录信自:xxx.xxx.xxx.xxx:xxx(xxx方式登录)”字样,这儿的IP地址即为我们需要封掉的IP地址。(注:图9中显示之所有显示UDP方式登录是因为这个截图并不是真实操作时的截图,而是事后写本文时在作者自己机器上随便运行了一下QQ而截下的图片,实际操作中,因为我们在前面已经封掉了8000和443端口,这儿提示的IP地址就只可能是80端口的。)
需要说明的是,腾讯提供了N个接受80端口登录的服务器的IP地址,此处我们只是查到了一个,其他的需要在封掉这个IP后再通过QQ登录来获得,每次只能获得一个IP。原则是获得一个封掉一个,直到QQ无法登录为止。
在JUNIPER SSG5-Seria路由器中封IP的方法是点击左右的菜单“Policy”-“Policy Elements”-“Addresses”-“List”,显示如下界面:
(图10)
我们要把我们要封掉的IP地址添加到上图的列表中去,具体的方法是在上方第二行的下拉列表中选择“Untrust”,然后点击“New”按钮,出现如下所示界面。
(图11)
在“Address Name”中为你要添加的IP地址起一个名子,比如“QQ_IP1”,“Comment”中写上备注以备以后查阅时能了解这是什么IP,当然也可以不写。
在“IP Address/Domain Name”中选择第一项“IP Address/Netmask”,然后填入你刚才用QQ查到的IP地址,本例中比如“219.133.49.174/32”(此处的32代表子网掩码为255.255.255.255,即219.133.49.174这个IP是指一台主机而不是一个网段)。在“Zone”中选择“Untrust”。最后点击下面的“OK”按钮。最后的界面如下图所示。
(图12)
点击“OK”按钮后,该IP地址就添加到IP地址列表中去了,但因为我们要添加的IP地址有很多,在策略中不方便操作,所以我们最好把这些已经添加的IP地址分到一个地址组中去,这样我们在添加策略时只要选择该组,就一次性把该组中所包含的IP地址应用于该策略。
添加分组的方法是打开菜单“Policy”-“Policy Elements”-“Addresses”-“Groups”,显示如下界面。
(图13)
在左上角的“Zone”中选择“Untrust”,然后点击右边的“New”按钮,出现图14的界面。
(图14)
在“Group Name”中为这个IP地址组起一个名子,比如“QQIP地址组”。
在“Comment”中为本组做一下备注,不做也可以。然后在右边的列表框中找到我们刚才新添加的IP地址的名称“QQ_IP1”,选定,单击“<<”按钮,把这个IP地址添加到左边的列表框中。这样我们就把QQ_IP1添加到组“QQIP地址组”中去了,最后点击“OK”按钮。
当在右边的列表框中有多个你需要添加到组中的IP地址时,你可以通过“Ctrl”或“Shift”键配合鼠标进行多选。
组添加完毕后我们就可以进行策略的设置,同样打开如图6所示的界面,在“From”中选择“Trust”(即安全区域),在“To”中选择“Untrust”,然后点击“New”按钮,出现如图7所示的策略定义界面。其他的内容跟前面封端口的操作一样,唯一不同的是在“Destination Address”后面的“Address Book Entry”中要选择我们刚才新建的“QQIP地址组”。这样这条策略我们就建好了。所有发往这个地址组中包括的IP地址的消息都会被拒绝掉。
通过上面的方法,每拒绝掉一个IP地址以后就再次登录QQ,然后查到新的IP地址,添加到路由器的IP地址列表中,再把这个IP地址添加到策略中指定的IP地址组中去,这样我们就可以一个一个IP地址过滤,直到我们无法登录QQ为止,所有的IP地址就添加完毕。整个过程繁琐,但没办法省略。我也尝试过使用网上一些网友公布的IP地址,但后来发现有些IP地址是错误的,还有不完整的,最后只能自己尝试。
使用本方法来封堵QQ,优点时基本上把QQ连接的所有途径都封堵掉了。缺点也是显而易见的,就是不能一劳永逸,因为腾讯有可能增加新的QQ服务器,这样我们一旦发现有新的IP就要参照上面的方法继续添加到策略中指定的IP地址组中去就OK。好在腾讯并不会频繁变动IP服务器的IP地址。
至此整个工作就完成了,有知道更好办法的朋友也请指点一下。
后续:
在完成上面的设置过后的几天,接到朋友的电话说使用WEB页方式登录邮箱登录不上去了,而且分别试了新浪、163、QQ等,都不行。在网上查了一下资料得知443端口被https协议使用到,所以把443端口封掉后会出现使用https协议网页打不开的情况,而好多邮箱包括网上银行都广泛使用https协议,所以上面设置基本上做了一些调整,重新打开443端口,而把使用443端口提供接入的IP地址服务器给封掉