现在呢,有很多管理上网行为的软件,那么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 )。
    Cisco ASA 高级配置之URL过滤_第1张图片

    配置步骤如下(接口等基本配置省略):
    (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。