xpt*_*xpt 3 ssh configuration openssh
如何在 Debian 下从 ssh 禁用ChaCha20-Poly1305加密?
我尝试过(作为root):
echo 'Ciphers -chacha20-poly1305@openssh.com' > /etc/ssh/sshd_config.d/anti-terrapin-attack
echo 'Ciphers -chacha20-poly1305@openssh.com' > /etc/ssh/ssh_config.d/anti-terrapin-attack
systemctl restart sshd
Run Code Online (Sandbox Code Playgroud)
但我的ssh -Q cipher
仍然显示chacha20-poly1305@openssh.com
。
更新:
由于完全解决我的问题的答案分散在不同的答案中,让我将它们总结在一处。
为什么?有什么大惊小怪的?-- 查看针对 SSH 发现的攻击,Debian 的openssh
稳定版本比官方修复落后几代。因此我现在需要自己修复它。
为什么 OP 不起作用?——两点:
ssh -Q
cipher 始终显示编译到二进制文件中的所有密码/etc/ssh/sshd_config.d
都应以“ ”结尾.conf
。如何禁用攻击?-- 请参阅 Floresta 的实用解决方案https://unix.stackexchange.com/a/767135/374303
如何验证攻击是否已被禁用?-- 基于gogoud的实际解决方案:
nmap --script ssh2-enum-algos -sV -p 22 localhost | grep chacha20 | wc
0 0 0
Run Code Online (Sandbox Code Playgroud)
最好在应用 Floresta 修复之前和之后运行它。
ssh -Q cipher
始终显示编译到二进制文件中的所有密码,无论它们是否启用。对于不安全或默认禁用的算法也是如此。
假设您使用的是支持此语法的最新版本的 OpenSSH,您设置的配置应该足以禁用该算法。您可以通过尝试通过 连接来验证这一点ssh -vvv
,这将打印服务器到客户端的密码列表。
如果您没有最新版本的 OpenSSH,则不支持此语法,并且您需要显式列出所需的密码。默认值列在 中man sshd_config
,对于我的 OpenSSH 版本(Debian 9.6),它看起来像这样(没有 ChaCha):
Ciphers aes128-ctr,aes192-ctr,aes256-ctr,aes128-gcm@openssh.com,aes256-gcm@openssh.com
Run Code Online (Sandbox Code Playgroud)
假设您拥有现代客户端,将 AES-GCM 放在列表中的第一位将提高性能(如果您不使用先加密后 MAC 的情况下还可以提高安全性),但是 OpenSSH 的旧版本在使用 AES-GCM 重新生成密钥时会出现段错误(所有主要发行版都已修补),这就是它们位于列表末尾的原因。
请注意,如果您在客户端和服务器上都使用修补过的操作系统,则无需禁用chacha20-poly1305@openssh.com
. 原因是授权的客户端和服务器将与OpenSSH 修补版本中的kex-strict-c-v00@openssh.com
和扩展协商安全连接。kex-strict-s-v00@openssh.com
随机刮刀做什么并不重要,因为它们很快就会掉落,并且无需保护它们。
但是,如果您没有使用修补过的操作系统,那么您当然容易受到攻击,但话又说回来,您也容易受到各种其他漏洞的影响。
小智 5
我认为您最初的解决方案是部分正确的。在我的 Debian 12 机器上,/etc/ssh/sshd_config
顶部包含以下行:
Include /etc/ssh/sshd_config.d/*.conf
Run Code Online (Sandbox Code Playgroud)
所以该/etc/ssh/sshd_config.d
目录下的所有配置文件都应该以.conf
. 同样对于/etc/ssh/ssh_config.d
.
以下命令适用于我的系统:
Include /etc/ssh/sshd_config.d/*.conf
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
3696 次 |
最近记录: |