我想删除我的 Amazon Elastic Compute Cloud (Amazon EC2) Linux 实例上的特定的 SSH (Secure Shell) 密码以满足安全要求。
简短描述
要在您的 Amazon EC2 Linux 实例上维护安全的环境,请删除不安全的 SSH 密码。然后,将 SSH 配置为仅使用加密算法。
解决方法
**先决条件:**确定您的系统是否支持加密策略。Amazon Linux 2023 实例使用加密策略功能来管理加密设置。有关支持加密策略的发行版的更多信息,请参阅 Ubuntu 网站上的 (8) update-crypto-policies,或红帽企业 Linux (RHEL) 网站上的系统级加密策略。
要检查您的系统是否支持加密策略,请使用 SSH、Amazon EC2 Instance Connect 或 会话管理器(AWS Systems Manager 的一项功能)连接到您的实例。然后,运行以下命令:
[user@localhost] # update-crypto-policies --show
如果您得到的输出结果类似于以下示例,则说明您的系统不支持加密策略:
update-crypto-policies: command not found
如果您的系统支持加密策略,则您得到的输出结果就是以下其中的一种:
LEGACY
DEFAULT
FUTURE
FIPS
手动删除 SSH 密码
如果您的 Linux 系统不支持加密策略,请修改 sshd_config 文件以手动删除 SSH 密码。
要修改 sshd\ _config 文件,请完成以下步骤:
-
从该实例创建亚马逊机器映像(AMI) 或 Amazon Elastic Block Store (Amazon EBS) 快照作为备份。
-
使用 SSH、EC2 Instance Connect 或会话管理器登录实例。
-
要切换到根用户,请运行以下命令:
[user@localhost] # sudo -i
-
要查找在系统上激活的密码,请运行以下命令:
[root@localhost] # sshd -T | grep 'ciphers'
-
记下输出中的列表,然后删除不安全的密码。
-
要导航到 /etc/ssh/ 目录,请运行以下命令:
[root@localhost] # cd /etc/ssh/
-
要创建 sshd\ _config 文件的备份,请运行以下命令:
[root@localhost] # cp sshd_config sshd_config.bak
-
要在文本编辑器中打开 sshd\ _config 文件,请运行以下命令:
[root@localhost] # vi sshd_config
-
检查该文件是否包含与以下内容类似的密码部分:
ciphers chacha20-poly1305@openssh.com,aes128-ctr,aes192-ctr,aes256-ctr,aes128-gcm@openssh.com,aes256-gcm@openssh.com,aes128-cbc,aes192-cbc,aes256-cbc,blowfish-cbc,cast128-cbc,3des-cbc
-
如果文件中包含密码部分,则对其进行编辑以删除不安全的密码。如果没有密码部分,则将密码列表添加到文件末尾。
-
保存文件并退出。
-
要应用更改,请运行以下命令以重新启动 SSHD 进程:
[root@localhost] # service sshd restart
- 要检查更新的密码列表中是否已应用更改,请运行以下命令:
[root@localhost] # sshd -T | grep 'ciphers'
移除不安全的 Kex 算法
要删除不安全的密钥交换 (Kex) 算法,请完成以下步骤:
-
从该实例创建亚马逊机器映像(AMI) 或 Amazon EBS 快照作为备份。
-
使用 SSH、EC2 Instance Connect 或会话管理器登录实例。
-
要查找当前激活的 Kex 算法,请运行以下命令:
[root@localhost] # sshd -T | grep 'kex'
-
要查找在系统上激活的密码,请运行以下命令:
[root@localhost] # sshd -T | grep 'ciphers'
-
记下输出中的列表,然后删除不安全的密码。
-
要导航到 /etc/ssh/ 目录,请运行以下命令:
[root@localhost] # cd /etc/ssh/
-
要创建 sshd\ _config 文件的备份,请运行以下命令:
[root@localhost] # cp sshd_config sshd_config.bak
-
从以 KexAlgorithms 开头的行中删除不安全的算法。
-
检查该文件是否包含与以下内容类似的密码部分:
ciphers chacha20-poly1305@openssh.com,aes128-ctr,aes192-ctr,aes256-ctr,aes128-gcm@openssh.com,aes256-gcm@openssh.com,aes128-cbc,aes192-cbc,aes256-cbc,blowfish-cbc,cast128-cbc,3des-cbc
-
如果文件中包含密码部分,则对其进行编辑以删除不安全的密码。如果没有密码部分,则将密码列表添加到文件末尾。
-
保存文件并退出。
-
要检查是否已应用更改,请运行以下命令:
[root@localhost] # sshd -T | grep 'kex'
使用加密策略删除密码
如果您的系统支持加密策略并且您使用先前生成的配置文件,请完成以下步骤:
-
要查看您的发行版中可用的加密配置文件,请运行以下命令:
[user@localhost] # ls /usr/share/crypto-policies/policies
-
要更改系统的策略设置,请运行以下命令:
[user@localhost] # sudo update-crypto-policies --set POLICY_NAME
**注意:**将 POLICY\ _NAME 替换为您的策略名称,例如 FUTURE。
-
运行以下命令重启系统以使新策略生效:
[user@localhost] # sudo reboot
-
运行以下命令检查新策略是否已激活:
[user@localhost] # sudo update-crypto-policies --show
如果先前生成的策略不符合您的安全要求,则为加密策略创建自定义策略。
要创建自定义策略,请完成以下步骤:
-
复制策略:
[user@localhost] # sudo cp /usr/share/crypto-policies/policies/DEFAULT.pol /etc/crypto-policies/policies/POLICY_NAME.pol
-
在文本编辑器中编辑新的策略文件并删除不希望系统使用的密码:
[user@localhost] # sudo vi /etc/crypto-policies/policies/POLICY_NAME.pol
-
保存文件并退出。
-
运行以下命令更新系统的策略设置:
[user@localhost] # sudo update-crypto-policies --set POLICY_NAME
-
运行以下命令重启系统以使新策略生效:
[user@localhost] # sudo reboot
-
运行以下命令检查新策略是否已激活:
[user@localhost] # sudo update-crypto-policies --show
相关信息
默认 SSH 服务器配置
在 AL2023 上启用 FIPS 模式