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"
  • 相关阅读:
    Unity资源打包之Assetbundle
    集社交与金融为一体,平安天下通怎样推动互联网金融创新?
    json和pickle模块
    sys模块
    os模块
    random模块
    datetime模块
    time模块
    logging模块

  • 原文地址:https://www.cnblogs.com/lcword/p/5917384.html
Copyright © 2011-2022 走看看