现在呢,有很多管理上网行为的软件,那么ASA作为状态化防火墙,它也可以进行管理上网行为,我们可以利用ASA防火墙iOS的特性实施URL过滤可以对访问的网站域名进行控制,从而达到某种管理目的。
实施URL过滤一般分成以下三个步骤:
1、创建class-map(类映射),识别传输流量。
2、创建policy-map(策略映射),关联class-map。
3、应用policy-map到接口上。
配置实例:
使用下面简单的网络拓扑图,在内网主机上编辑hosts文件,添加如下记录(若是生产环境,DNS服务器等齐全,则可省略这步):
172.16.1.1 :www.kkgame.com 。
172.16.1.1 :www.163.com 。
实现内网网段192.168.1.0/24中的主机禁止访问网站www.kkgame.com 但允许访问其他网站(如www.163.com )。
配置步骤如下(接口等基本配置省略):
(1)、创建class-map,识别传输流量:
ciscoasa(config)# access-list tcp_filter1 permit tcp 192.168.1.0 255.255.255.0 any eq www
ciscoasa(config)# class-map tcp_filter_class1
ciscoasa(config-cmap)# match access-list tcp_filter1 #在class-map中定义允许的流量。
ciscoasa(config-cmap)# exit
ciscoasa(config)# regex url1 “.kkgame.com” #定义名称为urll的正则表达式,
表示URL扩展名是“.kkgame.com”
ciscoasa(config)# class-map type regex match-any url_class1 #创建名称为
url_class1的clas-map,类型为regex。关键字match-any表示匹配任何一个。
ciscoasa(config-cmap)# match regex url1
ciscoasa(config)# class-map type inspect http http_url_class1 #创建
名为http-url-class1的class-map,类型为inspect http(检查http流量)
ciscoasa(config-cmap)# match request header host regex class url_class1 #匹配http请求
报文头中的host域中的URL扩展名“.kkgame.com”,url_class1表示调用名称为url_class1的class-map。
ciscoasa(config-cmap)# exit
(2)、创建policy-map,关联class-map。
ciscoasa(config)# policy-map type inspect http http_url_policy1
#创建名称为 http_url_policy1的policy-map,类型为inspect http(检查http流量)
ciscoasa(config-pmap)# class http_url_class1 #调用之前创建的class-map
ciscoasa(config-pmap-c)# drop-connection log #drop数据包并关闭连接,并发送系统日志。
ciscoasa(config-pmap-c)# exit
ciscoasa(config-pmap)# exit
ciscoasa(config)# policy-map inside_http_url_policy #创建名称为 inside_http_url_policy 的policy-map,
它将被应用到接口上。
ciscoasa(config-pmap)# class tcp_filter_class1 #调用之前创建的class-map
ciscoasa(config-pmap-c)# inspect http http_url_policy1 #检查http流量
ciscoasa(config-pmap-c)# exit
ciscoasa(config-pmap)# exit
(3)、应用policy-map到接口上:
ciscoasa(config)# service-policy inside_http_url_policy interface inside
至此,已经实现了需求,需要注意的是,一个接口只能应用一个policy-map。