strongswan介绍

2023-11-15


strongswan介绍文档翻译, 原文链接

保障网络安全

strongswan是一套完整的IPsec实现方案来提供服务端和客户端之间的加密和认证。
它能用来保证远端网络通信之间的安全,这样远端连接就跟本地连接一样。

图中名词解释
网关:网关通常是你的防火墙,但它也可能是你网络中的主机。网关通常用来为一个小型网络提供DHCP和DNS服务。
远程连接/访客:通常访客是笔记本和其他移动设备,通过网关来远程连接到你的网络。图中的carol代表了一个访客想要连接分别在两个网关后面的两个网络。
远端主机/主机到主机:主机可以是远端的网站服务或者备份系统。图中为“Webserver winnetou”和各个网关。两个网关之间的连接通常需要各自都初始化。
远端域/域到域:在不同地方的两个子网内的主机或者更多子网内的主机应该是可以相互通信的。又回到上图中,moon和sun两个网关后面的两个子网10.1.0.0/24和10.2.0.0/24,原则上是可以建立连接,然后主机alice和bob就可以彼此安全地通信了。

IKE和IPsec基础

strongswan本质上是基于密钥的应用程序,使用互联网密钥交换协议(IKEv1IKEv2)来建立两端之间的安全关联。IKE提供了端与端之间彼此的强认证并且获取唯一的加密会话密钥。像这样的一个IKE会话(IKE session)经常用 IKE_SA(Security Association) 来表示。
除了认证和密钥,IKE还提供了交换配置信息的方法(比如虚拟网络地址),提供了协商IPsec SAs(也被称作CHILD_SAs)的方法。IPses SAs定义了哪些网络传输是安全的,并且定义了它是怎样加密和认证的。

一个CHILD_SA包含两个重要的组成部分:
1、实际的IPsec SAs(有两个,每个方向一个)描述了用来加密和认证的算法和密钥。
2、策略(至少两条)定义了哪种网络传输可以使用这样的SA。
策略工作在两个方向上,也就是说,解密后的数据包只有符合入口策略才允许被传输。当在建立一个CHILD_SA时,策略就可以从传输选择器(Transfer Selector: TS)里获取,TS是通过IKE协商出来的。
内核收到的未受保护的数据包且能匹配到IpSec的入口策略,将会被丢弃。这是安全特点。

实际的IPsec网络传输并不是由strongswan掌握,而是由实际网络和操作系统的IPsec协议栈传输(XFRM)。

strongswan使用平台依赖的内核接口来下发协商好的IPsec SAs(Security Association)和SPs(Security Policy)。IPsec中有两个重要概念:安全关联(Security Association)和安全策略(Security Policy),这两类信息都需要存放在内核XFRM。核XFRM使用netns_xfrm这个结构来组织这些信息,它也被称为xfrm instance(实例)。
上述提到的策略和SAs之间的区别,经常导致误解。 例如,在上图中所示,如果主机moon与主机sun之间有site-site类型的隧道连接(连接两个网段10.1.0.0./24和10.2.0.0/24),主机carol有个远程私有连接到主机sun(carol的虚拟IP地址是10.3.0.10),然而carol并不能与alice通信,尽管在主机sun上转发是可以的。这是因为在carol和alice之间没有IPsec策略允许他们通信。建立另一条在moon和sun之间的SA来连接虚拟子网10.3.0.0/24与10.1.0.0/24之间的通信,将是一个可行的方案。

《XFRM – IPsec协议的内核实现框架 》中有提到SA与SP更详细底层的解释。

一般来说,IPsec处理事务与路由是两个不同的主题。
有个例外就是route based ipsec
Route based IPsecPolicy based IPsec更简单。

认证基础知识

为了确保每一个端的IKE_SA能够生成,每个端就已经声明自己是被认证过的。

