strongswan 已弃用 ipsec.conf 维护方式

ipsec.secrets 文件,它是 strongSwan 中用于存储各种密钥和凭据的配置文件。 但使用 ipsec.confipsec.secrets 等配置文件以及 ipsec 命令的方式已经被弃用,建议迁移到 swanctl.confswanctl 命令,或者直接使用 Vici API。

总结和要点:

  1. 弃用声明 (Deprecation Notice):

    • 官方不推荐使用 ipsec.conf, ipsec.secretsipsec 命令。
    • 建议使用 swanctl.confswanctl 命令,或者直接使用 Vici API。
  2. ipsec.secrets 文件作用:

    • 用于存储 strongSwan 使用的各种密钥和凭据。
    • 可以存储多种类型的密钥,例如 RSA 私钥、ECDSA 私钥、预共享密钥 (PSK)、EAP 凭据、XAUTH 凭据等。
  3. 支持的密钥类型:

    • RSA: RSA 私钥
    • ECDSA: ECDSA 私钥
    • BLISS: BLISS 私钥 (5.2.2 版本及以上)
    • P12: PKCS#12 容器 (5.1.0 版本及以上)
    • PSK: 预共享密钥 (Pre-Shared Key)
    • EAP: EAP 凭据
    • NTLM: NTLM 凭据
    • XAUTH: XAUTH 凭据
    • PIN: 智能卡 PIN
  4. 文件格式:

    • 忽略行尾的空白字符。
    • # 开头的行是注释。
  5. include 指令:

    • 可以使用 include 指令包含其他文件。
    • 文件名可以使用通配符。
    • 支持嵌套包含,但有深度限制 (目前为 10 层)。
    • 如果文件名不以 / 开头,则会在文件名前面加上当前文件所在的目录。
  6. ID 选择器 (ID Selectors):

    • 每个密钥可以有一个或多个可选的 ID 选择器。
    • ID 选择器用于指定密钥适用的连接。
    • 如果没有指定 ID 选择器,则该密钥适用于所有连接。
    • ID 选择器可以是 IP 地址、FQDN (完全限定域名)、user@FQDN%any%any6
    • 从 5.4.0 版本开始,ID 选择器还可以是 IPv4 和 IPv6 子网 (CIDR 格式) 以及地址范围 (两个地址用 - 分隔)。
    • %any 匹配任何 IPv4 地址,%any6 匹配任何 IPv6 地址。 在旧版本中,0.0.0.0 可以代替 %any
  7. ID 匹配规则:

    • ID 必须精确匹配。
    • 对于 Road Warrior 连接,如果对端的 ID 是 IP 地址,且没有找到精确匹配的 ID 选择器,则 %any%any6 可以匹配对端的 IP 地址。
    • IKEv1 中,使用预共享密钥认证时,responder 需要在解码对端 ID 之前查找密钥,因此使用的 ID 是 IP 地址。
  8. 密钥匹配优先级:

    • 选择最具体匹配的密钥。
    • 没有 ID 选择器的条目匹配任何 host 和 peer。
    • 一个 ID 选择器的条目匹配 host ID。
    • 多个 ID 选择器的条目匹配 host ID 和 peer ID。
    • 对于公钥认证,如果只有 host ID 匹配,也认为是匹配的。
    • 允许有两个最佳匹配条目,只要它们使用的密钥相同。
  9. 预共享密钥 (PSK) 认证:

    • 需要 host 和 peer 都找到相同的密钥。
    • 如果 host 和 peer 都出现在选择器列表中,则同一个条目适用于两个系统。
    • 多个选择器的条目最适合 PSK 认证。
  10. 公钥认证 (例如 RSA):

    • 每个 host 需要有自己的私钥。
    • host 可以为不同的接口和 peer

参考: wiki.strongswan.org/projects/st...

相关推荐
重生之我在二本学院拿offer当牌打4 分钟前
Redis分布式锁深度解析:从SETNX到Redisson,彻底搞懂分布式锁!
后端
绝无仅有35 分钟前
百度面试题解析:微服务架构、Dubbo、Redis及其一致性问题(一)
后端·面试·github
绝无仅有1 小时前
百度面试题解析:Zookeeper、ArrayList、生产者消费者模型及多线程(二)
后端·面试·github
菜鸟谢1 小时前
二进制翻译技术
后端
自由的疯1 小时前
Java 如何学习Docker
java·后端·架构
程序员爱钓鱼1 小时前
Python编程实战 · 基础入门篇 | 变量与命名规范
后端·python
自由的疯1 小时前
Java Docker本地部署
java·后端·架构
William_cl1 小时前
ASP.NET MVC 前置基础:宿主环境 & HttpRuntime 管道,从部署到流程拆透(附避坑指南)
后端·asp.net·mvc
IT_陈寒1 小时前
Vue3性能优化实战:这7个技巧让我的应用加载速度提升50%!
前端·人工智能·后端
小宁爱Python1 小时前
Django Web 开发系列(一):视图基础与 URL 路由配置全解析
后端·python·django