一、需求背景
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
1 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.1
Aug 13 03:25:21 root 127.0.0.1
Aug 13 03:45:20 root 127.0.0.1
Aug 13 22:34:35 root 127.0.0.1
Aug 14 00:09:54 root 127.0.0.1
Aug 14 03:36:22 root 127.0.0.1
可以很明显看出,这几个时间不对,非下班时间登陆,证明服务器可能被爆破。
此时禁用掉root账户,修改默认22端口,之后无其他问题了。