如何禁用 ChaCha20-Poly1305 加密以阻止 terrapin ssh 攻击

如何禁用 ChaCha20-Poly1305 加密以阻止 terrapin ssh 攻击

如何禁用ChaCha20-Poly1305Debian 下的 ssh 加密?

我尝试过(以 root 身份):

echo 'Ciphers [email protected]' > /etc/ssh/sshd_config.d/anti-terrapin-attack
echo 'Ciphers [email protected]' > /etc/ssh/ssh_config.d/anti-terrapin-attack

systemctl restart sshd

但我的ssh -Q cipher仍然显示[email protected]

更新:

由于完全解决我的问题的答案分散在不同的答案中,让我将它们总结在一处。

  • 为什么?有什么大惊小怪的?- 查看发现针对 SSH 的攻击,而 Debian 的openssh稳定版本比官方修复落后几代。因此我需要自己修复它现在

  • 为什么 OP 不起作用?——两点:

    • ssh -Qcipher 始终显示编译到二进制文件中的所有密码
    • “ ”目录下的所有配置文件/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

最好在应用 Floresta 修复之前和之后运行它。

答案1

ssh -Q cipher始终显示编译到二进制文件中的所有密码,无论它们是否启用。对于不安全或默认禁用的算法也是如此。

假设您使用的是支持此语法的最新版本的 OpenSSH,您设置的配置应该足以禁用该算法。您可以通过尝试通过 连接来验证这一点ssh -vvv,这将打印服务器到客户端的密码列表。

如果您没有最新版本的 OpenSSH,则不支持此语法,并且您需要显式列出所需的密码。默认值列在 中man sshd_config,对于我的 OpenSSH 版本(Debian 9.6),它看起来像这样(没有 ChaCha):

Ciphers aes128-ctr,aes192-ctr,aes256-ctr,[email protected],[email protected]

假设您拥有现代客户端,将 AES-GCM 放在列表中的第一位将提高性能(如果您不使用先加密后 MAC 的情况下还可以提高安全性),但是 OpenSSH 的旧版本在使用 AES-GCM 重新生成密钥时会出现段错误(所有主要发行版都已修补),这就是它们位于列表末尾的原因。

请注意,如果您在客户端和服务器上都使用修补过的操作系统,则无需禁用[email protected].原因是授权的客户端和服务器将与OpenSSH 修补版本中的[email protected]和扩展协商安全连接。[email protected]随机刮刀做什么并不重要,因为它们很快就会掉落,并且无需保护它们。

但是,如果您不是使用修补过的操作系统,那么您当然容易受到攻击,但话又说回来,您也容易受到各种其他漏洞的影响。

答案2

我认为您最初的解决方案是部分正确的。在我的 Debian 12 机器上,/etc/ssh/sshd_config顶部包含以下行:

Include /etc/ssh/sshd_config.d/*.conf

所以该目录下的所有配置文件/etc/ssh/sshd_config.d都应该以.conf.同样对于/etc/ssh/ssh_config.d.

以下命令适用于我的系统:

echo 'Ciphers [email protected]' > /etc/ssh/sshd_config.d/anti-terrapin-attack.conf
echo 'Ciphers [email protected]' > /etc/ssh/ssh_config.d/anti-terrapin-attack.conf

systemctl restart sshd

答案3

尝试使用此方法来检查哪些密码实际上可用于 ssh(也可以从远程主机运行):

nmap --script ssh2-enum-algos -sV -p 22 localhost

就我而言,虽然ssh -Q cipher显示了[email protected],但上面没有显示。

答案4

我使用的是嵌入式 Linux 设备,它看起来有点不同。在设备上,它报告已[email protected]编译成二进制文件:

# ssh -Q cipher
3des-cbc
aes128-cbc
aes192-cbc
aes256-cbc
aes128-ctr
aes192-ctr
aes256-ctr
[email protected]
[email protected]
[email protected]

我没有nmap,但可以从我的电脑上运行它:

$ nmap --script ssh2-enum-algos -sV -p 22 192.168.1.62
Starting Nmap 7.94 ( https://nmap.org ) at 2024-02-09 18:00 NZDT
Nmap scan report for mydevice (192.168.1.62)
Host is up (0.17s latency).

PORT   STATE SERVICE VERSION
22/tcp open  ssh     OpenSSH 8.9 (protocol 2.0)
| ssh2-enum-algos: 
|   kex_algorithms: (10)
|       curve25519-sha256
|       [email protected]
|       ecdh-sha2-nistp256
|       ecdh-sha2-nistp384
|       ecdh-sha2-nistp521
|       [email protected]
|       diffie-hellman-group-exchange-sha256
|       diffie-hellman-group16-sha512
|       diffie-hellman-group18-sha512
|       diffie-hellman-group14-sha256
|   server_host_key_algorithms: (4)
|       rsa-sha2-512
|       rsa-sha2-256
|       ecdsa-sha2-nistp256
|       ssh-ed25519
|   encryption_algorithms: (6)
|       [email protected]
|       aes128-ctr
|       aes192-ctr
|       aes256-ctr
|       [email protected]
|       [email protected]
|   mac_algorithms: (10)
|       [email protected]
|       [email protected]
|       [email protected]
|       [email protected]
|       [email protected]
|       [email protected]
|       [email protected]
|       hmac-sha2-256
|       hmac-sha2-512
|       hmac-sha1
|   compression_algorithms: (2)
|       none
|_      [email protected]

Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 0.55 seconds

但是,我有两个配置文件,没有/etc/ssh/sshd_config.d目录:

# ll /etc/ssh/sshd_config*
-rw-r--r--    1 root     root        3.0K Mar  9  2018 /etc/ssh/sshd_config
-rw-r--r--    1 root     root        3.1K Feb  9 05:17 /etc/ssh/sshd_config_readonly

我发现附加然后重新启动对我有用:Ciphers [email protected]/etc/ssh/sshd_config_readonlysshd

echo '\nCiphers [email protected]' >> /etc/ssh/sshd_config_readonly
systemctl restart system-sshd.slice

现在nmap上面的命令不报告[email protected]

相关内容