最近为了封BT,几乎把NBO的网络论坛找遍了,用NBAR(Network-Based Application Recognition)网络应用识别
NBAR是一种动态能在四到七层寻找协议的技术,它不但能做到普通ACL能做到那样控制静态的TCP UDP的报,也能做到控制一般ACLs不能做到动态的端口的那些协议(如BT)之类。
我就说说过程:
1到http://www.cisco.com/pcgi-bin/tablebuild.pl/pdlm 下载bittorrent.pdlm,(要CCO的)
2放到TFTP,然后用copytftp disk2(大多数应该是flash)
拷到路由器中,
route7206#conf t
Enter configurationcommands, one per line. End with CNTL/Z.
route7206(config)#ipnbar pdlm bittorrent.pdlm
route7206(config)#
!
ip nbar pdlmbittorrent.pdlm
!
1.) 创建一个a class-map and policy map 并且把它应用到相应的端口:
得到关于BT的部分是
class-map match-allbittorrent
match protocol bittorrent
!
!
policy-mapbittorrent-policy
class bittorrent
drop
!
interfaceGigabitEthernet0/2
description CONNECT INSIDE
ip address 192.168.168.1255.255.255.252 secondary
ip address 192.168.21.1255.255.255.0
ip nat inside
service-policy inputbittorrent-policy
service-policy outputbittorrent-policy
duplex full
speed 1000
media-type rj45
no negotiation auto
我实验了一下,这样的话,BT就不能下载,呵呵
------------定义Class-map-------------; ------------定义policy-map-------------; 方法2、采用ACL方法; 我们可以采用以下方式来配置ACL,一种是开放所有端口,只限制bt的端口,配置如下; 还有一种方式是对端口是3000以上的流量进行限速;因为多数蠕虫病毒和p2p的端口都是大于3000的,当然也有正常的应用是采用3000以上的端口,如果我们将3000以上的端口封闭,这样正常的应用也无法开展,所以折中的方法是对端口3000以上的数据流进行限速,例如: ------------定义Class-map--------------; 方法3、采用NAT的单用户连接数限制; 在Cisco IOS 12.3(4)T 后的IOS软件上支持NAT的单用户限制,即可以对做地址转换的单个IP限制其NAT的表项数,因为p2p类软件如bt的一大特点就是同时会有很多的连接数,从而占用了大量的NAT表项,因此应用该方法可有效限制bt的使用,比如我们为IP 10.1.1.1设置最大的NAT表项数为200;正常的网络访问肯定够用了,但如果使用bt,那么很快此IP的NAT表项数达到200,一旦达到峰值,该IP的其他访问就无法再进行NAT转换,必须等待到NAT表项失效后,才能再次使用,这样有效的保护了网络的带宽,同时也达到了警示的作用。 以上我们总结了目前可用的限制bt(p2p软件)的一些方法,具体采用哪种方法只能您根据自己网络的状况来定,当然也可以将几种方法结合起来使用。
方法1、采用Cisco公司的nbar来限制;
配置步骤如下:
!
class-map match-all bittorrent
match protocol bittorrent
class-map match-all edonkey
match protocol edonkey
!
注意:如果match protocol命令里没有bittorrent、edonkey选项,那么说明你的IOS版本还没有包括此协议,此时你需要到Cisco网站上下载bittorrent.pdlm、edonkey.pdlm文件,上传到路由器上,然后定义这种协议:
ip nbar pdlm bittorrent.pdlm
ip nbar pdlm edonkey.pdlm)
!
policy-map limit-bt
class bittorrent
drop
class edonkey
drop
!
------------应用到接口上--------------;
!
interface f0/0
service-policy input limit-bt
service-policy output limit-bt
!
说明:这种方法使用后对一些p2p软件确实起作用,但目前Cisco只定义了少数几个协议(bittorrent、edonkey、kazaa2、gnutella、napster、winmx、fasttrack等),不能覆盖所有的此类软件,这有待于Cisco的继续努力;
!
access-list 101 deny tcp any any range 6881 6890
access-list 101 deny tcp any range 6881 6890 any
access-list 101 permit ip any any
!
说明:这种方法有其局限性,因为现在有的p2p软件,端口可以改变,封锁后会自动改端口,甚至可以该到80端口,如果连这个也封,那网络使用就无法正常工作了;
另外一种方式是只开放有用的端口,封闭其他所有端口;
!
access-list 101 permit tcp any any eq 80
access-list 101 permit tcp any any eq 25
access-list 101 permit tcp any any eq 110
access-list 101 permit tcp any any eq 53
access-list 101 deny ip any any
!
说明:此方法是对网络进行严格的控制,对简单的小型网络还可行,而如果是大型网络,数据流量又很复杂那么管理的难度将非常大;
!
class-map match-all xs
match access-group 101
!
------------定义policy-map-------------;
policy-map xs
class xs
police cir 1000000 bc 1000 be 1000 conform-action transmit exceed-action drop violate-action drop
!
------------定义ACL--------------------;
!
access-list 101 permit tcp any any gt 3000
access-list 101 permit udp any any gt 3000
!
------------应用到接口上---------------;
interface f0/0
service-policy input xs
!
例如限制IP地址为10.1.1.1的主机NAT的条目为200条,配置如下:
ip nat translation max-entries host 10.1.1.1 200
如果想限制所有主机,使每台主机的NAT条目为200,可进行如下配置:
ip nat translation max-entries all-host 200
联系客服