IKE的出现
上一篇通过IPSec实现了BJ到CS的业务互通,但是是通过手工方式把加密和验证密钥手动配置,为了保障安全性,就需要经常去修改这些密钥,小型场景还好,来来回回就这2个点,
修改起来不算麻烦,但是随着企业业务发展,分支数量点增加,维护的工作量越大,最终需要投入更多成本进去。为了解决这个问题,智能密钥管家 IKE就出现了,它也加入了IPSec协议框架中,它为IPSec提供了在internet不安全的网络下建立出一个安全的隧道来完成密钥的自动协商、建立IPSec sa的功能,简化了IPSec的配置与维护工作。
IKE的组成
IKE也不是一个单独的协议,它有三大协议综合而成
(1)isakmp:(Internet Security Association Key Management Protocol),主要定义了IKE peer之间的建立过程(比如采用什么模式,每个模式下交互的内容,这个在后面建立IPSec的时候,会更加的直观)
(2)Oakley与SKEME协议的主要功能就是采用DH算法,在internet上安全的协商共同的密钥、身份验证,保证数据传输的安全性,并且并没有硬性规定只允许使用什么的加密验证算法,这使得扩展性非常好,只要有新的加密跟验证算法出来就能够直接融入进去。记得博主学的时候那会主流还是加密算法还是DES跟3DES,现在基本就以AES为主了。
IKE在IPSEC中实际作用
IKE可以实现在两个站点之间安全的进行认证身份,分发密钥,动态的建立IPSec SA,并且能够定期的维护与更新IPSec SA的信息,保证安全性。
博主在补充个自己总结,在之前手工建立IPSec中,密钥都是由管理员自己定义,而IKE能够通过DH算法自动生成两边相同的密钥,并且这个密钥是有有效期的,到了定义的时间,它就会重新协商密钥,既解决了密钥的维护成本又保证了安全性,另外在建立IPSec SA的时候,IKE会先建立IKE SA,这个SA也是一个加密的安全隧道,它的作用是保障在internet不安全的网络下,构件一个安全隧道,然后两个peer之间在这个安全的隧道下进行协商IPSec SA。
IKE与ISAKMP
IKE的最终目标是协商两边站点之间建立动态的IPSec隧道,能够实时维护IPSec SA信息,而进行IKE工作则由ISAKMP报文来完成,在配置之前,了解下ISAKMP的报文,对于后续理解会很大的帮助。
1、IP头部:源地址一般为出口接口地址,目的地址为对端发起IKE协商的地址,通常为对方设备接口的公网IP。
2、UDP头部:IKE通常情况下在两边都有公网地址(静/动态)的情况下,使用UDP500发起协商或者响应协商,但是当两边对接场景有一边没有公网地址(私网地址),则会用特殊的UDP4500端口号,这个后续在讲解NAT穿越的时候会详细讲解。
3、ISKAMP头部,这里讲解几个重要的字段,对于整个建立以及排错有帮助的。
-
initiator跟Responder Cookie,启动跟响应SA的建立、SA通知、SA删除,用于唯一标识一个IKE SA
-
Mjver(version):IKE的版本,目前有两个版本,IKEV1,以及IKEV2,目前应用还是IKEV1比较多(很多低端设备不支持IKEV2)
-
交换类型(Exchange type):定义了ISKAMP消息交换顺序,在IKEV1中会有主模式以及野蛮模式、快速模式,它们之间的交互流程是不一样的(后面会介绍)
这些内容的目前做一个大致的了解,后续配合抓包分析,就会更加明了。
实验来感受IKE/IPSec结合
IKE/IPSEC的组合是目前工作中主流的应用方式,后续就不在提及IKE/IPSEC的字样,就直接称呼为IPSec,在配置了IPSec之前跟手工的方式一样有几个注意的地方。(该拓扑配置记得保存,后面两篇会一直使用)
(1)BJ_FW到CS_FW公网可达
(2)BJ_FW和CS_FW上安全策略要允许两边的网段通过。
实际配置
这里基本的组网配置说下,双方都配置了出口地址以及内网地址,出口写了默认路由,并且安全策略直接是全放(简化环境),没有配置NAT策略。
互联网
#
interfaceGigabitEthernet0/0/0
ip address 202.100.1.254 255.255.255.0
#
interfaceGigabitEthernet0/0/1
ip address 202.100.2.254 255.255.255.0
BJ_FW
interfaceGigabitEthernet1/0/0
undo shutdown
ip address 192.168.10.254 255.255.255.0
#
interfaceGigabitEthernet1/0/1
undo shutdown
ip address 202.100.1.1 255.255.255.0
service-manage ping permit
#
firewall zone trust
set priority 85
add interface GigabitEthernet0/0/0
add interface GigabitEthernet1/0/0
#
firewall zone untrust
set priority 5
add interface GigabitEthernet1/0/1
#
ip route-static 0.0.0.00.0.0.0 202.100.1.254
#
security-policy
default action permit
CS_FW
interfaceGigabitEthernet1/0/0
undo shutdown
ip address 192.168.20.254 255.255.255.0
#
interfaceGigabitEthernet1/0/1
undo shutdown
ip address 202.100.2.1 255.255.255.0
service-manage ping permit
#
firewall zone trust
set priority 85
add interface GigabitEthernet0/0/0
add interface GigabitEthernet1/0/0
#
firewall zone untrust
set priority 5
add interface GigabitEthernet1/0/1
#
ip route-static 0.0.0.00.0.0.0 202.100.2.254
#
security-policy
default action permit
两边的基本通信都正常了,下面开始基于IKE方式的IPSec配置。
对比与手动配置来说,多了一个IKE的配置,少了SPI与密钥的配置,也体现出来了使用IKE动态的管理密钥的功能。
ping通了,但是丢了两个包,一个是解析ARP丢的,另外一个就是IKE/IPSEC协商花费的时间。
访问WEB也没问题,来看看IKE以及IPSEC在华为防火墙上面的体现。
IKE与IPSec SA在防火墙上面的体现
通过display ike sa,可以发现不管是BJFW还是CSFW都有对应的SA信息,但是对比来看,有有一些不太一样的地方,这里先了解几个比较重要的字段。
1、Conne-id:安全联盟索引值,便于快速查找对应的信息
2、Peer:这里为对端IP地址和端口号
3、Flag:可以看到BJ与CS多了一个ST,这里说几个关键的flag状态
-
RD:标识SA建立成功了
-
ST:表示是发起方,因为实验里面是由BJFW下面的PC主动发起的访问,自然触发了SA的协商
-
A:IPSEC策略组不处于备份状态,默认的状态,只要建立了都会有该标识。
4、V1:1以及V1:2,这里前面的V1表示IKEV1的版本,后面的1跟2表示阶段,1表示第一阶段,也就是IKE隧道协商,而2表示第二阶段,IPSEC sa的协商。
5、IP:对端用的ID类型,默认为IP,也可以使用别名
6、RmoteID:对端的ID,通常为对端的IKE协商或者响应的公网IP地址。
这些字段目前只是了解,后面在排错的时候会有很大的帮助,这里最关键的就是Flag的体现,它能够很好的反应出当前IKE与IPSEC进行到哪了。
通过display ipse sa显示的内容,其实跟之前手动配置的IPSEC sa的内容大致是相同的,有几个不一样的地方,来看看。
1、mode:在手动的时候显示的是manual,用了IKE后变成了ISKAMP,也就是说是由IKE/ISKMAP来完成整个的IPSec协商。
2、tunnel的local与remote 后面多了一个:500,在手动的时候为0,这里为500,表示采用isakmp的UDP 500
3、多了一个flow source与destiantion:这个实际上就是体现出来哪些流量走IPSec SA隧道,192.168.10.0/255.255.255.0表示整个192.168.10.0的网段,后面的0/0-65535表示IP,也就是192.168.10.0访问192.168.20.0任意流量都走隧道。
4、outbound esp与inbound esp与手动其实是一样的,只是这里的SPI是随机生成。
“承上启下”
整体下来就是当192.168.10.1去访问192.168.20.2的时候,抵达BJ防火墙触发IPSEC sa建立,首先两边IKE/ISKAMP进行协商,建立一个安全的通道,然后在安全的通道下面完成IPSEC sa的建立,最终用户的实际数据流量通过这个IPSec SA的通道进行安全的传输。这个只是大致的流程,但是IKE具体是如何协商的,中间经历了什么样的变化,为什么是主模式与野蛮模式?下一篇 结合配置、抓包以及数据包的流动综合来全面了解整个IKE/IPSec是如何建立的。