美文网首页
shell -- 分析 /var/log/secure 添加黑名

shell -- 分析 /var/log/secure 添加黑名

作者: w_dll | 来源:发表于2020-03-31 15:47 被阅读0次

    服务器这几天应该是被攻击了
    莫名的出现了一个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 
    

    相关文章

      网友评论

          本文标题:shell -- 分析 /var/log/secure 添加黑名

          本文链接:https://www.haomeiwen.com/subject/yugwuhtx.html