我想每 3 小时更改一次 Linux 和 Cisco 设备中的 SSH 以及 VPN 的私钥。
有人可以建议我如何实现它吗?
答案1
您正在寻找的功能是前向保密. SSHv2,以及现代 TLS 和 IPsec 配置,已经实现了通过使用Diffie-Hellman 密钥交换为每个连接生成新的加密密钥。大多数情况下,您不需要执行任何额外操作。
尤其是,更改 SSH 客户端或服务器的私钥并不能解决所有问题——它们未被使用用于加密。这些密钥的唯一用途是进行数字签名以进行身份验证。
但是,您仍然可以检查和调整一些参数:
在基于 TLSv1.2 的服务中,确保允许的密码套件使用“DHE”/“ECDHE”——如“ephemeral DH”。根据您的客户端,可能可以禁用传统 DHE 并仅保留 ECDHE 密码套件。(如果不能,则至少为每个服务生成一个新的“DH 参数”文件,而不是使用默认文件)。
如需更多最新信息,请搜索TLS 部署最佳实践。
在 SSHv2 中,查看已启用的密钥交换算法 (KexAlgorithms)。您可能需要考虑禁用所有“diffie-hellman-*”模式(或者如果您使用的是 OpenSSH,至少要重新生成文件
/etc/ssh/moduli
)。
此外,SSHv2 和 IPsec 支持在一定时间间隔后和/或传输大量数据后自动重新启动密钥交换并切换到新的加密密钥。在 OpenSSH(客户端或服务器)中,您可以通过设置选项来启用定期重新密钥RekeyLimit
。在 IPsec 中,重新密钥通常通过安全关联“生命周期”设置来强制执行。