服务器这几天应该是被攻击了
莫名的出现了一个wordpress的进程,cpu 占用率 高居不下,而我从来没用过wordpress。
估计伪装成 wordpress,于是将该进程杀死,过一段时间又出现了。
杀不死该进程。
通过find命令 将所有含wordpress的文件删掉后,又出现了。
删不掉。
同步更新到以下地址,最新脚本地址
https://github.com/xxwdll/shell_repo/blob/master/05update_black_list.sh
第一步 改密码
改完服务器密码,重启后,依旧没有用,估计是后台跑了一个隐蔽的脚本。
第二步 重装系统
长痛不如短痛,开始重装系统,这个时候ssh 服务挂了,前几天也莫名的挂掉过一次,估计和这个有关。
重装系统后系统开始稳定了,于是检查 /var/log/secure 文件,
果真是被黑客攻击了
有大量的访问失败记录,估计是想暴力破解我这台机器的密码。
由于对方有大量的ip,于是通过脚本分析日志,将ip访问次数大于5次的加入黑名单。
脚本如下:
#!/bin/bash
cd /var/log
cat secure | grep "Failed password for root from|Did not receive identification" | grep -oP '([0-9]{1,3}\.){3}[0-9]{1,3}' > wrongIP.txt
cat wrongIP.txt | sort | uniq -c | sort -rn -k 1 > countWrongIP.txt
cat countWrongIP.txt | while read li
do
this_time=`echo $li | awk '{print $1}'`
if [[ $this_time -gt 5 ]];then
this_ip=`echo $li | awk '{print $2}'`
#echo "$li"
deny_ip="sshd:"$this_ip
#echo $deny_ip
this_result=`cat /etc/hosts.deny | grep "$this_ip"`
if [ -z "$this_result" ];then
echo $deny_ip >> /etc/hosts.deny
fi
else
break
fi
done
rm -f wrongIP.txt countWrongIP.txt
service sshd restart
执行脚本后,访问全部被拒绝了,完成。
2020-03-31 17:12更新
失败了,现在22端口根本就访问不了,看来得要改变端口了
2020-04-01 09:24更新
改完端口后,现在查看日志终于停止攻击;
统计secure文件,看来 应该是一个ip攻击30次,失败,换另一个ip继续攻击
这次得到的教训是:
数据库一定要定时备份,密码一定不能太过于简单!
2020-05-04 13:04更新
之前写的有些问题,现在将脚本执行频率变为2分钟一次;
同时修复了脚本中date格式问题导致的无法添加ip到黑名单问题;
#!/bin/bash
# 写入到定时任务中,日志为/home/attack.log
*/2 * * * * bash /var/log/count.sh>>/home/attack.log
# 每2分钟检查一次,ssh 登录失败大于3次,将该ip 加入黑名单
cd /var/log
last_hour=`date +'%b %_d %0k' --date='-1 hour'`
this_day=`date +'%b %_d'`
cat secure|egrep "$last_hour|$this_day"|egrep "Failed password|Did not receive identification"| grep -oP '([0-9]{1,3}\.){3}[0-9]{1,3}' > wrongIP.txt
cat wrongIP.txt | sort | uniq -c | sort -rn -k 1 > countWrongIP.txt
cat countWrongIP.txt | while read li
do
this_time=`echo $li | awk '{print $1}'`
if [[ $this_time -gt 3 ]];then
this_ip=`echo $li | awk '{print $2}'`
deny_ip="sshd:"$this_ip
this_result=`cat /etc/hosts.deny | grep "$this_ip"`
if [ -z "$this_result" ];then
echo "`date` 新增黑名单ip:"$this_ip
echo $deny_ip >> /etc/hosts.deny
sum_black=`cat /etc/hosts.deny | grep sshd: | grep -v etc | wc -l`
echo '当前黑名单数量:'$sum_black
echo '--------------------------------------------------------------------------------------------------------'
fi
else
break
fi
done
rm -f wrongIP.txt countWrongIP.txt
网友评论