Linux回溯用户的历史登陆记录、处理账户被爆破【以CentOS为例】

艺帆风顺 发布于 2025-04-03 18 次阅读


一、需求背景

    linux服务器疑似被人控制,在此溯源谁在什么时间连接到服务器。

二、操作命令

1、定位爆破主机root账户的IP是多少

grep "Failed password for root" /var/log/secure | awk '{print $11}' | sort | uniq -c | sort -nr | more
[root@localhost root]# grep "Failed password for root" /var/log/secure | awk '{print $11}' | sort | uniq -c | sort -nr | more 3480 127.0.0.1 7 192.168.3.32 7 192.168.3.20 6 192.168.3.94      192.168.3.13

2、定位哪些IP正在爆破

grep "Failed password" /var/log/secure|grep -E -o "(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?).(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?).(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?).(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)"|uniq -c
 25611 127.0.0.1 1 192.168.3.32 8 127.0.0.1 1 192.168.3.32 60 127.0.0.1 1 192.168.3.32 16 127.0.0.1 1 192.168.3.32 36 127.0.0.1 1 192.168.3.32 1 192.168.3.13 2 192.168.3.20      1 192.168.3.94
3、定位爆破用户的字典
grep "Failed password" /var/log/secure|perl -e 'while($_=){ /for(.*?) from/; print "$1n";}'|uniq -c|sort -nr

4、查询登陆成功的IP

grep "Accepted " /var/log/secure | awk '{print $11}' | sort | uniq -c | sort -nr | more

5、查询登录成功的日期、用户名、IP:

grep "Accepted " /var/log/secure | awk '{print $1,$2,$3,$9,$11}'
Aug 13 03:20:59 root 127.0.0.1Aug 13 03:25:21 root 127.0.0.1Aug 13 03:45:20 root 127.0.0.1Aug 13 22:34:35 root 127.0.0.1Aug 14 00:09:54 root 127.0.0.1Aug 14 03:36:22 root 127.0.0.1

可以很明显看出,这几个时间不对,非下班时间登陆,证明服务器可能被爆破。

此时禁用掉root账户,修改默认22端口,之后无其他问题了。