因为防火墙的过滤功能设置方法过于烦琐,使得很多人都不愿使用其功能,但仔细研究后,你会发现防火墙的过滤功能是如此的强大,且可控性强,十分细化。
以下皆为实际案例测试通过
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的需求流量并丢失,达到屏蔽这两个网址的作用。