安全环境(Security Context)
安全环境(Security Context)
1、安全环境概述
ASA从7.0版本开始支持虚拟防火墙,也称为单一设备内的安全环境。多环境与含有多个独立设备相似,每个环境具有自己的一套安全策略(NAT、ACL、路由等)。多环境模式几乎支持在独立设备上可配置的所有选项,但不支持某些特性,如×××、动态路由选择协议等。
ASA 5505不支持多环境,5510及以上型号才支持多环境,但仅免费提供2个环境。
ASA默认处于单模式,要使用多环境需要切换到多模式。
(1)系统执行空间
当切换到多模式时,就进入了系统执行空间。系统执行空间用来进行一些全局性的配置,例如接口的物理特性、配置TRUNK、限制资源使用、创建环境等。
(2)环境特性
每个环境需要有一个名字、接口分配、配置文件用于存储配置和环境自身的配置。ASA会自动创建一个环境,叫做admin context,用于管理特性。
2 安全环境的配置
(1)切换到多模式
ciscoasa(config)# mode multiple
WARNING: This command will change the behavior of the device
WARNING: This command will initiate a Reboot
Proceed with change mode? [confirm]
Convert the system configuration? [confirm]
The old running configuration file will be written to disk0
The admin context configuration will be written to disk0
The new running configuration file was written to disk0
Security context mode: multiple
…………………………………………………….
切换到多模式后ASA需要重新启动。
重新启动后的默认配置如下。
ciscoasa# show run
: Saved
:
ASA Version 8.0(2)
hostname ciscoasa
enable password 8Ry2YjIyt7RRXU24 encrypted
no mac-address auto
interface Ethernet0/0
shutdown
interface Ethernet0/1
shutdown
interface Ethernet0/2
shutdown
interface Ethernet0/3
shutdown
interface Management0/0
shutdown
class default
limit-resource All 0
limit-resource ASDM 5
limit-resource SSH 5
limit-resource Telnet 5
ftp mode passive
pager lines 24
no failover
asdm p_w_picpath disk0:/asdm-602.bin
no asdm history enable
arp timeout 14400
console timeout 0
admin-context admin
context admin
config-url disk0:/admin.cfg
prompt hostname context
Cryptochecksum:410be16e875b7302990a831a5d91aefd
: end
查看当前的模式
ciscoasa# show mode
Security context mode: multiple
(2)系统执行空间的配置
1)配置接口
接口是物理接口或子接口。从6.3版本开始支持TRUNK,但只支持802.1q封装。ASA 5510及以上型号配置TRUNK是通过子接口来实现的,ASA 5505不支持子接口。
配置示例
ciscoasa(config)# interface ethernet0/1
ciscoasa(config-subif)# no shutdown
ciscoasa(config)# interface ethernet0/1.10
ciscoasa(config-subif)# vlan 10
ciscoasa(config)# interface ethernet0/1.20
ciscoasa(config-subif)# vlan 20
2)共享接口的MAC地址
多环境可以共享同一个接口(物理接口或子接口),在这种情况下,每个环境应该为共享接口分配不同的MAC地址,可以手工分配也可以自动分配。
路由模式的多环境可以共享接口,透明模式不允许共享接口。
自动分配MAC地址的命令
ciscoasa(config)# mac-address auto
3)创建环境
切换到多模式后ASA自动创建admin context,在之前所述的默认配置中可以看到。根据需要,管理员可以创建其他的环境。
n 创建名为context_name的环境
ciscoasa(config)# context context_name
n 给环境分配接口
ciscoasa(confix-ctx)# allocate-interface physical_if_name[.subif] [map_name]
参数map_name允许为接口配置别名,用于在环境中使用。
n 指定配置文件
ciscoasa(config-ctx)# config-url URL
配置示例
ciscoasa(config)# context CTX1
ciscoasa(config-ctx)# allocate-interface ethernet0/1.10 int1
ciscoasa(config-ctx)# allocate-interface ethernet0/1.20 int2
ciscoasa(config-ctx)# config-url disk0:/CTX1.cfg
n 查看环境配置
ciscoasa# show context
4)限制资源使用
所有的环境都共享设备的资源,可以限制每个环境对资源的使用,防止各个环境相互影响。
资源限制使用类来定义,所有的环境都使用默认类,但可以为某个环境定义一个特定的类,它将覆盖默认类。
n 定义并配置类
ciscoasa(config)# class {default | resource_class_name}
ciscoasa(config-class)# limit-resource all 0
ciscoasa(config-class)# limit-resource asdm sessions
ciscoasa(config-class)# limit-resource ssh sessions
ciscoasa(config-class)# limit-resource telnet sessions
ciscoasa(config-class)# limit-resource hosts hosts
ciscoasa(config-class)# limit-resource mac-addresses addresses
ciscoasa(config-class)# limit-resource rate inspect inspects/second
ciscoasa(config-class)# limit-resource [rate] conns {conns | xx%}
ciscoasa(config-class)# limit-resource rate syslogs logs/second
ciscoasa(config-class)# limit-resource xlates {xlates | xx%}
limit-resource all 0表示所有资源不做限制。
Telnet和SSH默认最大的会话数为5个,MAC address默认最多65,535条目。
n 将自定义的类分配给某个环境
ciscoasa(config)# context context_name
ciscoasa(config-ctx)# member resource_class_name
配置示例
ciscoasa(config)# class resource-CTX1
ciscoasa(config-class)# limit-resource asdm 3
ciscoasa(config-class)# limit-resource ssh 3
ciscoasa(config-class)# limit-resource conns 40%
ciscoasa(config)# context CTX1
ciscoasa(config-ctx)# member resource-CTX1
(3)环境管理
一旦创建了环境,就可以切换到环境进行配置。
1)在系统执行空间和环境之间切换
ciscoasa# changeto {system | context context_name}
配置示例
ciscoasa# changeto context CTX1
ciscoasa/CTX1#
ciscoasa/CTX1# changeto system
ciscoasa#
2)保存配置
在特定环境中使用命令write memory或copy running-config startup-config只能保存当前环境的配置,要保存所有环境及系统执行空间的配置,需要在系统执行空间中使用以下命令。
ciscoasa# write memory all
3)删除环境
删除某个特定环境,需要在系统执行空间中使用以下命令。
ciscoasa(config)# no context context_name
要删除所有环境,可以使用命令clear configure context。
3 安全环境的配置案例
如图5.3所示,将ASA 5510配置为路由模式下的多环境,不同环境配置不同的策略。用于NAT转换的地址池为209.165.201.0/29。
图5.3 ASA多环境网络拓扑图
ASA 5510的配置步骤如下。
(1)切换到多模式
ciscoasa(config)# mode multiple
(2) 配置接口
ciscoasa(config)# interface e0/0
ciscoasa(config-if)# no shutdown
ciscoasa(config)# interface e0/1
ciscoasa(config-if)# no shutdown
ciscoasa(config)# interface e0/0.1
ciscoasa(config-subif)# vlan 2
ciscoasa(config)# interface e0/0.2
ciscoasa(config-subif)# vlan 4
ciscoasa(config)# interface e0/0.3
ciscoasa(config-subif)# vlan 6
ciscoasa(config)# interface e0/1.1
ciscoasa(config-subif)# vlan 3
ciscoasa(config)# interface e0/1.2
ciscoasa(config-subif)# vlan 5
ciscoasa(config)# interface e0/1.3
ciscoasa(config-subif)# vlan 7
ciscoasa(config-subif)# exit
(3) 创建环境
需要创建context1和context2,admin context已自动创建,只需分配接口。
ciscoasa(config)# context context1
ciscoasa(config?ctx)# allocate?interface Ethernet0/0.1 outside_context1
ciscoasa(config?ctx)# allocate?interface Ethernet0/1.1 inside_context1
ciscoasa(config?ctx)# config?url disk0:/context1.cfg
ciscoasa(config?ctx)# exit
ciscoasa(config)# context context2
ciscoasa(config?ctx)# allocate?interface Ethernet0/0.2 outside_context2
ciscoasa(config?ctx)# allocate?interface Ethernet0/1.2 inside_context2
ciscoasa(config?ctx)# config?url disk0:/context2.cfg
ciscoasa(config)# context admin
ciscoasa(config?ctx)# allocate?interface Ethernet0/0.3 outside_admin
ciscoasa(config?ctx)# allocate?interface Ethernet0/1.3 inside_admin
(4)配置Admin Context
ciscoasa(config)# changeto context admin
ciscoasa/admin(config)# interface outside_admin
ciscoasa/admin(config-if)# nameif outside
ciscoasa/admin(config-if)# security-level 0
ciscoasa/admin(config-if)# ip address 192.168.6.1 255.255.255.0
ciscoasa/admin(config-if)# no shutdown
ciscoasa/admin(config-if)# exit
ciscoasa/admin(config)# interface inside_admin
ciscoasa/admin(config-if)# nameif inside
ciscoasa/admin(config-if)# security-level 100
ciscoasa/admin(config-if)# ip address 192.168.7.1 255.255.255.0
ciscoasa/admin(config-if)# no shutdown
ciscoasa/admin(config-if)# exit
ciscoasa/admin(config)# route outside 0 0 192.168.6.2
ciscoasa/admin(config)# nat-control
ciscoasa/admin(config)# nat (inside) 1 0 0
ciscoasa/admin(config)# global (outside) 1 209.165.201.1
ciscoasa/admin(config)# access-list ACLoutside permit icmp any any
ciscoasa/admin(config)# access-group ACLoutside in interface outside
(5) 配置Context1 Context
ciscoasa/admin(config)# changeto context context1
ciscoasa/context1(config)# interface outside_context1
ciscoasa/context1(config-if)# nameif outside
ciscoasa/context1(config-if)# security-level 0
ciscoasa/context1(config-if)# ip address 192.168.2.1 255.255.255.0
ciscoasa/context1(config-if)# no shutdown
ciscoasa/context1(config-if)# exit
ciscoasa/context1(config)# interface inside_context1
ciscoasa/context1(config-if)# nameif inside
ciscoasa/context1(config-if)# security-level 100
ciscoasa/context1(config-if)# ip address 192.168.3.1 255.255.255.0
ciscoasa/context1(config-if)# no shutdown
ciscoasa/context1(config-if)# exit
ciscoasa/context1(config)# route outside 0 0 192.168.2.2
ciscoasa/context1(config)# nat-control
ciscoasa/context1(config)# nat (inside) 1 0 0
ciscoasa/context1(config)# global (outside) 1 209.165.201.2-209.165.201.4
(6)配置Context2 Context
ciscoasa/context1(config)# changeto context context2
ciscoasa/context2(config)# interface outside_context2
ciscoasa/context2(config-if)# nameif outside
ciscoasa/context2(config-if)# security-level 0
ciscoasa/context2(config-if)# ip address 192.168.4.1 255.255.255.0
ciscoasa/context2(config-if)# no shutdown
ciscoasa/context2(config-if)# exit
ciscoasa/context2(config)# interface inside_context2
ciscoasa/context2(config-if)# nameif inside
ciscoasa/context2(config-if)# security-level 100
ciscoasa/context2(config-if)# ip address 192.168.5.1 255.255.255.0
ciscoasa/context2(config-if)# no shutdown
ciscoasa/context2(config-if)# exit
ciscoasa/context2(config)# route outside 0 0 192.168.4.2
ciscoasa/context2(config)# nat-control
ciscoasa/context2(config)# nat (inside) 1 0 0
ciscoasa/context2(config)# global (outside) 1 209.165.201.5-209.165.201.6
ciscoasa/context2(config)# access-list INTERNET remark Inside users only access HTTP and HTTPS servers on the outside
ciscoasa/context2(config)# access-list INTERNET permit tcp any any eq http
ciscoasa/context2(config)# access-list INTERNET permit tcp any any eq https
ciscoasa/context2(config)# access-group INTERNET in interface inside
(7)保存配置
ciscoasa/context2(config)# changeto system
ciscoasa(config)# write memory all
(8) 其他配置及验证
1)边缘路由器的TRUNK接口也是通过配置子接口实现的,还需要分别配置指向地址池209.165.201.0/29的明细路由及访问Internet的默认路由。
2)验证在3台主机上均可访问Internet。
3)在ASA的系统执行空间中查看FLASH
ciscoasa# sh flash
………………………………………………
11 -rw- 1973 00:42:03 Sep 16 2009 old_running.cfg
12 -rw- 1733 07:52:20 Sep 16 2009 admin.cfg
15 -rw- 1680 07:52:21 Sep 16 2009 context1.cfg
18 -rw- 1680 07:52:23 Sep 16 2009 context2.cfg
可以看到每个环境保存的配置文件。其中old_running.cfg为自动保存的原单模式下的配置文件。
4)恢复到单模式
ciscoasa(config)# copy flash:old_running.cfg startup-config
ciscoasa(config)# mode single
然后ASA会重新启动。