解决方法
1. 修改SSH配置文件
编辑SSH服务器的配置文件 /etc/ssh/sshd_config
,找到或添加以下配置项:
# 禁用版本信息显示
DebianBanner no
请注意,DebianBanner
是一个非标准的配置项,通常用于Debian和Ubuntu系统。对于CentOS,可以使用以下方法来隐藏版本信息:
2. 使用 Banner
选项
虽然 DebianBanner
不适用于CentOS,但您可以使用 Banner
选项来覆盖默认的版本信息。编辑 /etc/ssh/sshd_config
文件,添加或修改以下配置项:
# 设置自定义欢迎消息
Banner /etc/issue.net
然后创建或编辑 /etc/issue.net
文件,写入您希望显示的自定义消息,例如:
Welcome to the secure server.
Unauthorized access is strictly prohibited.
3. 重启SSH服务
保存配置文件后,重启SSH服务以应用更改:
systemctl restart sshd
4. 验证更改
验证更改是否生效,可以使用以下命令从另一台机器上测试:
ssh -v user@your_server_ip
在输出中,您应该看到自定义的欢迎消息,而不是SSH版本信息。
5. 配置防火墙
为了进一步增强安全性,可以使用防火墙限制对SSH服务的访问。编辑 firewalld
规则,仅允许特定的IP地址或网络段访问SSH服务:
# 允许来自特定 IP 地址的 SSH 访问
firewall-cmd --add-rich-rule='rule family="ipv4" source address="192.168.1.100" port port=22 protocol=tcp accept' --permanent
# 重新加载防火墙规则
firewall-cmd --reload
6. 更新系统和软件包
确保您的系统和所有安装的软件包都是最新的,以获得最新的安全补丁:
# 更新所有已安装的软件包
yum update -y
7. 审计和监控
定期审计系统日志,监控异常活动,特别是与SSH服务相关的活动。使用如 auditd
等工具可以帮助您更好地了解系统的安全状况。
8. 使用密钥认证
建议使用公钥认证代替密码认证,以增强SSH连接的安全性。编辑 /etc/ssh/sshd_config
文件,添加或修改以下配置项:
# 禁用密码认证
PasswordAuthentication no
# 启用公钥认证
PubkeyAuthentication yes
# 指定公钥文件的位置
AuthorizedKeysFile .ssh/authorized_keys
然后重启SSH服务:
systemctl restart sshd