因为防火墙的过滤功能设置方法过于烦琐,使得很多人都不愿使用其功能,但仔细研究后,你会发现防火墙的过滤功能是如此的强大,且可控性强,十分细化。

以下皆为实际案例测试通过

1. 先计划好需要过滤的IP网段

object-group network url_filter_group

network-object 172.16.10.0 255.255.255.128

network-object 172.16.10.128 255.255.255.192

network-object 172.16.10.192 255.255.255.224

2. 然后定义好时间段:

time-range url_range

periodic weeddays 8:30 to 17:30

3. 定义ACL并入时间控制

access-list url_filter_list extended permit tcp object-group url_filter_group any eq www time-range url_range

之所以不用any any 除了些许IP不需要过滤外,最主要的原因是只过滤http流量中的关键字,其它流量含此关键词不用过滤。

4. 接下来写好需要过滤的网站关键字,利用正则表达式来达到匹配多个关键词(正则表达式使用方法可自行搜索,属于数学的内容。)

regex url_filter1 \.youku\.com

regex url_filter2 \.tudou\.com

……

5. 建立普通class-map 来匹配ACL。

class-map url_class

match access-list url_filter_list

exit

6. 建立正式表达式类型的class-map来关联所要过滤的正式表达式关键词。

class-map type regex match-any url_class_regex

match regex url_filter1

match regex url_filter2

exit

说明: class-map可建立两种类型,一为审查,二为正则表达式。审查类型的class-map只能被审查类型的调用。正则表达式只能被正则表达类型的class-map匹配。正则表达式类型的class-map可被任意类型的map匹配。审查类型的 可以审查DNS、FTP、HTTP等,并且可以选择match需求还是答复报文(rquest与response),答复报文与需求报文的子选项不一样。我们要过滤网站的关键词,这里选择需求报文,并选择header就可以了。(如果你想审查内容,选择body, 这样,网站内含有关键词也会被丢弃。)

7. 建立类型为审查的class-map来关联正则表达式的class-map

class-map type inspect http match-all url_class_inspect

match request header host regex class url_class_regex

头部包含很多字项,如下图,我们选择host项,并选择审查正则表达式class-map内容,如果这里填上match not request header host regex class url_class_regex 将达到只允许访问某些网站的目的。

8. 建立审查类型的policy-map来匹配审查类型的class-map并做出相应动作

policy-map type inspect http url_policy_inspect

class url_class_inspect

drop-connection log

exit

说明:policy-map只有普通与审查两种,审查类型的policy-map只能调用审查类型的class-map。同样,普通类型的policy-map也只能调用普通类型的class-map。然接口只能应用普通类型的policy-map,所以还得建立普通类型的policy-map来调用普通类型的class-map。再在普通类型的class-map下调用审查类型的policy-map(polci-map只有调用class-map后才有执行动作的功能,class-map没有单独执行动作的功能,policy-map单独也没有,虽然policy-map也可以match正则表达式或者正则表达式的class-map,但却没有执行动作的功能。普通policy-map调用普通class-map后,可执行审查inspect功能,可以设置流量带宽,带有drop功能,但inspect没有,所以需要在审查类型的policy-map调用审查类型的class-map后执行drop功能。)

9. 最后建立普通的policy-map来关联普通的class-map并调用审查类型的policy-map达到丢弃正则表达式内容的目的。

policy-map url_policy

class url_class

inspect http url_policy_inspect

exit

接下来就是应用在接口上。因为我们审查的的是需求流量,故应用在靠近数据源的接口上。

service-policy url_policy interface inside

通过以上命令,可以对相关IP组内的的http流量进行审查,查找含有.you.com或.tudou.com的需求流量并丢失,达到屏蔽这两个网址的作用。