对于防火墙产品来说,最重要的一个功能就是对事件进行日志记录。本篇博客将介绍如何对ASA进行日志管理与分析、ASA透明模式的原理与配置、利用ASA防火墙的IOS特性实施URL过滤。


一、URL过滤

    利用ASA防火墙IOS的特性URL过滤可以对访问的网站域名进行控制,从而达到某种管理目的。

    实施URL过滤一般分为以下三个步骤:

(1)创建class-map(类映射),识别传输流量。

(2)创建policy-map(策略映射),关联class-map。

(3)应用policy-map到接口上。


案例:如下图所示,实现网段192.168.1.0/24中的主机禁止访问www.4399.com,但允许访问其他网站,如www.163.com

wKiom1nHdySS3QrsAADpyb-eAUQ007.png

配置步骤如下:

(1)配置接口IP,实现全网互通(略)

(2)创建class-map(类映射),识别传输流量。

asa(config)# access-list aaa permit tcp 192.168.1.0 255.255.255.0 any eq www   //创建ACL
asa(config)# class-map aaa1            //创建class-map
asa(config-cmap)# match access-list aaa          //在class-map中定义允许的流量
asa(config-cmap)# exit

asa(config)# regex urla "\.4399\.com"           //定义名称为urla的正则表达式,表示URL扩展名是"4399.com"
asa(config)# class-map type regex match-any urla1        //创建class-map,类型为regex,match-any表示匹配任何一个
asa(config-cmap)# match regex urla                   //定义URL
asa(config-cmap)# exit

asa(config)# class-map type inspect http urla2         //创建class-map,类型为inspect http(检查http流量)
asa(config-cmap)# match request header host regex class urla1    
//在http请求报文头中的host域中的URL扩展名如果是"4399.com",将被丢弃。regex class urla1表示调用名称为urla1的class-map

(3)创建policy-map(策略映射),关联class-map。

asa(config)# policy-map type inspect http policy1      //创建policy-map,类型为inspect http(检查http流量)
asa(config-pmap)# class urla2                  //调用之前创建的class-map
asa(config-pmap-c)# drop-connection log         //drop数据包且关闭连接,并发送系统日志

asa(config)# policy-map policy2                //创建policy-map,将应用到接口
asa(config-pmap)# class aaa1                //调用之前创建的class-map
asa(config-pmap-c)# inspect http policy1           //检查http流量

(4)应用policy-map到接口上。

asa(config)# service-policy policy2 interface inside

注意:一个接口只能应用一个policy-map。



二、日志管理

    对于任何防火墙产品来说,最重要的功能之一就是对事件进行日志记录,ASA使用同步日志(syslog)来记录在防火墙上发生的所有事件。

1.日志信息的安全级别

    日志信息的安全级别分为八个等级,如图所示:

wKioL1nHiK-SSY_IAACovh9MF7g504.png

    信息的紧急程度按照重要性从高到低排列,emergencies(非常紧急)的重要性最高,而debugging(调试)的重要性最低。


2.配置日志

    日志信息可以输出到Log Buffer(日志缓冲区)、ASDM和日志服务器。

    在配置日志前,一般需要先配置时区和时间,配置如下:

(1)配置时区,命令如下:

asa(config)# clock timezone peking 8

    其中peking用来指明所在时区的名字,8是指相对于国际标准时间的偏移量,这个值的取值范围为-23…23。

(2)配置时间,命令如下:

asa(config)# clock set 19:30:00 24 Sep 2017

然后可以分别配置Log Buffer、ASDM和日志服务器。

(3)配置Log Buffer,命令如下:

asa(config)# logging enable
asa(config)# logging buffered informational  //配置日志的级别,也可以写6,表示6以上的级别(0-6级别)

注:Log Buffer(日志缓冲区) 的默认大小是4KB。

asa(config)# show logging           //查看Log Buffer
asa(config)# clear logging buffer       //清除Log Buffer

(4)配置ASDM日志,命令如下:

asa(config)# logging enable
asa(config)# logging asdm informational         //表示6以上的级别 ,informational可用6表示 
asa(config)# clear logging  asdm              //清除ASDM


(5)配置日志服务器

    目前,有很多日志服务器软件。Firewall Analyzer是一款基于Web的防火墙日志分析软件,利用该软件能够监控网络周边安全设备、收集和归档日志,并生成报表。Firewall Analyzer能够帮助网络安全管理员有效监控带宽和防火墙安全事件,全面了解网络的安全状况;监控使用/未使用的防火墙策略并优化策略;通过趋势分析规划网络容量等。Firewall Analyzer支持多种设备/厂商,支持Windows和Linux平台。

案例:如下图所示,在win 2008上安装Firewall Analyzer 6

wKioL1nHklKQ9QBUAACq2MJE1jw628.png

①在ASA防火墙的配置如下:

asa(config)# logging enable
asa(config)# logging timestamp         //启用时间戳
asa(config)# logging trap informational
asa(config)# logging host inside 192.168.0.1    //定义日志服务器的IP地址以及ASA的接口

    ASA与日志服务器的通信默认使用UDP协议514端口。


