思科ASA 5505防火墙是通过创建vlan,将端口加入vlan,对vlan的安全等级进行设置的方式创建安全区域,通过ACL对vlan之间的流量进行控制;
0x01 ,搭建实验拓扑如下:
实验要求及目的:配置安全区域,安全规则,实现trust区域中的CLIENT可以ping通untrust区域中的SERVER,SERVER也可以ping通CLIENT ;
0x02 步骤,命令
首先对asa5505进行配置清空,减少实验干扰:主要用到两条命令:write erase ,reload
ciscoasa#write erase
Erase configuration in flash memory? [confirm]
[OK]
ciscoasa#reload
Proceed with reload? [confirm]
。。。。然后就是重新加载过程,直到:
INFO: MIGRATION - Saving the startup errors to file 'flash:upgrade_startup_errors_201310031651.log'
Pre-configure Firewall now through interactive prompts [yes]:n # 输入N,表示不进行交互操作
Type help or '?' for a list of available commands.
ciscoasa>
查看vlan与端口配置情况:show switch vlan 或者 sh sw vl
ciscoasa#show switch vlan
VLAN Name Status Ports
---- -------------------------------- --------- -------------------------------
1 inside up Et0/1, Et0/2, Et0/3, Et0/4
Et0/5, Et0/6, Et0/7
2 outside down Et0/0
可以看到,vlan1默认开启,并且逻辑名称为inside(安全区域的名字,在思科中,一般 inside 表示 trust区域,outside 表示 untrust区域)包含大部分接口,vlan2为 outside,只加入了e0/0口;
接下来,需要将e0/1 和 e0/2接口分别加入两个安全区域,即创建两个vlan,一个vlan 属于trust,另一个属于 untrust,并且通过设置安全级别来区分安全区域:
配置vlan 1 为 inside, 即为trust区域:
ciscoasa#conf t //进入全局配置模式
ciscoasa(config)#int vlan 1 // 对vlan 1进行配置
ciscoasa(config-if)#ip address 1.1.1.254 255.255.255.0 // 设置vlan 1 虚接口的 ip 地址,相当于设置 e0/1 口的 ip 地址
ciscoasa(config-if)#security-level 100 // 设置安全区域的安全等级为 100, 安全等级越高,受信任程度越高,即将vlan 1 设置为 trust区域
ciscoasa(config-if)#no shutdown // 激活端口
ciscoasa(config-if)#
配置vlan 2 为 outside, 即为untrust区域:
ciscoasa#conf t
ciscoasa(config)#int vlan 2
ciscoasa(config-if)#ip add 2.2.2.254 255.255.255.0 // 设置vlan 1 虚接口的 ip 地址,相当于设置 e0/2 口的 ip 地址
ciscoasa(config-if)#security-level 0 // 设置安全区域的安全等级为 0即将vlan 2 设置为 untrust区域
ciscoasa(config-if)#no sh // 激活端口
ciscoasa(config-if)#
将 e0/2 接口加入 vlan 2(相当于将端口加入安全区域):
ciscoasa(config)#int vlan 2
ciscoasa(config-if)#int e0/2
ciscoasa(config-if)#switchport access vlan 2
查看vlan,端口情况 以及 查看 vlan , ip对应情况:
ciscoasa(config-if)#show switch vlan
VLAN Name Status Ports
---- -------------------------------- --------- -------------------------------
1 inside up Et0/1, Et0/3, Et0/4, Et0/5
Et0/6, Et0/7
2 outside up Et0/0, Et0/2
#######################################################################################
ciscoasa(config-if)#show int ip brief
Interface IP-Address OK? Method Status Protocol
Ethernet0/0 unassigned YES NVRAM down down
Ethernet0/1 unassigned YES NVRAM up up
Ethernet0/2 unassigned YES NVRAM up up
Ethernet0/3 unassigned YES NVRAM down down
Ethernet0/4 unassigned YES NVRAM down down
Ethernet0/5 unassigned YES NVRAM down down
Ethernet0/6 unassigned YES NVRAM down down
Ethernet0/7 unassigned YES NVRAM down down
Vlan1 1.1.1.254 YES manual up up
Vlan2 2.2.2.254 YES manual up up
此时,可以在 CLIENT 上ping 1.1.1.254 ,显示可以ping通,则防火墙上的vlan ip 配置生效了,但是ping 2.2.2.2[SERVER]显示目标主机不可达, 因为在防火墙上没有配置安全规则放行流量,[SERVER端也一样]:
理解一些概念:
在思科防火墙中,不同安全级别的接口之间访问时,遵从:允许出站(outbound)连接 [即从高安全等级100到低安全等级0,我可以给你发消息],禁止入站(inbound)连接 [即低安全等级0到高安全等级100,你不能回我消息],并且,禁止相同安全级别的接口之间通信 [如果你的安全等级为100,我也为100,咱俩不能相互发消息]
配置安全策略,放行从untrust 到 trust 区域的icmp响应报文:
ciscoasa#conf t //进入全局配置模式
ciscoasa(config)#access-list icmp permit icmp host 2.2.2.2 host 1.1.1.1 echo-reply // access-list [创建ACL] icmp[ACL条目名称] permit [执行的动作,允许或拒绝] icmp[协议类型] host[表示指定源主机ip] 2.2.2.2 host[表示指定目的主机ip1.1.1.1] echo-reply[报文类型:icmp响应报文]
ciscoasa(config)#access-group icmp in int outside //access-group [将指定ACL应用到接口] icmp[要应用的ACL的名称] in [流量方向:inbound] int outside [应用到outside接口]
######################################################################
查看ACL
ciscoasa(config)#show access-list
access-list cached ACL log flows: total 0, denied 0 (deny-flow-max 4096) alert-interval 300
access-list icmp; 1 elements; name hash: 0xd95cd98d
access-list icmp line 1 extended permit icmp host 2.2.2.2 host 1.1.1.1 echo-reply(hitcnt=3) 0xe655907e
此时,在CLIENT上ping 2.2.2.2,可以ping通:
从设置SERVER ping通 CLIENT 配置方法同上,注意应用接口,流量方向,源地址,目的地址,协议,即可;