我组织的安全团队告诉我们禁用弱密码,因为它们发出弱密钥。
arcfour
arcfour128
arcfour256
但我尝试在 ssh_config 和 sshd_config 文件中查找这些密码,但发现它们被注释了。
grep arcfour *
ssh_config:# Ciphers aes128-ctr,aes192-ctr,aes256-ctr,arcfour256,arcfour128,aes128-cbc,3des-cbc
我还应该在哪里检查以从 SSH 禁用这些密码?
答案1
ssh_config
如果您在使用关键字时没有明确设置密码列表Ciphers
,则根据man 5 ssh_config
(客户端)和man 5 sshd_config
(服务器端),默认值是:
aes128-ctr,aes192-ctr,aes256-ctr,arcfour256,arcfour128,
[email protected],[email protected],
[email protected],
aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc,aes192-cbc,
aes256-cbc,arcfour
请注意 arcfour 密码的存在。因此,您可能必须显式地为 设定一个更具限制性的值Ciphers
。
ssh -Q cipher
来自客户的信息会告诉您您的客户可以支持哪些方案。请注意,此列表不受 中指定的密码列表的影响ssh_config
。从 中删除密码ssh_config
不会将其从 的输出中删除ssh -Q cipher
。此外,使用ssh
显-c
式指定密码的选项将覆盖您设置的密码限制列表ssh_config
,并可能允许您使用弱密码。此功能允许您使用客户ssh
端与不支持更新的更强密码的过时 SSH 服务器进行通信。
nmap --script ssh2-enum-algos -sV -p <port> <host>
会告诉你你的服务器支持哪些方案。
答案2
要禁用 RC4 并在 SSH 服务器上使用安全密码,请将以下内容硬编码在/etc/ssh/sshd_config
ciphers [email protected],[email protected],[email protected],aes256-ctr,aes192-ctr,aes128-ctr
或者,如果您不想指定密码而只想删除不安全的密码,请在命令行上运行此命令(在 sudo 模式下):
sshd -T | grep ciphers | sed -e "s/\(3des-cbc\|aes128-cbc\|aes192-cbc\|aes256-cbc\|arcfour\|arcfour128\|arcfour256\|blowfish-cbc\|cast128-cbc\|[email protected]\)\,\?//g" >> /etc/ssh/sshd_config
您可以使用以下命令检查服务器当前使用的密码:
sudo sshd -T | grep ciphers | perl -pe 's/,/\n/g' | sort -u
确保您的 ssh 客户端可以使用这些密码,运行
ssh -Q cipher | sort -u
查看列表。
您还可以指示 SSH 客户端仅与远程服务器协商安全密码。集合中/etc/ssh/ssh_config
:
Host *
ciphers [email protected],[email protected],[email protected],aes256-ctr,aes192-ctr,aes128-ctr
答案3
显式指定密码列表的问题是,您必须在新密码出现时手动添加它们。相反,只需列出要删除的密码,并在列表(不是每个单独的密码)前面添加“-”字符即可。因此在这种情况下,Ciphers 行应为:
Ciphers -arcfour*
或者如果您愿意:
Ciphers -arcfour,arcfour128,arcfour256
从 sshd_config 手册页密码选项 (自 OpenSSH 7.5 起,发布于 2017-03-20):
如果指定的值以“+”字符开头,则指定的密码将附加到默认集而不是替换它们。如果指定的值以“-”字符开头,则指定的密码(包括通配符)将从默认集中删除而不是替换它们。
这也适用于Kex算法和MAC选项。
答案4
启用/禁用密码需要在文件 /etc/ssh/sshd_config 中添加/删除它编辑此文件后必须重新加载服务
systemctl reload sshd
/etc/init.d/sshd reload
然后,从客户端运行此命令将告诉您哪些方案支持
ssh -Q cipher
要检查服务器上是否启用了 arcfour 密码,请运行以下命令
ssh localhost -c arcfour
要检查服务器上是否启用了 arcfour128 密码,请运行此命令
ssh localhost -c arcfour128