如何禁用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 -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
最好在应用 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_readonly
sshd
echo '\nCiphers [email protected]' >> /etc/ssh/sshd_config_readonly
systemctl restart system-sshd.slice
现在nmap
上面的命令不报告[email protected]