Chinaunix首页 | 论坛 | 博客
  • 博客访问: 650163
  • 博文数量: 137
  • 博客积分: 6189
  • 博客等级: 准将
  • 技术积分: 1559
  • 用 户 组: 普通用户
  • 注册时间: 2010-03-15 16:39
文章分类

全部博文(137)

文章存档

2010年(3)

2009年(1)

2008年(49)

2007年(56)

2006年(28)

分类: LINUX

2007-04-16 20:51:08

 

#! /bin/bash
# 获取前 1 分钟内的 secure 记录,统计 ssh 认证失败的 IP 和其 失败次数
SCANNER=`awk '/Failed/ {print $(NF-3)}' /var/log/secure |awk -F: '{print $NF}' |sort|uniq -c |awk '{print $1"="$2;}'`

for i in $SCANNER
do
       # 取认证失败次数
       NUM=`echo $i|awk -F= '{print $1}'`

       # 取其 IP 地址
       IP=`echo $i|awk -F= '{print $2}'`

       # 若其在失败次数超过 5 次且之前没有被阻断过,那么添加一条策略将其阻断,并记录日志
       if [ $NUM -gt 5 ] && [ -z "`/sbin/iptables -vnL INPUT|grep $IP`" ]
       then
               /sbin/iptables -I INPUT -s $IP -j DROP
               echo "`date` $IP($NUM)" >> /var/log/scanner.log
       fi
done

阅读(535) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~