管理虚拟防火墙
2018-03-03
使用虚拟化技术可以提高资源的有效使用率,降低硬件成本,管理起来也更加便捷。防火墙的虚拟化是将一台物理防火墙,虚拟出来多台虚拟防火墙,并将其分配给不同的用户使用。虚拟防火墙的优点在于对设备性能和资源的合理利用,配置和策略相对是独立的,彼此之间不会互相影响。
虚拟化防火墙的特点
对于虚拟防火墙来说,必须拥有独立的管理员账户和配置界面,以及自己独立的软件资源,例如会话表数、策略数、用户数等,防止其争抢公共资源。
例如,以华为防火墙为例,其新一代的防火墙和老版的防火墙之间虚拟化技术差别很大,上一代防火墙是完全依赖于VPN实例实现的,一个VPN实例就是一个虚拟防火墙,其中包含了路由、策略、系统管理和基本工具等子系统的克隆。
新一代的防火墙不再完全依赖于VPN实例,而改为使用Virtual-System技术来实现防火墙的虚拟化。但该防火墙并未彻底放弃VPNInstance技术,当创建每个虚拟防火墙时,都会创建一个同名的VPN-Instance,对于上层的业务虚拟化来说,则可以摆脱VPN-Instance。对于华为防火墙来说,默认设备自带虚拟防火墙功能,但是不同型号的防火墙自带虚拟防火墙的数量不等,用户可以根据需要购买License来增加其数量。
资源的分配方式
虚拟防火墙存在根系统和根系统管理员的概念,对于前者来说,是默认存在的一个特殊的虚拟系统,在没有配置其他虚拟系统时,根系统就是防火墙自身。例如,当远程登录到华为某款防火墙上,执行“dis f s t v”命令,在返回信息中会 显 示“SSL VPN:public-->public”之类的信息,这就代表了根防火墙。对于后者来说,除了可以配置根系统的业务外,还可创建虚拟系统,并为其分配资源和创建虚拟系统管理员。虚拟系统管理员主要负责配置虚拟系统的业务。
虚拟防火墙要想正常运转,必须占用一定的资源。虚拟系统对资源的占用方式包括手工分配限额,自动分配限额和共享抢占资源。第一种是手工配置资源数量(例如会话、用户、带宽和策略等);第二种是在虚拟系统创建时就固定分配给虚拟系统(例如安全区域、虚拟网关等);第三种允许所有的虚拟系统和根系统一起抢占资源共用整机资源(例如地址和地址组、NAT地址池等)。
流量转发的方式
虚拟防火墙流量转发的关键点在于报文在入接口是会被打上标记,该标记即为接口所属虚拟系统ID,每一个虚拟防火墙都有不同的ID。之后通过虚拟系统ID来查找对应的FIB表、策略以及规则等配置信息来正确的处理报文。当然,在虚拟防火墙之间是可以转发数据的,主要用于不同虚拟系统所管辖的网络间相互通讯的场景,通过虚拟接口技术实现数据包跨虚拟系统的转发。当创建虚拟防火墙时,根系统自动为其创建一个虚拟接口,虚拟接口不配置IP也可以生效,但是必须加入到安全区域。虚拟系统和根系统之间也可以通过虚拟接口通讯,虚拟系统间访问通过根系统进行中转,各个虚拟系统的虚拟接口和根系统的虚拟接口之间默认通过一条虚拟链路进行连接。
当开启了虚拟防火墙功能后,就会在根系统中创建名为“Virtualif0”的虚拟接口,其他的虚拟防火墙要互相通讯,必须经过该虚拟接口。当新增加一个虚拟防火墙,就会增加一个从“Virtualif1”开始的对应的虚拟接口。虚拟防火墙不支持动态路由协议,只能使用静态路由。例如当虚拟防火墙1接收到流量后,相关报文会在入接口打上对应标记,之后通过预设的静态路径,将其从虚接口“Virtualif1”发送到“Virtualif0”虚拟接口。当根系统接收到该数据流量后,当判断“Virtualif0”虚拟接口处于trust区域,目标网段所在的物理端口处于Untrust区域的话,就会将该流量发送出去。
对应的,当处理返回的流量时,也需要在根防火墙中添加静态路由,从虚接口“Virtualif0”发送到“Virtualif1”虚拟接口。当数据流量到达虚拟防火墙1后,会查找之前的会话,根据路由表将数据包从直连网段发出去。流量从虚拟防火墙1进入,想访问虚拟防火墙2连接的网段时,会先按照上述方法到达“Virtualif0”虚拟接口。当根防火墙接收到这些数据包后,会根据预设的路由信息,将其从虚接口“Virtualif0”发送到“Virtualif2”虚拟接口。当然,在上述流量传输过程中,不仅要涉及到路由还需要使用到策略控制,例如允许Trust区域访问Untrust区域,允许Untrust区域访问DMZ区域等。当配置虚拟防火墙时,可以根据需要划分对应的防火墙接口。
虚拟化的限制范围
对于二层网络来说,可以根据VLAN进行端口的划分。对于三层网络来说,是基于物理接口进行划分的。当不同虚拟防火墙连接的网段需要进行NAT映射时,不能直接指定域间关系来实现,必须将虚拟防火墙当作独立的设备进行NAT策略配置。因为对于不同的虚拟防火墙来说,其私网地址段是允许重叠的。当两者进行通讯时,自然不能使用各自的原始IP进行访问。这就需要为两者的虚拟接口配置不同的IP,并据此进行源NAT以及NAT Server的配置操作,就可以顺利进行访问了。
但并不是所有的对象都支持虚拟化,例如证书就不支持虚拟化,包括内置的证书,在虚拟系统下智能查看和引用,无法导入、删除和申请证书等,此外,动态路由、计费方案配置、DHCP服务器和中继、IPSec、L2TP、DVPN、MPLS也不支持虚拟化。其他的例如地址、服务、应用等都能支持虚拟化,虚拟系统与根系统在规格上存在差异,但配置上完全相同。每个虚拟系统都有自己的用户组织结构,不同虚拟系统下的用户和组可以更名。当新建虚拟防火墙时,可以为它分配一个名为“default”的认证域,用户可以创建其他的认证域,可创建的认证域的数量为共享抢占。此外,DHCP客户端、IP-link、双机热备、SSL VPN、重定向认证、服务器模版、认证方案以及授权方案都支持虚拟化。
虚拟化防火墙的管理实例
下面以具体的实例来说明其配置方法。这里使用华为USG 6550防火墙,以管理员身份登录到该防火墙,执行“dis ip inter br”命令,查看接口详细信息。执行“inter g0/0/0”、“ip add 192.168.10.9.24”、“quit”命令,为g0/0/0接口设置IP。执行“vsys enable”命令开启虚拟防火墙功能。再次运行“dis ip inter br”命令,可以发现新增了名为“Virtualif0”的虚拟接口,其属于根防火墙所有。执行“resource-class zyl”命令,在其中可定义资源类信息。
例如执行“resourcei tem-limitpolicy reserved-number 500”命令,将策略值设置为500。执行“resource-item-limit session reserved-number 1000”命令,将会话连接数设置为1000。执行“resourceitem-limit user reservenumber 1000”命令,将用户数设置为1000。当然,可以根据需要灵活的配置资源类信息。执行“vsys name virwall1”命令。新建名为“virwall1”的虚拟防火墙。执行“quit”命令,退出该虚拟防火墙,执行“switch vsys virwall1”命令,可以进入该防火墙。
执 行“assign inter g1/0/1”,“assign inter g1/0/2” 命 令,将 接 口g1/0/1和g1/0/1分配给该虚拟防火墙。执行“assign resource-class zyl”命令,将预设的资源类信息赋予该虚拟防火墙。执行“dis this”或“dis cu”命令,来查看本虚拟防火墙配置信息。 执 行“firewal zone untrust”,“add interface g1/0/1”,“quit”命令,将其加入到Untrust区域。执行“dis ip inter br”命令,查看其端口信息。执行“inter g1/0/1”命令,进入该接口,执行“ip add 172.16.1.10 24”命令,为其设置 IP为172.16.1.10/24。 执 行“service-manage pin per”命令,允许远程访问该接口。
在接口g1/0/1上连接了一台路由器R1,其对应端口的 IP为 172.16.1.11,在该路由器上执行“ip routestatic 192.168.1.0 24 172.16.1.10”命令,添加一条静态路由。在防火墙上执行“dis ip rou”命令,查看路由信息。执行“dis cu”命令,查看根墙配置信息。当想从连接在接口g0/0/0上的主机访问R1时,在根墙上必须有去往指定网段的路由,执行“ip routestatic 172.16.1.0 24 vpn-instance virwall1”命令,添加一条静态路由,可以去往虚拟防火墙virwall1。执行“firewall zone untrust”、“add inter Virtualif 0”、“quit” 命令,将Virtualif 0添加到Untrust区域。
之后需要设置控制策 略, 执 行“securitypolicy”、“rule name o u t”、“s o u r c e-z o n e trust”、“destinationzone untrust”、“sourceadd 192.168.1.0 24”、“service icmp”、“action permit”、“quit”命令,允许执行上述访问操作。执行“switch vsys virwall1”命令,在该虚拟防火墙下执行“dis zone”命令,查看区域配置信息。执行“firewall zone trust”、“add inter Virtualif 1”、“quit”命令,将Virtualif 1虚拟接口添加到Trust区域。每个虚拟防火墙需要配置各自的控制策略,执行“security-policy”、“rule name poly”、“source-zone trust”、“destination-zone untrust”、“source-add 192.168.1.0 24”、“service icmp”、“action permit”、“quit”命 令。 执 行“ip route-static 192.168.1.0 24 public”命令,添加一条静态路由信息。
这样,从连接在接口g0/0/0上的主机(其 IP为192.168.1.12)上执行“ping 192.168.100.23”命令,可以访问根防火墙。在防火墙上执行“d f t v”命令,可以查看会话信息。在根墙上执行“disp resource-usage”命令,可以查看所有虚拟防火墙的资源使用信息。执行“vsys name vwall2”命令。新建名为“vwall2”的虚拟防火墙。执行“assign inter g1/0/3” 命 令,将接口g1/0/3分配给该虚拟防火墙。按照上述方法为其配置资源类型,执行“inter g1/0/3”、“ip add 192.168.2.3 24”、“quit”命令,为该端口设置IP。执行“firewall zone trust”、“add inter g1/0/3”、“quit”命令,将该接口添加到Untrust区域。执行“firewall zone untrust”、“add inter Virtualif 2”、“quit”命令,将该虚拟防火墙的Virtualif 2接口添加到Untrust区域。
当虚拟防火墙vwall2想访问虚拟防火墙virwall1时,需 要 执 行“ip routestatic 172.16.1.0 24 public”命令,为其添加一条路由指向根防火墙。执行“security-policy”、“rule name out”、“source-zone trust”、“destinationzone untrust”、“action permit”、“quit”命令,允许执行上述访问操作。在根墙界面中执行“ip routestatic 192.168.2.0 24 vpn-instance vwall2”命令,添加一条静态路由,指向虚拟防火墙vwall2,可以让数据包顺利返回。这样就可以在虚拟防火墙vwall2上对虚拟防火墙virwall1进行访问了。
当然,也可以在图形界面下对虚拟防火墙进行管理,例如在图形界面右侧的“虚拟系统”列表中选择“vwall2”项,点击顶部工具栏中的“系统”项,在左侧选择“管理员”项,在右侧点击“添加”按钮,在新建管理员窗口中输入其名确定按钮保存配置信息。之后在防火墙登录界面中输入该账户和密码,就可以直接登录到该虚拟防火墙管理界面了。