5 IPSec开源项目strongSwan
5.1 保护网络
strongSwan是一套完整的IPsec开源实现方案,用来提供服务端和客户端之间的加密和认证。strongSwan 可用于保护与远程网络的通信,因此远程连接与本地连接相同。常见的保护网络场景如图5.1所示。
图5.1 常见保护网络场景
5.1.1 网关
网关通常是防火墙,但也可以是网络中的任何主机。通常,网关还能够使用 DHCP 和 DNS 服务于小型网络。在上图中,主机和moon分别sun用作内部主机alice、venus和bob的网关。
5.1.2 远程连接/访客
通常访客是笔记本和其他移动设备,通过网关来远程连接到你的网络。图中的carol和dave代表了一个访客想要连接分别在两个网关后面的两个网络。
5.1.3 远程主机/主机到主机
远程主机可以是远程 Web 服务器或备份系统。在图5.1中为主机winnetou和任一网关moon或sun,两台主机之间的连接通常可以由其中任何一台发起。
5.1.4 远程站点/站点到站点
位于不同位置的两个或多个子网中的主机应该能够相互访问。如图5.1中,两个子网10.1.0.0/16 和10.2.0.0/24网关后面的moon和sun可能分别连接,以便主机alice和bob可以彼此安全地通信。
5.2 IKE和IPSec基础
strongSwan本质上是一个密钥守护进程,它使用 Internet 密钥交换版本 2 (IKEv2) 协议在两个对等方之间建立安全关联(SA)。一些应用程序仍支持IKEv1,但出于稳定性和某些安全原因,建议使用IKEv2。IKE提供了端与端之间彼此的强认证并且获取唯一的加密会话密钥。像这样的一个IKE会话(IKE session)经常用 IKE_SA(Security Association) 来表示。除了身份验证和密钥之外,IKE还提供了交换配置信息(例如虚拟 IP地址)和协商 IPsec SA(通常称为CHILD_SA)的方法。IPsec SAs 定义要保护哪些网络流量以及如何对其进行加密和身份验证。其中,CHILD_SA 由两个组件组成:
1、实际的IPsec SAs(有两个,每个方向一个)描述了用于加密和验证流量的算法和密钥。
2、策略(至少两条)定义了哪种网络传输可以使用这样的SA策略。
策略是双向的,即只有匹配