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"
  • 相关阅读:
    jQuery仿yahoo首页弹出层效果
    显示中文的星期几
    Oracle 會話級Session誤解
    异常处理點滴
    DataGrid 呈現數據——綁定與編程混合
    document.body.scrollTop 值总为0的解决方法(转载)
    DataGridView 一些設置
    事務回滾之實例
    数据库表设计下手
    WebApp匯入CSV資料
  • 原文地址:https://www.cnblogs.com/lcword/p/5917384.html
Copyright © 2011-2022 走看看