strongswan提供了几种方式来实现这一点:
1、公钥认证:
(1)它使用RSA,ECDSA或者EdDSA X.509证书体系来验证对方的身份。
(2)证书能够被自签(证书必须被各终端安装),或者被CA系统签发。
(3)Certificate Revocation Lists(CRLs) 或Online Cerificate Status Protocal(OCSP)可以用来验证证书的有效性。
(3)用来存储私钥的智能卡将以PKCS#11 plugin方式使用。
(4)为了防止中间人攻击,证书里的subject或subjectAltName字段必须被核实。
2、预共享密钥认证:
预共享密钥是种简单的方式,不适合拥有大量用户的场景。
3、可扩展认证协议(EAP)
4、扩展认证(XAuth)

如果使用IKEv2,它就可能使用多个认证回合,例如,第一次用证书认证设备,然后用基于用户名/密码的认证(EAP-MSCHAPv2)来认证用户。也可以使用非对称的认证方式,例如,网关用证书认证,而用户用基于EAP的用户名/密码方式认证。请明白并不是所有的IKEv2实现都支持这一拓展。

配置文件基础

配置strongswan的时候建议通过强大的vici接口swanctl命令行工具。swanctl.conf配置文件是被swanctl用来存储证书和相应的私有密钥的地方。全局的strongswan设置信息被定义在strongswan.conf里。例外,ipsec stroke接口和它的ipsec.confipsec.secrets配置文件都是可以被使用的。

使用和维护

strongswan通常是被swanctl命令管理的,而IKE进程charon是被systemd控制的。
因为历史原因,strongswan可以被ipsec命令控制,ipsec start将启动开始进程依次启动并配置密钥进程charon。
连接和CHILD_SAs在swanctl.conf里被定义(或者定义在ipsec.conf的conn章节)
连接和CHILD_SAs能以三种场景启动:
1、传输时建立:如果用了start_action=trap/auto=route,IPsec里针对配置好的传输的捕获策略将被安装,匹配这些策略的传输将会触发acquire事件,导致进程建立被请求的IKE/IPSec SAs。
2、启动时建立:CHILD_SAs被配置成start_action=start(或auot=start),当程序启动时将自动建立CHILD_SAs。
当CHILD_SAs下线时不会自动重启。你需要指定其他的配置项(dpd_action/dpdaction 或 close_action/closeaction)来自动重启他们,但即使这样,这项设置也不是安全可靠的,将存在潜在的丢包。你应大胆使用捕获策略,并阅读安全建议来避免这些问题。
3、手动建立:一条连接没有使用关键字start_action(在ipsec.conf里是auto=add)将不得不使用命令 swanctl --initiate(或ipsec up)来手动启动。
根据配置为文件,可以使用swanctl --install(或ipsec route)来为那些连接手动安装策略,就像启动时配置start_action=trap/auto=route。

在一个SA被建立后,就可通过swanctl --terminate(或ipsec down)命令来关闭IKE_SA或个人的CHILD_SAs。
只要swanctl.conf文件或者证书被改变就要被相应的
–load
命令重新加载下(ipsec updateipsec reload*将重新加载ipsec.conf配置文件),已经建立的连接不会被这些重新加载命令所影响,因而要求SAs甚至进程重启启动。

为了兼容传统配置,ipsec.secrets或者ipsec.d目录下的文件被改变,那么可以执行ipsec reread命令来重新加载这些文件。

使用不同的**swanctl --list* (或ipsec list)**命令将提供查询已加载的或取消的证书信息,支持的算法和加载的插件等。

日志和监测

当你运行出错,提高日志等级可能帮助立找到哪里出错了。不同的日志参数信息被描述在我们的WiKi上和strongswan.conf的帮助页。

PKI

生成证书的最简单方式之一是使用ipsec pki工具。因为搭建一整套PKI是相当复杂的,我们只提供了些指导让你开始。
openssl也是一个广泛使用,可选择的工具来生成证书。

证书要求:
1、生成的叶子节点证书需要对对端的IKE ID认证成功。
2、换句话说,你能使用完整的DN或者所有的SAN域值作为一个ID.
3、此外,这个证书必须是Bob信任的,例如,这个证书之前就被Bob认证过,或是由Bob信任的作者颁发的。
4、为了认证成功,对端必须进行完整的证书链验证。

路由

