支持弱 MAC 算法 (SSH)

支持弱 MAC 算法 (SSH)

我的 /etc/ssh/sshd_config 文件中有以下几行:

MACs hmac-sha2-256,hmac-sha2-512,[email protected],[email protected]
MACs [email protected],[email protected],[email protected],[email protected],[email protected]

但仍然可以使用 sshssh -o MACs=hmac-md5-96 user@host 这里还有以下输出ssh -Q mac

hmac-sha1
hmac-sha1-96
hmac-sha2-256
hmac-sha2-512
hmac-md5
hmac-md5-96
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]

如何将其限制为 256 和 512?

答案1

配置所需算法的最佳方法是使用/etc/ssh/sshd_config文件中第一行之类的内容:

MACs [email protected],[email protected],hmac-sha2-512,hmac-sha2-256

请注意,我首先对 EtM MAC 进行了排序,它们更安全,并且也优先选择更安全的选项。实际上,这没有什么区别,因为 SSH 协议要求双方选择服务器也支持的第一个受支持的客户端 MAC。您需要重新启动服务器才能使该值生效;否则,您将看不到任何变化。

您的情况中的第二行只是删除了一些算法。您没有删除的是 HMAC-MD5,它不再是一个好的选择。通过仅指定安全选项,不安全选项将被自动删除,因此这是解决此问题的最佳方法。

请注意,ssh -Q mac列出了编译到二进制文件中的所有选项,并不表明配置了什么。虽然列出的许多选项都是糟糕的选择,但不幸的是,有些人拥有必须支持的过时且不安全的操作系统或硬件,并且拥有这些选项对于此类意外情况可能很有用。因此,OpenSSH 包含多个选项,其中一些选项默认情况下处于禁用状态。

此外,如果您使用 AEAD 密码(如[email protected][email protected]或 )[email protected],则不会使用 MAC 值,因为 AEAD 密码代替 MAC 提供完整性。因此,如果您想测试,您可能还需要选择一个密码,例如aes256-ctr不是 AEAD,因此您的测试命令应如下所示:

ssh -oMACs=hmac-md5 -oCiphers=aes256-ctr user@host

相关内容