zoukankan      html  css  js  c++  java
  • sshd被攻击的自动防御方法v2

     
    1、增加了“频繁攻击的封锁时间”,即设置为上次攻击时间的2倍
    2、加入了数据库支持,将攻击者相关信息记录入库,如攻击者ip、攻击次数、封锁时间
    3、简化了代码
     
    具体实现步骤如下:
     
    1、创建用于记录攻击者信息的数据库及表
    # sqlite3 /root/sshd_blocked_ip.db "create table ip(ip,count,blocktime)"
     
    2、将v1版的第二步中的攻击处理脚本修改为
    exec "/root/swatch-new.sh $1"
     
    3、创建攻击检测到后的处理脚本/root/swatch-new.sh,需要执行权限哦
    #!/bin/sh
    ip=$1
     
    sql="/usr/bin/sqlite3 /root/sshd_blocked_ip.db "
    blockcmd="/sbin/iptables -I INPUT -s $ip -p tcp --dport 22 -j DROP"
    unblockcmd=${blockcmd/-I/-D}
    blocktime=$($sql "select blocktime from ip where ip='$ip'")
    : ${blocktime:=0}
    $blockcmd
    if [ $blocktime -eq 0 ];then
            /usr/bin/at "now + 1 hours" <<< "$unblockcmd" 2>> /root/at_result.log
            $sql "insert into ip values('$ip',1,1)"
    else
            ((blocktime*=2))
            /usr/bin/at "now + $blocktime hours" <<< "$unblockcmd" 2>> /root/at_result.log
            $sql "update ip set blocktime=$blocktime,count=count+1 where ip='$ip'"
    fi
     
    其他步骤和v1版相似,自己琢磨吧,结束
     
    另附查看攻击者信息的方法:
    sqlite3 /root/sshd_blocked_ip.db "select * from ip"
  • 相关阅读:
    NACBD
    周总结7
    周总结6
    团队题目——TD课程通
    移动端疫情展示
    周总结5
    每周总结4
    每周总结3
    每周总结2
    求最大子数组
  • 原文地址:https://www.cnblogs.com/lcword/p/5917384.html
Copyright © 2011-2022 走看看