缙哥哥的博客
与你分享我的点点滴滴生活

服务器SSH被暴力破解150余万次,磁盘读写和负载直接拉满

280G通用流量广电卡28元/月 | 免费1T空间不限速网盘(APP领取4T空间)

起因是最近老有小伙伴反馈,怎么博客又打不开了?而我进入监控页面一看,硬盘动不动就爆满,一开始我以为博客程序报错,产生了很多日志,于是乎开启了 WordPress Dbug 进行一一排查,一个个解决之后发现仍旧大量占用磁盘。

鼠标指着一看,居然还有阿里云盾的事儿,看来事情不简单。

从进程来看,monitor 和 rsyslogd 大量的磁盘读写,那应该就是日志文件的读写了,进入/var/log目录一看,journal 文件夹磁盘占用高达 4G,而我的阿里云服务器一共才 40G 空间。

先查看报错最多的服务,统计一下哪个服务产生的日志最多,进入 SSH,使用命令:

sudo journalctl -q --no-pager | awk '{print $5}' | cut -d'[' -f1 | sort | uniq -c | sort -rn | head -10

命令解析

  1. sudo journalctl -q --no-pager
    • 作用:读取系统所有的二进制日志。
    • -q:安静模式,不显示“日志开始于…”之类的提示头。
    • --no-pager:不分页,一次性输出所有内容(方便后面处理)。
  2. awk '{print $5}'
    • 作用:提取每一行日志的第 5 列
    • 在标准的系统日志格式中,第 5 列通常是进程名(例如 sshd[1234])。
  3. cut -d'[' -f1
    • 作用:清洗进程名。
    • 因为日志里的进程名通常带着 PID(如 sshd[21373]),这个命令以 [ 为分隔符,只保留前面的名字(即 sshd),去掉后面的数字。
  4. sort
    • 作用:排序。
    • 把相同的进程名排在一起,为统计做准备。
  5. uniq -c
    • 作用:去重并计数。
    • 统计每个进程名出现了多少次。
  6. sort -rn
    • 作用:反向排序。
    • 按照数量从大到小排列,让“罪魁祸首”排在最上面。
  7. head -10
    • 作用:只看前 10 名。

这里只列出前两个最多的日志:

1524148 sshd
 650529 monitor

好家伙,SSH 服务产生了150 多万条日志,每一条 Failed password 都是一次硬盘写入。于是我赶紧把 Fail2Ban 给安装上去。晚点把 SSH 端口给改了,如果平时不用,直接去阿里云控制面板把 22 端口都给禁了。

还有一个名为 monitor 的进程产生了 65 万条日志。根据之前的排查,这是宝塔面板的监控程序 (/www/server/monitor/monitor)。缙哥哥在部署宝塔的时候,做了告警通知,但因为邮件服务(163每天发送的数量有限),导致发送失败,程序陷入死循环,疯狂报错写入日志。

结论

也就是这两个B玩意相辅相成,SSHD 爆破日志大量占用磁盘读写,以至于磁盘占用过多,并且导致负载过高。而磁盘占用过多(超过90%)和负载过高(每5分钟内平均负载超过80%)就会自动发送告警邮件。

写在最后

/var/log/journal 是 systemd-journald 服务的二进制日志存储目录。它是导致我服务器磁盘空间爆满的头号元凶(小小的40G磁盘空间占用了4G)。好消息是这个目录里的文件是可以安全清理的,因为它们只是“运行日志”,删掉不会影响系统运行,但是直接删除又因为 journald 服务正在占用它们,直接删可能删不掉或者服务报错。

sudo journalctl --vacuum-size=100M

保留最近 100MB 的日志,其余全部删除。

最后把/etc/systemd/journald.conf文件改下,免得后面又一堆的日志。

# 限制日志文件最大为 200MB
SystemMaxUse=200M
# 如果日志超过 100MB,就触发清理
SystemKeepFree=100M

编辑journald.conf文件,把这两条的参数前#去掉,设置一个值即可,可以根据自己的需求进行设置。

好了,服务器终于恢复正常了。

赞(1) 打赏
转载请注明来源及链接:缙哥哥 » 服务器SSH被暴力破解150余万次,磁盘读写和负载直接拉满
如需 WordPress 优化加速、二次开发、托管等服务,可联系我购买付费服务:点此联系我 | 近期站内热门福利:

评论 抢沙发

觉得文章有用就打赏一下文章作者

非常感谢你的打赏,我们将继续给力更多优质内容,让我们一起创建更加美好的网络世界!

支付宝扫一扫

微信扫一扫

登录

找回密码

注册