路由器禁用QQ和网络游戏
(2009-01-21 14:49:33)
转载
标签:
杂谈
分类: 网络应用
用路由器禁用QQ和网络游戏已发表在网管员世界20042期上
用路由器禁用QQ和网络游戏
引子
公司早就有制度规定禁止在上班时间禁止使用QQ和网络游戏,可是一直以来只是靠大家的自觉执行,在公司里上班时间用QQ聊天和打网络游戏之类的情况还是非常普遍,最近领导终于按耐不住,要我想办法从技术角度解决这个问题。
关于禁止QQ和网络游戏其实可以通过路由器的访问控制列表Access lists,以下简称ACL)实现的。我公司上网是通过Cisco 2611路由器的NAT功能上网的,WEBMail都是通过NAT
端口映射实现的。

访问控制列表介绍
那么什么是访问控制列表呢?访问控制列是CiscoIOS提供的一种控制网络访问的强大的工具,利用ACL可以在路由器的接口上灵活地控制过滤数据包,从而可以决定在路由器的任意接口上允许或者禁止我们需要控制的数据包。一个IP访问列表是一串控制一个或一组IP或其上的端口的命令序列。
IP访问控制列表分为三类,分别为标准访问控制列表(Standard access lists),扩展访问控制列表(Extended access lists)和命名访问控制列表(Named access lists)
标准访问控制列表是基于源地址和掩码,是对整个TCP/IP协议族的过滤;Standard ACL的编号是1~99;格式如下:
Router(config)#access-list access-lists-number(1~99) {deny|permit} souce [wildcard]
Router(config-if)#{protocol} access-group access-list-number {in|out}
扩展访问列表检查源地址和目的地址,可以精确地过滤TCP或者UDP的端口;Extended ACL的编号是100~199;格式如下:
Router(config)#access-list access-list-number(100-199) {permit|deny} protocol source source-wildward [operator port] destination destination destination-wildcard [operator port] [established] [log]
Router(config-if)#ip access-group access-list-number {in|out}
命名访问控制列表可以使用一组字母和数字的组合来代替扩展访问控制列表中的数字,使用它可以用来删除某一条特定的控制字符串,这样就可以更方便的精心修改。
具体关于ACL的使用请参阅200310月的《网管员世界》或者Cisco的培训教材,比如CCNA的培训教材或相关资料。

禁止QQ和网络游戏
所有的网络应用,此处所的是基于TCP/IP的网络游戏,都是通过和远端的服务器建立tcp或者udp的连接进行通讯的,也就是说它们是用tcp或者udp端口进行通讯的。那么也就是说我们可以通过禁止QQ和网络游戏特定的TCPUDP端口。换一句话说,我们必须先知道它们是通过什么端口通讯的。我们如何才能知道QQ和网络游戏是用什么端口和服务器端口通讯的呢?大家应该都知道一般的操作系统里有一条netstat”命令可以列出详细的端口列表。但
是面对众多的IP地址和端口号,我们是很难看出哪一个IP地址和端口才是我们需要控制的。
其实有很多单机版的网络防火墙软件,可以让我们详细并即时地看到哪一个应用软件在使用什么端口和远端通讯。在这里我推荐大家使用天网防火墙个人版。
下面我就用禁止QQ来演示一下。首先,打开QQ以后,在天网防火墙里可以看到QQ正在和服务器UDP 8080端口进行通讯。那么我们要做的就是禁止源地址UDP 8080端口。
Router(config)# access-list 102 udp deny any any eq 80
Router(config)# access-list 102 tcp permit any any
Router(config)# access-list 102 udp permit any any
Router(config)# access-list 102 ip permit any any
Router(config-if)# ip access-group 102 in
第一个命令定义了编号为102ACL,禁止所有源地址和目的地址的udp 8080端口的数据包,最后一个命令是在interface模式下,此处应在靠近局域网的端口应用上面定义的编号102 ACL。因为ACL默认需要至少有一条规则让数据可以通过网络接口,所以第二、三、四行的命令是规定所有的tcp,udp,ip协议可以通过。
设置完成以后,用天网防火墙可以看到QQ在不停的尝试和远端服务器UDP 8080端口进行通
信,但是过一会儿以后,发现QQ又可以连接上去了。这是因为新版的QQ可以使用TCP 80端口进行通信。因为TCP 80端口是http专用的,所以,如果我们禁用TCP 80端口的话,将使整个局域网无法访问所有的网站,这是绝对不行的。所以,我们只有将所有QQ世界十大禁止游戏服务器的都出来,然后禁止访问。因为标准ACL是过滤所有源地址的整个协议族的,所以我们可以用标准ACL实现。
Router(config)# access-list 2 deny host 61.144.238.145
Router(config)# access-list 2 deny host 61.144.238.146
……
Router(config)# access-list 2 permit any
Router(config-if)# ip access-group 2 out
前面两个命令定义了编号2的标准ACL,禁止所有源地址为host后面的IP的数据包,下面给出现在为止所知的QQ服务器地址,供大家参考,61.144.238.14561.144.238.146202.104.129.151202.104.129.25461.141.194.203202.104.129.25202.104.129.253 61.144.238.155202.96.170.164202.104.129.251218.17.209.23218.18.95.153218.18.95.165218.17.209.4261.144.238.149219.1
33.40.89219.133.40.90219.133.40.21219.133.40.92211.157.38.3865.54.229.253
对于网络游戏的禁止方法是和禁止QQ的方法一样的,用天网防火墙个人版出服务器的端口,然后加以禁止。游戏服务器一般不会使用http端口来进行通信,所以只要用扩展ACL就可以。如果扩展ACL规则不是很多的话,可以将所有的扩展ACL合并多一起。
管理方法
对于ACL的管理,可以用ACL命令,对于标准和扩展ACL,只能对整条ACL进行管理,如果要删除一条ACL的话,使用no access-list number。如果要在一整条序列中添加一个规则的话,这样会相当麻烦。所以,如果使用标准和扩展ACL的话,建议使用Cisco tftp server进行管理。
Router(config)# copy run tftp
(将运行的配置文件拷贝到tftp;
然后将拷贝下来的config文件用写字板打开,就可以进行编辑了。对ACL进行编辑以后,我们需要将原有的运行配置里的需要更改的access-list先删掉。然后将修改后的文件拷贝到运行配置中。这条规则将立刻生效。
Router(config)# copy tftp run
(将修改后的文件恢复到路由器的运行配置中。)
如果要将此配置文件备份到路由器的Flash中,可以使用copy run start命令,这样的话每次路由器启动的时候都会自动加载此配置文件。

总结
一般的路由器都提供了ACL功能,利用ACL可以实现包过滤防火墙的一些功能,比如限制网络访问,限制网络流量等功能。对于一些网络流量不是很大的场合,完全可以借助ACL使路由器实现防火墙的部分功能。达到提高网络安全性和提升网络管理水平的作用。