六、虚拟防火墙
  (一)虚拟防火墙的特性:
  1、我们可以将一个单一的物理防火墙逻辑上分为多个虚拟防火墙,每个虚拟防火墙都是独立的设备。
  2、它们有自已独立的安全策略,接口和管理接口
  3、每个虚拟防火墙保存一个配置文件,以保存每个虚拟防火墙的策略和配置。
  4、虚拟防火墙不支持vpn,组播和动态路由协议
  (二)虚拟防火墙的种类
  虚拟防火墙分为:admin context和普通虚拟防火墙。
  admin context防火墙特性:
  admin context必须先于其他的虚拟防火墙进行创建和配置。
  用户登录到admin context虚拟防火墙拥有了系统管理员的权限,可以访问系统以及其他虚拟防火墙。
  (三)流量分类
  因一个物理防火墙分为多个虚拟防火墙,那到底哪些数据流量属于哪个虚拟防火墙的呢?即如何把数据流量分配给虚拟防火墙。
  1、按接口划分:即将一个接口的划分到一个虚拟防火墙中,那么通过这个接口的流量都属于这个虚拟防火墙的。
  2、基于MAC地址划分:一个接口属于多个虚拟防火墙共有。需要为这个共享接口指定多个MAC地址,即每个虚拟防火墙指定一个mac地址。可手工指定,也可自动产生。
  由于ASA的接口有限,所以在多虚拟防火墙的模式下,我们会经常遇到一个接口同时分配给多个虚拟防火墙。这个时候使用物理接口来对流量进行分类的办法将在这种情况下不再适用,因为防火墙无法确定流量究竟应该转发到哪个虚拟防火墙。我们需要使用其他的方法来对流量的走向进行区分,通常我们会使用自动或者手动为这个分配给多个虚拟防火墙的共享接口指定不同的MAC地址,防火墙将使用MAC地址来区分流量的走向。
  手动指定MAC地址:
  在每个虚拟防火墙的该共享接口下配置:mac-address HHH.HHH.HH
  例如:
  hostname(config)#Interface F0/0
  hostname(config-if)# mac-address 0001.0001.0001
  自动指定MAC地址:
  在防火墙的SYSTEM平台的全局配置模式下配置:mac-address auto
  例如:
  hostname(config)# mac-address auto
  3、基于NAT划分:如果没有为接口指定的MAC地址,防火墙当收到一个通过共享接口的流量时,防火墙只会检查目的IP地址。通过要使用目的IP地址来决定数据包的走向,那么防火墙必须知道目的地址是被定位在哪个虚拟防火墙上。NAT技术可以提供这样的功能。NAT的转换条目可以使防火墙将数据包转发到正确的虚拟防火墙上。
  配置静态NAT转换:
  ? Context A:
  static (inside,shared) 10.10.10.0 10.10.10.0 netmask 255.255.255.0
  ? Context B:
  static (inside,shared) 10.20.10.0 10.20.10.0 netmask 255.255.255.0
  ? Context C:
  static (inside,shared) 10.30.10.0 10.30.10.0 netmask 255.255.255.0
  当我们使用多防火墙模式,并且共享了接口到多个虚拟防火墙的时候,我们需要注意将流量转发到正确的虚拟防火墙上去,如果没有指定MAC地址(不管是手动还是自动)并且也没有配置NAT的话,防火墙将不能找到正确的目的地址而将数据包丢弃。
  (四)配置虚拟路由器
  1、基本配置
  #show mode             //显示当前路由器运行的模式
  #mode mltiple          //启用多虚拟防火墙
  #admin-context name     //首先创建一个admin-context虚拟防火墙
  #context name           //创建其他虚拟防火墙,注意虚拟防火墙名区分大小写
  2、为虚拟防火墙分配接口
  先设置好虚拟防火墙名,然后在虚拟防火墙配置模式下配置:
  #allocate-interface  物理接口名   [别名]  [visible | invisible] //为接口关联一个别名。也可以不关联。
  #allocate-interface eth0 int0   visible    //把eth0划分给一个虚拟防火墙,并且关联一个别名叫int0,并且让物理接口ID是可见的。invisible是不可见。
  #config-url url   //每个虚拟防火墙有独立的配置。为虚拟防火墙指定下载配置的地点和名称。
  #config-url c1.cfg   //指定配置为c1.cfg
  七、防火墙模式
  防火墙有两种模式:路由器模式和透明模式。路由器模式是常用的模式,配置方法如常规方法,这里主要解释透明模式。
  (一) 防火墙的透明模式的特性:
  (1)工作在二层,接口不需要配置IP地址;
  (2)只支持两个接口,inside和outside接口,这两个接口都接内网地址,像交换机的一个端口一样,没有区别。
  (3)不支持nat,QOS,多播,VPN,动态路由协议,ipv6,dhcp中继(可作DHCP服务器,但不能做DHCP中继)
  (4)支持多虚拟防火墙。在多虚拟防火墙下,每个虚拟防火墙都需配一个管理IP地址,但不能把管理IP作为网关。
  (5)工作在二层,但IP等三层流量要通过防火墙,仍需要ACL访问控制明确允许
  (6)arp流量不需要ACL控制可以通过防火墙。但可以用ARP审查来控制流量。
  (二) 透明防火墙的基本配置
  #show firesall    //显示当前防火墙的运行模式
  #firewall transparent  //启用透明防火墙模式
  #no firewall transparent //返回ROUTE模式
  #ip address 192.168.9.1 255.255.255.0    //配置管理IP地址。注意,只是管理IP地址。
  注意:在配置透明防火墙的接口时,其他和路由器模式都一样,但不能配置IP地址。
  (三)定制mac表
  透明模式的防火墙转发包是依据MAC地址进行转发,学习MAC地址的方法和交换机一样。默认情况下,每个接口自动学习通过它的流量的MAC地址。然后将响应的MAC地址加入MAC地址表中。可以关掉这个功能,但必须手工加入静态MAC地址条目到MAC地址表中,否则ASA防火墙将不能转发任何流量。
  #mac-learn  int_name disable    //int_name是接口名,即关掉哪个接口的MAC自动学习。
  #mac-address-table aging-time static int_name mac_address    //int_name 指的是接口名, mac_address指的是加入的静态mac地址。
  #mac-address-table aging-time timeout_value  //mac地址的超时时间。
  (四) arp审查
  arp审查可以防止arp欺骗攻击,当启用了ARP审查,ASA防火墙会将接收到的ARP包中的mac地址、IP地址和端口号与静态arp表对比。
  如果mac地址、IP地址和端口号与静态arp表这三项完全相匹配,则转发包
  如果mac地址、IP地址和端口号与静态arp表(这三项中)有任何一条不匹配,则丢弃包
  如果与静态arp表中任何条目没有任何匹配,则可设置将包丢弃还是将包flood(洪泛出去)
  注意:只与静态ARP相比较,如果不定义静态ARP表,那么ARP审查没有任何意义了。
  1、定义静态ARP
  #arp int_name  ip_address mac_address    //定义静态ARP
  #arp-inspection int_name enable [flood|no-flood]
  #arp outside 10.1.1.11 0009.7cbe.2100    //定义静态arp,把10.1.1.11和mac地址0009.7cbe.2100 相关联
  #arp-inspection outside enable no-flood   //当如果没有任何匹配时,将丢弃包。 no-flood是丢弃,flood选项是洪泛