SJYssr

Just for fun

文章

5

标签

0

评论

1

文章目录

数据统计

成立

307天

文章

5篇

评论

1条

标签

0个

最近文章

一次惊心动魄的服务器安全加固实录

一次惊心动魄的服务器安全加固实录

前言

作为一个独立开发者,我一直以为自己的小服务器不会被盯上。直到今天,阿里云的一条 CRITICAL 级别告警彻底打破了我的幻想——SSH 暴力破解攻击

这篇文章记录了我从发现问题、紧急响应到全面加固的全过程,希望能给同样有自建服务器的朋友一些参考。


事件起因

下午正在写代码,突然收到阿里云安全中心的告警推送:

事件等级: CRITICAL
事件名称: SSH Brute Force Attack
威胁等级: 4(高危)

心跳瞬间加速——这可是生产服务器啊。


第一步:排查入侵迹象

冷静下来后,我立刻登录服务器查看登录日志:

last -n 20      # 查看成功登录记录
lastb -n 20     # 查看失败登录记录

结果触目惊心——过去 24 小时内有来自全球各地 IP 的数千次失败登录尝试,用户名从 root 到 mysql、admin、test,甚至还有 cvs、machiko 这种莫名其妙的账号名。

好在成功登录的 IP 都是我自己的,说明攻击者虽然尝试了暴力破解,但并未真正得手


第二步:发现安全隐患

仔细检查 SSH 配置后,我惊出一身冷汗:

cat /etc/ssh/sshd_config | grep -E "PermitRootLogin|PasswordAuthentication"

输出:

PermitRootLogin yes
PasswordAuthentication yes

我的服务器竟然允许 root 密码登录! 这简直是把大门敞开让人试密码。

更糟糕的是,还发现了一个可疑的定时任务:

cat /etc/cron.d/fix-gateway
# 输出:*/5 * * * * root /usr/bin/node /tmp/fix_gw.mjs

/tmp/fix_gw.mjs 文件已经不存在了——可能是之前的某个操作遗留的,也可能是攻击者留下的后门被清理了。


第三步:紧急加固

1. 修复 SSH 配置

# 备份原配置
cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak

# 修改关键配置
PermitRootLogin prohibit-password  # 禁止root密码登录
PasswordAuthentication no           # 关闭密码认证
MaxAuthTries 3                      # 最大尝试次数
AllowUsers root                     # 只允许root登录
LoginGraceTime 30                   # 登录超时30秒

2. 清理可疑定时任务

rm -f /etc/cron.d/fix-gateway
crontab -r  # 清理当前用户的crontab

3. 安装 fail2ban 自动封禁

apt install fail2ban -y
systemctl enable fail2ban
systemctl start fail2ban

配置白名单,防止自己的 IP 被误封:

# /etc/fail2ban/jail.local
[sshd]
enabled = true
port = 222
maxretry = 3
bantime = 86400
ignoreip = 127.0.0.1/8 你的常用IP

4. 重启 SSH 服务

systemctl restart ssh

第四步:验证加固效果

几小时后查看 fail2ban 状态:

fail2ban-client status sshd
Currently banned: 4
Banned IP list: 14.103.84.145 2.57.122.89 54.37.74.179 92.118.39.59

不错,已经自动封禁了 4 个攻击 IP。


反思与教训

为什么会被盯上?

  1. 公网 IP 暴露:服务器直接暴露在公网,扫描器 24 小时不停扫
  2. 弱配置:默认配置太宽松,root + 密码 = 攻击者的天堂
  3. 端口非标准也没用:虽然改了 SSH 端口,但全端口扫描依然能找到

为什么没被攻破?

运气 + 及时告警。如果密码再简单一点,或者晚发现几小时,结果可能完全不同。


最佳实践清单

给有自建服务器的朋友一份清单:

  • [ ] 禁用密码登录,只用密钥认证
  • [ ] 禁止 root 直接登录,用普通用户 + sudo
  • [ ] 安装 fail2ban,自动封禁暴力破解
  • [ ] 定期检查日志,关注异常登录
  • [ ] 最小权限原则,不用的服务别开
  • [ ] 开启云安全中心,及时收到告警

写在最后

这次事件给我上了一课:安全不是一次性配置,而是持续的过程

服务器就像自己的家,门锁换好了,还得定期检查窗户、监控、报警器。攻击者永远不会休息,我们也不能掉以轻心。

如果你也有自建服务器,现在就去检查一下 SSH 配置吧。别等收到告警才后悔。


本文写于事件发生当晚,记录以防遗忘,也希望能帮到他人。

一次惊心动魄的服务器安全加固实录

发布于

June 2, 2026

分类

版权协议

MIT

评论
😀

感谢支持!

微信二维码

请使用微信扫描二维码打赏。

支付宝二维码

请使用支付宝扫描二维码打赏。