sshd被攻击的自动防御方法v3

安全 黑客攻防
本文为sshd被攻击的自动防御方法的第三版(改进版本),修改脚本,使之能通用,比如ftp的攻击防御。

 本文为sshd被攻击的自动防御方法的第三版(改进版本),修改脚本,使之能通用,比如ftp的攻击防御。

完整的配置如下:

1、配置文件.swatchrc

# cat /root/.swatchrc

#

# bad login attempts

watchfor /pam_unix\(sshd:auth\): authentication failure; .+ rhost=([0-9]+\.[0-9]+\.[0-9]+\.[0-9]+)/

#echo magenta

bell 0

exec "/root/swatch-new.sh $1 22"

watchfor /pam_unix\(vsftpd:auth\): authentication failure; .+ rhost=([0-9]+\.[0-9]+\.[0-9]+\.[0-9]+)/

bell 0

exec "/root/swatch-new.sh $1 21"

2、处理脚本swatch-new.sh

# cat /root/swatch-new.sh

#!/bin/sh

#攻击者ip

ip=$1

#攻击端口

port=$2

#echo $ip >> /root/sshd_blocked_ip_list

sql="/usr/bin/sqlite3 /root/sshd_blocked_ip.db "

blockcmd="/sbin/iptables -I INPUT -s $ip -p tcp --dport $port -j DROP"

unblockcmd=${blockcmd/-I/-D}

blocktime=$($sql "select blocktime from ip where ip='$ip'")

: ${blocktime:=0}

$blockcmd || exit 1

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

3、启动命令

# /usr/bin/swatch -t /var/log/secure --daemon

Note:

至此就完毕了。各个服务共用一个数据库,如果还有其他服务需要做防御,可以再添加相关watchfor配置,但是验证失败的日志需要出现在/var/log/secure中。这是共用一个日志文件的情况,当然了,还可以再启动一个swatch进程。其他用途自己扩展。

责任编辑:蓝雨泪 来源: 红黑联盟
相关推荐

2012-11-02 15:02:32

2018-08-22 09:15:31

2011-05-20 07:52:54

RADVISIONSCOPIA Mobi

2018-11-27 09:28:41

API攻击恶意

2010-07-30 13:17:33

NFS V3

2015-03-27 09:50:37

2023-12-25 09:41:37

点云训练

2012-11-30 14:54:48

2009-06-10 16:56:12

可扩展GlassFisJavaEE6

2011-03-28 12:17:03

ibmdwRational

2012-11-13 17:05:50

2009-01-16 10:40:50

2012-05-14 11:20:13

Hyper-VPowerShell

2013-06-03 10:24:49

E3-1230 v3英特尔至强

2015-11-09 15:58:03

2010-09-08 12:35:51

2012-02-14 09:43:08

2017-05-08 14:33:51

2010-10-08 10:03:16

2011-03-01 10:52:15

点赞
收藏

51CTO技术栈公众号