无法使用 Setkey 在 CentOS 7.4 中创建安全关联

无法使用 Setkey 在 CentOS 7.4 中创建安全关联

我被要求将我们所有 Linux 设备上的 CentOS 6.8 迁移到 7.4。我在将安全关联加载到 Linux 内核时遇到了问题。我使用 ipsec-tools 的 setkey 实现来执行此操作。最初在 CentOS 6.8 中,使用 setkey.conf 文件中定义的密钥和算法(3des-cbc 192 位密钥)可以很好地完成此操作。我可以输入“setkey -D”并查看其中列出的 SA。

在 CentOS 7.4 中,它无法加载 SA。在这两种情况下,我在启动时在 Grub 命令行语句中设置了“fips=1”参数,这应该会强制遵循 FIPS。我发现,如果我在运行 CentOS 7.4 的机器上删除 grub 命令行语句中的“fips=1”参数,那么它将成功加载 SA。这让我认为 FIPS 合规性在 CentOS 6.8 和 CentOS 7.4 之间发生了变化,并且 3des-cbc 不再是认可的算法。

我尝试不再使用 ipsec-tools 的 setkey 实现,而是使用 ip xfrm 来加载它,但得到的结果相同。我还没有尝试使用 openswan,但我认为它试图通过将 SA 加载到内核来完成相同的事情;因此,我预计会遇到同样的问题。

以下是更多详细信息:

场景 1:

  • CentOS 6.8
  • 内核:2.6.32-642.6.2.el6.x86_64
  • ipsec-tools 0.8.2-1
  • Grub 命令行语句包含 fips=1

setkey.conf 文件包含:

# Flush the SAD and SPD
flush;
spdflush;

# ESP SAs using 192 bit long keys (168 + 24 parity)
add 0.0.0.0 192.168.121.138 esp 0x201 -E 3des-cbc
<OUR KEY>;

# Security policies
spdadd 0.0.0.0/0 [any] 192.168.121.138 [1960] any -P in ipsec
esp/transport//require;

场景 2:

  • CentOS 7.4
  • 内核:3.10.0-693.11.1.el7.x86_64
  • ipsec-tools 0.8.2-1
  • Grub 命令行语句包含 fips=1
  • setkey.conf 文件与上面的相同。

在此配置中,setkey -D 返回一个错误,提示:“没有 SAD 条目” 如果我尝试使用“setkey -f /etc/setkey.conf”将 setkey.conf 文件读入内核,则会出现一条错误消息:“第 10 行的结果是:(NULL)”。

有没有更好的方法将 SA 加载到 Linux 内核中?3des-cbc 是否不再被视为符合 FIPS 标准?我们是否应该更改为符合 FIPS 标准的其他加密算法?如果是这样,哪种算法预计在可预见的未来仍将保持合规?

答案1

RHEL/CentOS 发行版缺乏支持是故意的。Redhat 决定不再支持 RHEL ipsec-tools6/7,并在其 RHEL 6/7 主页上提到了这一点:

ipsec-tools 软件包已弃用,取而代之的是 openswan。目前 ipsec-tools 项目没有活跃的上游开发或维护。

笔记:这也适用于 CentOS 6/7。

我建议使用 *SWAN 项目之一,例如 OpenSWAN、LibreSWAN 或 StrongSWAN。

相关内容