②Firewall Analyzer 6安装后,默认会启用两个SyslogServer,分别监听UDP的514端口和1514端口。首先使用Firewall Analyzer 启动服务程序,然后使用“Firewall Analyzer Web Client”进入用户端界面,输入初始用户名和密码。


③在主机Windows7上运行命令ping  192.168.0.1  -l  10000  -t 模拟***,然后在Firewall  Analyzer的Web界面上就可以查看到相应的事件。

wKioL1nHmDLTsoL-AAKyFxLgJxE194.png

    在“安全统计”下单击“查看Syslogs”可以查看详细的日志信息。


④可以通过Firewall Analyzer的事件概要报表、安全报表生成报告。

wKiom1nHmRrxqwe4AALfcavmdxU592.png



三、透明模式

    ASA安全设备可以工作在两种模式下,即路由模式和透明模式,默认情况下ASA处于路由模式。

wKiom1nHm1rAeAFxAACkDlNKUu4399.png

1.透明模式

    ASA从7.0版本开始支持透明模式。

    在路由默认下,ASA充当一个三层设备,基于目的Ip地址转发数据包;在透明模式下,ASA充当一个二层设备,基于目的MAC地址转发数据桢(没有配置NAT时)。

    在8.0之前的版本中,透明模式下不支持NAT,8.0及其后续版本支持NAT配置。如果配置了NAT,ASA转发数据包仍然使用路由查找。

    处于透明模式下的ASA虽然是一个二层设备,但与交换机处理数据桢存在着不同。

* 对于目的MAC地址未知的单播数据桢,ASA不会泛洪而是直接丢弃。

ASA不参与STP(生成树协议)。

    透明模式下默认允许穿越的目的MAC地址如下:

广播MAC地址:FFFF.FFFF.FFFF

Ipv4组播MAC地址从0100.5E00.0000到0100.5EFE.FFFF。

Ipv6组播MAC地址从3333.0000.0000到3333.FFFF.FFFF。

BPDU组播MAC地址:0100.0CCC.CCCD (Cisco私有)。

AppleTalk组播MAC地址从0900.0700.0000到0900.07FF.FFFF。

    透明模式下默认允许的三层流量如下:

允许Ipv4流量自动从高级别接口到低级别接口,而不必配置ACL。

允许ARP流量双向穿越,而不必配置ACL。

    ASA在透明模式下运行时,继续使用应用层智能执行状态检测和各项常规防火墙功能,但只支持两个区域。

    透明模式下不需要再接口上配置Ip地址,这样就不用重新设计现有的Ip网络,方便部署。


2.透明模式的配置

(1)切换到透明模式,命令如下:

asa(config)# firewall transparent
ciscoasa(config)#

    需要注意的是:切换时会清除当前的配置。

    查看当前的工作模式的命令如下:

ciscoasa(config)# show firewall

    如果要重新切换到路由模式,需要使用命令:no firewall  transparent


(2)管理IP地址

    需要为ASA分配一个IP地址用于管理目的,管理Ip地址必须处于同一个连接子网。ASA将管理IP地址用作源于ASA的分组的源IP地址,如系统消息、AAA或SYSLOG服务器。

    管理IP地址的配置命令如下

ciscoasa(config)#ip address ip [mask]

(3)MAC地址表及学习

ciscoasa# show mac-address-table        //查看MAC地址表
ciscoasa(config)# mac-address-table aging-time minutes      //设置动态MAC条目的过期时间(默认5分钟)
ciscoasa(config)# mac-address-table static logical_if_name mac_address      //设置静态MAC条目
ciscoasa(config)# mac-learn logical_if_name disable       //禁止特定接口的MAC地址学习

案例1:如图所示,公司为了网络安全,新增了一台防火墙,为了方便部署,将ASA配置为透明模式,管理IP地址配置为192.168.1.253

wKioL1nHn0eB0rV0AACO60iG6Rw288.png

ASA的配置如下:

ciscoasa(config)# firewall transparent
ciscoasa(config)# hostname asa
asa(config)# int e0/0
asa(config-if)# no sh
asa(config-if)# nameif outside
asa(config-if)# security-level 0
asa(config)# int e0/1
asa(config-if)# no sh
asa(config-if)# nameif inside
asa(config-if)# security-level 100
asa(config-if)# exit
asa(config)# ip add 192.168.1.253 255.255.255.0       //配置管理IP地址


案例2:如下图所示,为了增强托管服务器的安全,增加了一台ASA并配置为透明模式,管理IP地址为209.165.201.1/28

wKiom1nHpc_yUUhqAACPSTnUjks008.png

ASA的配置如下:

ciscoasa(config)# firewall transparent
ciscoasa(config)# hostname asa
asa(config)# int e0/0
asa(config-if)# no shut
asa(config-if)# int e0/0.10
asa(config-if)# vlan 10
asa(config-if)# nameif inside
asa(config-if)# int e0/0.20
asa(config-if)# vlan 20
asa(config-if)# nameif outside
asa(config)# ip add 209.165.201.1 255.255.255.240
asa(config)# access-list ysf permit icmp any any 
asa(config)# access-list ysf permit tcp any any eq 80
asa(config)# access-list ysf permit tcp any any eq 21
asa(config)# access-list ysf permit tcp any any eq 25
asa(config)# access-list ysf deny ip any any
asa(config)# access-group ysf in interface outside