在Linux系统中,CBC(Cipher Block Chaining)模式的加密算法被认为存在安全隐患(例如可能被攻击者利用来进行Padding Oracle攻击)。因此,建议禁用SSH服务中不安全的CBC模式加密算法,并使用更安全的加密算法:CTR(Counter Mode)或GCM(Galois/Counter Mode)。
一. 检查当前SSH服务支持的加密算法
-
列出SSH服务支持的加密算法:
使用以下命令列出服务器端支持的加密算法:ssh -Q cipher或
sshd -T | grep ciphers如果输出中包含
aes128-cbc、3des-cbc等信息,则说明SSH服务支持CBC模式加密。 -
检查当前使用的加密算法:
从客户端测试连接,查看会话使用的加密算法:ssh -v username@hostname在输出中寻找类似以下内容:
debug1: kex: algorithm: diffie-hellman-group-exchange-sha256 debug1: cipher: aes128-cbc如果使用了
-cbc相关算法,则需要进行修复。
二. 修改SSH服务配置文件
-
编辑SSH服务的配置文件:
sudo vi /etc/ssh/sshd_config -
查找或添加以下配置项,用于指定允许的加密算法:
Ciphers aes256-ctr,aes192-ctr,aes128-ctr,aes256-gcm@openssh.com,aes128-gcm@openssh.com
Ciphers指定允许的加密算法。- 移除任何
cbc模式的算法(如aes128-cbc、3des-cbc)。 - 使用
ctr或gcm模式的算法。
- 保存文件并退出。
三. 重新启动SSH服务
修改配置后,重启SSH服务以使更改生效:
sudo systemctl restart sshd
或
sudo service sshd restart
四. 验证配置更改
-
重新列出支持的加密算法:
ssh -Q cipher确保输出中不再包含
cbc模式的算法。 -
测试客户端连接:
使用以下命令连接,确认是否使用安全算法:ssh -v username@hostname确保输出中显示的加密算法为非
cbc模式,例如:debug1: cipher: aes256-ctr
五. 扫描SSH服务的漏洞
-
使用工具扫描SSH服务以验证是否仍支持CBC模式加密算法:
-
nmap:
nmap --script ssh2-enum-algos -p 22 hostname检查输出中是否列出了CBC模式加密算法。
-
ssh-audit(需要安装):
ssh-audit hostname该工具可以详细列出SSH服务的加密算法及其安全性。
-
-
如果发现仍然支持CBC模式,重新检查
/etc/ssh/sshd_config文件中的配置。
六. 其他
-
升级OpenSSH:
确保使用最新版本的OpenSSH,旧版本可能支持不安全的算法。sudo apt update && sudo apt install openssh-server -
测试回滚策略:
在修改前,确保已验证SSH配置文件语法,以避免配置错误导致无法连接:sudo sshd -t -
限制登录协议版本:
在配置文件中确保只允许SSH协议版本2:Protocol 2
667

被折叠的 条评论
为什么被折叠?



