各位老友们好,我是 Chlorine。本来打算鸽一段时间,等备案完成再水文,但是没办法,键盘不允许~~(键盘:关我什么事)~~。

昨天闲着没事又去看我的服务器,偶然打开了 1Panel 面板的 SSH 登录日志,结果不看不知道,一看吓一跳……

An image to describe post

我简单看了下,大部分的攻击都是来自海外的(也有国内的,我就不说是哪个地方的了)。攻击的 IP 高度重复,手段主要集中于使用 root 进行登录,以及尝试蒙用户名。幸亏我的机器除了 root 拢共就我一个用户,像 www-data 这种常见的用户名也没有,不然可能还真就叫人钻空子了。

然后我就坐在那想,越想越气。欺负人都欺负到我小氯头上了,这已经不是一般的虫豸了,必须要出重拳!

于是我写了个简单的脚本:

#!/bin/bash

LOG_DIR=/var/log

OUTPUT_FILE=/home/yoghurtlee/chongzhi.txt

# 方便审查
LOGIN_RECORD_FILE=/home/yoghurtlee/chongzhi_jilu.txt

> $LOGIN_RECORD_FILE

for log_file in $LOG_DIR/auth.log*; do
    if [[ -f "$log_file" ]]; then
        grep "Invalid user" "$log_file" >> $LOGIN_RECORD_FILE
    fi
done

grep "Invalid user" $LOGIN_RECORD_FILE | awk '{print $10}' | sort -u > $OUTPUT_FILE

然后赋予可执行权限:

chmod +x chongzhi.sh
./chongzhi.sh

获得了一群 IP。全都加到 1Panel 里面 Fail2ban 的黑名单里面,杜绝其访问我的一切服务。

然后我又写了个定时任务,监控所有尝试用 root 登录的 IP,一旦发现直接永久封禁。你们这帮攻击者给我老实呆着,看我派 Fail2ban 来把你们一个一个送上天!

然后的话……其实我也没什么好办法了。封禁已经是我能想到的最好的防范措施了,总不能拿我的服务器去反向攻击它们吧。