曾丽娟,杨平,徐涢基,吴双
(南昌交通学院,江西 南昌 330100)
实验中总部防火墙工作在网络层,上下行连接路由器,防火墙与路由器OSPF连通。总部防火墙处于主备备份工作模式的双机热备。利用防火墙的Tunnel接口与分部出口防火墙穿越总部NAT设备建立IPsec VPN隧道,PC1、PC2可以正常访问公网,同时PC1与PC2之间通过IPsec VPN实现加密通信。当设备或链路故障时可以自动进行主备流量切换,不影响VPN隧道两端用户的正常通信。
IPsec(Internet Protocol Security)是一个保护IP协议的网络传输协议族,其功能是对IP协议的分组进行加密和认证。IPsec安全框架是网络层使用的一组安全IP协议集,提供访问控制、对等体身份验证、无连接数据包完整性校验、数据加密与抗重放的安全通信服务。
VPN(Virtual Private Network)是在公共网络中搭建专用的加密虚拟网络进行通信,主要采用隧道(Tunnel)、封装(Encapsulation)、加密(Encryption)和解密(Decryption)、验证(Authentication)和授权(Authorization)四个方面的安全技术来保障数据传输的完整性。
IPsec协议族包含了3个最重要的协议[5,6]:认证头AH(Authentication Header)、密钥交换协议IKE(Internet Key Exchange)以及封装安全载荷ESP(Encapsulating Security Payload)。
AH协议是确认所提供数据的完整性,但是不能对其进行加密。ESP协议可以同时对数据的完整性进行确认和对数据进行加密。AH协议会对整个IP报文进行完整性检验,穿越NAT设备后原HASH值被破坏,所以AH报文无法穿越NAT设备。ESP协议只对IP报文的数据部分进行完整性检验,IP报文在穿越NAT设备时,内部源端口号和源IP地址已经被加密无法被修改,不会造成HASH值改变导致IPsec SA建立失败。根据上文中的阐述,所以ESP协议更适合NAT穿越。
传输模式只是对数据部分进行封装,不会改变原有的IP包头。所以在穿越NAT设备时,报文原本的IP头部会被修改,到达隧道对端时被更改的IP头部不能被验证,导致IPsec SA建立失败。传输模式一般用在主机到主机之间的加密传输,也就是点到点的模式。传输模式AH报文格式如图1所示,传输模式ESP报文格式如图2所示。
图1 传输模式AH报文格式
图2 传输模式ESP报文格式
隧道模式会生成一个新的IP包头添加到原始包头前。在穿越NAT设备时,即使新封装的IP头部被修改,ESP报文内部的原始IP头部也不会被修改,到达隧道对端解封装后,IP地址可以被正确验证。隧道模式应用场景是路由器或防火墙上对某个网段的数据进行封装,其中VPN就是其一种典型应用。
根据上述阐述,所以隧道封装模式更加适合穿越NAT设备。隧道模式AH报文格式如图3所示。隧道模式ESP报文格式如图4所示。
图3 隧道模式AH报文格式
图4 隧道模式ESP报文格式
IKEv1虽说近乎完美,但还是有很多缺点,例如建立连接时间较长,建立IPsec SA时主模式需要9条ISAKMP报文,野蛮模式需要6条ISAKMP报文。
IKEv2不分阶段,只需要4条报文就可以建立IPsec SA,且IKEv2兼容IKEv1,通过抓包软件可以查看到IKEv2中的详细信息,如图5所示。
图5 IKEv2报文抓包
较路由器不同的是,防火墙无论是IKEv1还是IKEv2,都是默认开启NAT穿越功能,在NAT穿越时第一个和第二个报文会携带两个Notify载荷,一个是对本端IP地址和端口的Hash值,一个是IKE对等体IP地址和端口的Hash值。Notify载荷使用通用的ISAKMP载荷头,载荷的值是SPIs,IP地址、发送数据包的端口号的Hash值(IKEv2规定使用SHA-1),Hash值的计算为:Hash=SHA-1(SPIs|IP|Port)。
ESP报文会以UDP报文为承载,防火墙间在建立隧道时会检测接收到的报文中的Hash值,如果与NAT_DETECTION_SOURCE_IP不匹配,则说明发起端在NAT设备之后,如果与NAT_DETECTION_DESTINATION_IP不匹配,则说明接收端在NAT设备之后。通过抓包软件,可以查看报文字段中的Hash值,如图6所示。
图6 报文字段中的Hash值
在检测到设备处于NAT设备后时,IKE_AUTH报文会将原本协商时的端口号为500的UDP端口改为4500,且此报文标识会变为Non-ESP Marker,通过抓包软件可以观察到报文标识会变为Non-ESP Marker,如图7所示。
图7 报文字段的标识变化
在仿真器中,防火墙上使用命令display firewall session table可以查看防火墙上的会话记录,如图8所示。
图8 防火墙会话列表
总部NAT设备将其内部FW的Tunnel接口的地址的UDP 500端口和4500端口映射到NAT设备R1的G0/0/2接口,分部FW3此时配置IKE对等体的对端IP地址是10.1.1.1映射到公网的地址,即101.1.1.3。用来认证的IP地址为对端防火墙的Tunnel 0接口地址,如图9所示。
图9 NAT Server配置
防火墙FW3是IPsec协议和NAT协议共存设备,因此在FW3上还需要配置一条不转换192.168.2.0/24网段去往192.168.1.0/24网段的报文的NAT策略转换规则,作用同利用ACL匹配感兴趣流,且此规则的优先级要高于其他的规则。在转发报文时,流量会优先触发此规则,防火墙NAT策略配置如图10所示。
图10 配置防火墙NAT策略
在协商前,防火墙需要配置untrust区域和local区域之间的域间流量策略,放行icmp协议,esp协议和端口号为500和4500的UDP协议的流量。
双机热备主要是在出口出部署两台防火墙实现主备备份,双机通信包含的内容指主备服务器之间通过专用通信线路进行双机信息交互,双机同步是确保双机热备份主备服务器平滑切换的前提,双机切换是双机热备份实现的关键。通过它实现备份服务器接手主服务器的工作,网络不会因设备单点故障而瘫痪。
两台防火墙处于主备备份方式的双机热备,FW1为主设备,FW2为备用设备。上下行连接路由器,这个实验的拓扑图如图11所示。
图11 实验拓扑图
防火墙的G1/0/0和G1/0/1端口加入link-group组中形成逻辑组,link-group组会同步组中接口的状态,当组中有接口状态为Down时,其他的接口也会转变为Down状态。同时link-group组会加快链路故障时的路由收敛速度。防火墙配置VGMP组对上下行链路的链路状态进行直接监控,如图12所示。
图12 查看link-group状态
配置HRP,主设备可以通过心跳线将设备关键配置与会话状态传递给备份设备。如果备份防火墙没有主防火墙的会话数据,报文则无法继续转发,造成网络中断。VGMP组对防火墙上下行链路直接监控,HRP配置为:
防火墙工作在三层,上下行连接的都是路由器的情况,不能像上下行连接交换机时,利用VRRP提供的虚拟IP实现IPsec隧道备份。使用接口地址可以建立IPsec隧道,但因IP地址不同无法实现IPsec隧道备份。
此时在内网互通的前提下,需要利用Tunnel口建立IPSec隧道。在FW1和FW2上创建虚拟接口Tunnel 0,并配置相同地址10.1.1.1,Tunnel接口使用IPsec协议封装。Tunnel接口配置为:
防火墙的路由表没有去往192.168.2.0/24网段的路由条目,需要在防火墙上配置静态路由引导去往192.168.2.0/24网段的流量进入Tunnel 0接口,以触发IPsec VPN。静态路由配置为:
路由器R1和R2的路由表中没有去往防火墙的Tunnel 0接口的路由,Tunnel 0接口和防火墙之间是直连关系,可以在防火墙的OSPF进程中引入直连,但是这种方法会将心跳接口的路由条目一并引入到OSPF路由表中造成次优路径。
为了避免这种情况,可以在引入直连路由时配合路由策略,只引入10.1.1.0/24网段作为Tunnel接口地址。路由策略配置如下面代码所示:
主备设备配置hrp adjust ospf-cost enable(默认开启)控制主备设备OSPF链路开销,备用设备链路开销会自动增加65500。
本端和对端防火墙的IPsec提议,IKE提议和IKE对等体的配置需要一致,否则协商失败,具体配置的对比如表1所示。
表1 防火墙IPsec提议与对等体对比
传统的IPSecVPN隧道的建立是在两个网关型设备上,穿越公网进行端对端的建立,若某一设备出现单点故障或链路损坏,则VPN隧道会断开,影响业务的正常通信。
采用双机热备无疑是解决此问题的绝佳方法,可以避免因设备接口、链路或整机故障引起的单点瘫痪导致网络不同。
在《IPsecVPN双机热备系统设计与实现》和《基于eNSP的IPSec VPN场景教学设计——分支使用VRRP虚地址与总部建立IPSec VPN》中,防火墙上下行连接交换机时,配置VRRP组实现IPSecVPN的会话备份,VRRP备份组会根据优先级确定设备的主备状态,在Master设备故障时,备份设备接替主设备位置完成报文转发。
若企业网络结构为双防火墙直连网关设备,且规模较大,防火墙下行链路需连接路由器进行路由寻址,则无法使用VRRP虚拟地址进行IPSecVPN隧道的建立。
在模拟器中,通过display ipsecsa检查此时总部防火墙的IPsec安全联盟,IKE联盟状态如图13、图14所示,VGMP组状态如图15、图16所示。
图13 IPSec SA状态
图14 IKE SA状态
图15 主设备VGMP状态
图16 备设备VGMP状态
通过Wireshark抓包软件对公网路由器抓包观察两端PC通过IPSecVPN进行通信时,报文是否被IPSec隧道保护,对FW3公网端口抓包,观察在总部PC正常访问公网时是否为ICMP报文。根据设计的实验环境可以得出总部与分部的PC可以进行正常的通信,如图17所示;通过抓包可以得到总部PC可以正常访问公网,如图18所示。
图17 总部PC与分部PC通信
图18 PC访问公网报文正常
通过抓包软件,实验结果还显示总部与分部的PC进行通信时报文被加密增加了安全性,如图19所示。
图19 PC间报文被ESP加密
本实验成功验证基于防火墙双机热备下的IPsec VPN的隧道备份,PC之间通信时,若主用设备的链路故障或者设备故障,流量会平滑的自动切换到备用设备,备用设备会自动抢占成为主用设备,流量不会长时间中断,待主用设备状态恢复正常,会进行自动抢占,重新恢复成为主用设备,有效解决了因单点故障和链路故障引起的网络不可靠,实现设备冗余,提高了网络的可用性和安全性