华南-广州区域ECS实例SSH暴露面排查与加固实践
【摘要】 近期排查华南-广州区域ECS实例,发现SSH端口对全网开放、root密码登录开启,单日失败登录超2000次。本文记录安全组收敛、SSH配置加固、fail2ban自动封禁、端口偏移等加固方案与验证过程。
前言
近期在排查个人华南-广州区域的ECS实例时,发现安全组与SSH服务配置存在多处暴露面,单日失败登录尝试超过2000次。本文记录排查过程与加固方案,供有类似配置的同学参考。
一、风险排查
1.1 安全组入方向
登录控制台查看ECS关联安全组,发现入方向规则中存在一条:
协议: TCP 端口: 22 源地址: 0.0.0.0/0 策略: 允许
这意味着全网任意IP均可尝试连接SSH端口,是爆破攻击的主要入口。
1.2 SSH服务配置
登录实例检查/etc/ssh/sshd_config:
PermitRootLogin yes PasswordAuthentication yes MaxAuthTries 6
root远程登录+密码认证均开启,配合22端口全开,风险较高。
1.3 失败登录日志
统计最近24小时失败登录:
# journalctl -u sshd --since "24 hours ago" | grep -c Failed 2147
单日2147次失败尝试,来源IP集中在几个海外网段。
二、加固方案
2.1 收敛安全组(首选)
将22端口的源地址由0.0.0.0/0改为运维跳板机弹性公网IP/32。若没有跳板机,可考虑使用华为云堡垒机(CBH)统一运维入口,彻底关闭公网SSH。
2.2 SSH配置加固
# /etc/ssh/sshd_config PermitRootLogin no PasswordAuthentication no PubkeyAuthentication yes MaxAuthTries 3 LoginGraceTime 30 ClientAliveInterval 60 ClientAliveCountMax 2
改完后systemctl restart sshd重启服务。务必先确认密钥登录可用再重启,避免锁死自己。
2.3 fail2ban自动封禁
# yum install -y fail2ban # systemctl enable --now fail2ban
默认策略:10分钟内5次失败登录,封禁来源IP 1小时。可按需调整/etc/fail2ban/jail.local。
2.4 端口偏移
将SSH监听端口改为非标准高位端口(如52022),降低被批量扫描命中的概率。配合~/.ssh/config管理多实例连接:
Host gz-ecs HostName xxx.xxx.xxx.xxx Port 52022 User opsadmin IdentityFile ~/.ssh/gz_ecs_key
三、验证
加固完成后验证:
nmap -p22 <EIP>应显示 filtered 或 closedjournalctl -u sshd --since "1 hour ago"确认无异常失败登录- 使用密钥从指定IP登录正常,从其他IP连接被拒
四、小结
云服务器安全是一个持续过程,建议定期检查安全组规则、SSH配置和登录日志。本文方案已在个人测试实例验证,不影响业务运行。核心思路是:最小暴露面 + 密钥认证 + 自动封禁 + 日志监控。
【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)