一、背景知识
OpenSWan:Linux下IPsec的最佳实现方式,其功能强大,最大程度保证了数据传输中的安全性、完整性。OpenSWan支持2.0、2.2、2.4以及2.6内核,可以运行在不同的系统平台下,包括X86、X86_64、IA64、MIPS以及ARM。
OpenSWan是开源项目FreeS/WAN停止开发后的后继分支项目,由三个主要组件构成:
- 配置工具(ipsec命令脚本)
- Key管理工具(pluto)
- 内核组件(KLIPS/26sec)。(来自百度百科)
IPsec VPN:采用IPsec协议来实现远程接入的一种VPN技术,IPsec是由IETF定义的安全标准框架能,用以提供公用和专用网络的端对端加密和验证服务,能够同时实现VPN和加密两项服务。
IPsec VPN的三种应用场景:
1.1 Site-to-Site(站点到站点或者网关到网关):如3个机构分布在互联网的3个不同地方,各使用一个商务领航网关互相建立VPN隧道,企业内网(若干PC)之间的数据通过这些网关建立的IPsec隧道实现安全互联
1.2 End-to-End(端到端或者PC到PC):两个PC之的通信由两个PC之间的IPsec会话保护,而不是网关。
1.3 End-to-Site(端到站点或者PC到网关):里那个PC之间的通信由网关和异地PC之间的IPsec进行保护
VPN只是IPsec的一种应用方式,IPsec是IP Security的简称,它的目的是为IP提供高安全特性,VPN则是在实现这种安全特性的方式下产生的解决方案。
参考:https://blog.csdn.net/linaux_mctc/article/details/78701903
二、实验过程
实验环境:
主机编号 | 公网IP | 内网IP | 操作系统 |
---|---|---|---|
A | 39.106.181.5 | 192.168.1.37 | Centos7.3.64 |
B | 39.106.120.117 | 172.17.244.125 | Centos7.3.64 |
1.安装openswan
2.配置内核参数sysctl.conf,允许IP转发
$ vim /etc/sysctl.conf
3.禁用ICMP重定向
4.修改ipsec配置文件
两台服务器一个看成左边,一个看成右边。
5.使用PSK方式配置密钥文件
6.重启ipsec服务
7.检查配置是否成功
8.启动隧道
基于PSK的密钥协商
- 概述
PSK是“Pre-Shared Key”的缩写,就是预先让通讯双方共享一些密钥(通常是对称加密的密钥),这些密钥在TLS连接尚未建立之前,就已经部署在通讯双方的系统内了。 - 密钥协商步骤
在通讯之前,通讯双方已经预先部署了若干个共享密钥,为了标识多个密钥,给每一个密钥定义一个唯一的ID。客户端把自己选好的密钥的ID告诉服务端,如果服务器端在自己的密钥池子中找到这个ID,就用对应的密钥与客户端通讯,否则就报错并中断连接。
IKE协议(Internet Key Exchange)
- 概述
IKE因特网密钥交换协议是IPsec的信令协议,为IPsec提供了自动协商交换密钥,建立安全联盟的服务。能够简化IPsec的使用和管理,大大简化IPsec的配置和维护工作。IKE不是在网络上直接传送密钥,而是通过一系列数据的交换,最终计算出双方共享的密钥,并且即使第三方接货了双方用于计算密钥的所有交换数据,也不足以计算出真正的密钥。IKE具有一套自保机制,可以在不安全的网络上安全的分发密钥,验证身份。 - IKE的协商过程
阶段一:在网络上建立IKE SA,为其他协议的协商提供保护和快速协商。通过协商创建一个通信信道,并对该信道进行认证,为双方进一步IKE通信提供机密性、消息完整性以及消息源认证服务,是主模式。
阶段二:快速模式,在IKE SA的保护下完成IPsec的协商。
协商过程包含三对消息:
第一对叫SA交换,是协商确认有关安全策略的过程
第二对消息叫密钥交换,交换Diffie-Hellman公共值和辅助数据(如:随机数),加密物在这个阶段产生
第三对消息是ID信息和验证数据的交换,进行身份验证和对整个SA减缓进行验证。