在Linux系统上,strongswan默认安装路由到路由表220,并且要求内核支持基于策略的路由(XFRM)。
你能用进程安装路由到任何的路由表,或者你完全可以关闭它。
基于这些原因,在strongswan.conf里的charon.install_routes, charon.routing_tablecharon.routing_table_prio这些设置将会被使用。当一个隧道被两个子网建立,charon会尝试在本地子网内找到本地的IP地址。因此子网内的IP地址应该被配置为可查找的。如果一个有效的IP地址被找到,charon将添加一条路由条目指向远端子网,路由结果会像下面这样
10.1.0.0/24 via 10.2.0.1 src 10.2.0.2

参考:
IPsec文章
IPsec系列

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

strongswan介绍 的相关文章

  • 浅谈能耗系统在马来西亚连锁餐饮业的应用

    1 背景信息 Background 针对连锁餐饮业能耗高且能源管理不合理的问题 利用计算机网络技术 通讯技术 计量控制技术等信息化技术 实现能源资源分类分项计量和能源资源运行监管功能 清晰描述各分店总的用能现状 实时监测各供电回路的电压 电
  • 盘点那些年我们一起玩过的网络安全工具

    大家好 我是IT共享者 这篇文章给大家盘点那些年 我们一起玩过的网络安全工具 一 反恶意代码软件 1 Malwarebytes 这是一个检测和删除恶意的软件 包括蠕虫 后门 流氓 拨号器 间谍软件等等 快如闪电的扫描速度 具有隔离功能 并让
  • 软件开发和网络安全哪个更好找工作?

    为什么今年应届毕业生找工作这么难 有时间去看看张雪峰今年为什么这么火就明白了 这么多年人才供给和需求错配的问题 在经济下行的今年 集中爆发 供给端 大学生越来越多 需求端 低端工作大家不愿去 高端岗位又太少 很多基础行业 比如机械 土木 所
  • 信号浪涌保护器的原理和行业应用方案

    信号浪涌保护器 Surge Protective Device 简称SPD 是一种用于限制信号线路中瞬态过电压和分泄浪涌电流的防雷装置 主要用于保护各类信号线路及设备的防雷安全 信号浪涌保护器的原理是利用气体放电管 压敏电阻 齐纳二极管等非
  • 【信道估计】【MIMO】【FBMC】未来移动通信的滤波器组多载波调制方案(Matlab代码实现)

    欢迎来到本博客 博主优势 博客内容尽量做到思维缜密 逻辑清晰 为了方便读者 座右铭 行百里者 半于九十 本文目录如下 目录 1 概述 2 运行结果 3 参考文献 4 Matlab代码及文章
  • 线程安全(中)--彻底搞懂synchronized(从偏向锁到重量级锁)

    接触过线程安全的同学想必都使用过synchronized这个关键字 在java同步代码快中 synchronized的使用方式无非有两个 通过对一个对象进行加锁来实现同步 如下面代码 synchronized lockObject 代码 对
  • 白帽子如何快速挖到人生的第一个漏洞 | 购物站点挖掘商城漏洞

    本文针对人群 很多朋友们接触安全都是通过书籍 网上流传的PDF 亦或是通过论坛里的文章 但可能经过了这样一段时间的学习 了解了一些常见漏洞的原理之后 对于漏洞挖掘还不是很清楚 甚至不明白如何下手 可能你通过 sql labs 初步掌握了sq
  • 2024年金三银四网络安全考试试题

    2023年金三银四网络安全考试试题 1 关于数据使用说法错误的是 A 在知识分享 案例中如涉及客户网络数据 应取敏感化 不得直接使用 B 在公开场合 公共媒体等谈论 传播或发布客户网络中的数据 需获得客户书面授权或取敏感化 公开渠道获得的除
  • 远程控制软件安全吗?一文看懂ToDesk、RayLink、TeamViewer、Splashtop相关安全机制_raylink todesk

    目录 一 前言 二 远程控制中的安全威胁 三 国内外远控软件安全机制 ToDesk RayLink Teamviewer Splashtop 四 安全远控预防 一 前言 近期 远程控制话题再一次引起关注 据相关新闻报道 不少不法分子利用远程
  • 小白入门黑客之渗透测试(超详细)基本流程(内附工具)

    经常会收到小伙伴们这样的私信 为什么我总是挖不到漏洞呢 渗透到底是什么样的流程呢 所以全网最详细的渗透测试流程来了 渗透测试其实就是通过一些手段来找到网站 APP 网络服务 软件 服务器等网络设备和应用的漏洞 告诉管理员有哪些漏洞 怎么填补
  • HPE Aruba Networking:五大网络现代化策略助力实现校园数字化转型

    作者 Aruba中国区技术销售总监 俞世丹 全球数字化进程日益加深 科技已成为加速教育行业发展的重要驱动力 人工智能 大数据 云计算 物联网 虚拟现实等新兴技术的快速发展 正在深刻改变着教育的形态和模式 为了更好地满足学校师生个性化教育教学
  • 基于java的物业管理系统设计与实现

    基于java的物业管理系统设计与实现 I 引言 A 研究背景和动机 物业管理系统是指对物业进行管理和服务的系统 该系统需要具备对物业信息 人员信息 财务信息等进行管理的能力 基于Java的物业管理系统设计与实现的研究背景和动机主要体现在以下
  • 网络安全基础知识面试题库

    1 基于路由器的攻击手段 1 1 源IP地址欺骗式攻击 入侵者从外部传输一个伪装成来自内部主机的数据包 数据包的IP是 内网的合法IP 对策 丢弃所有来自路由器外端口 却使用内部源地址的数据包 1 2 源路由攻击 入侵者让数据包循着一个不可
  • tcpdump抓包

    tcpdump抓包 基本概念 1 类型的关键字 host 指明一台主机 如 host 10 1 110 110 net 指明一个网络地址 如 net 10 1 0 0 port 指明端口号 如 port 8090 2 确定方向的关键字 sr
  • 数据加密保障数据安全

    一 目标 1 1 预研需求 数据加密是安全领域中常用的安全措施 它们的主要作用是保护数据的机密性和完整性 以防止未经授权的访问 窃取 篡改或泄漏敏感信息 数据传输加密 保护敏感数据在传输过程中的安全 当数据通过网络传输时 它们可能会经过多个
  • 国外拨号VPS指南:开启你的全球网络之旅

    在当今数字化时代 互联网已经成为了我们生活的一部分 而要在全球范围内畅通无阻地访问互联网 拥有一个可靠的国外拨号VPS是非常重要的 无论您是为了工作 学习还是娱乐 国外拨号VPS都可以为您提供更广泛的网络体验 本文将为您提供国外拨号VPS的
  • 搞懂 三次握手四次挥手

    计算机网络体系结构 在学习TCP 三次握手四次挥手之前 让我们先来看下计算机网络分层 主要分为OSI模型和TCP IP模型 OSI模型比较复杂且学术化 所以我们实际使用的TCP IP模型 以连接Mysql服务器为例理解这五层 应用层 应用层
  • 内网安全:隧道技术详解

    目录 隧道技术 反向连接技术 反向连接实验所用网络拓扑图及说明 网络说明 防火墙限制说明 实验前提说明 实战一 CS反向连接上线 拿下Win2008 一 使用转发代理上线创建监听器 二 上传后门执行上线 隧道技术 SMB协议 SMB协议介绍
  • 【安全】简单解析统一身份认证:介绍、原理和实现方法

    深入解析统一身份认证 介绍 原理和实现方法 导语 统一身份认证是什么 统一身份认证的原理 统一身份认证的实现 结语 导语 随着互联网的发展和各种在线服务的普及 用户在不同的应用和平台上需要进行多次身份验证 为了简化用户的登录和减少重复操作
  • 【安全】Java幂等性校验解决重复点击(6种实现方式)

    目录 一 简介 1 1 什么是幂等 1 2 为什么需要幂等性 1 3 接口超时 应该如何处理 1 4 幂等性对系统的影响 二 Restful API 接口的幂等性 三 实现方式 3 1 数据库层面 主键 唯一索引冲突 3 2 数据库层面 乐

随机推荐