#/bin/bash
封攻击asterisk注册的脚本
原创
©著作权归作者所有:来自51CTO博客作者lrm929的原创作品,请联系作者获取转载授权,否则将追究法律责任
number="10" #定义注册最大次数
cat /var/log/asterisk/messages | grep -o -E "failed for.*" | grep -o -E "[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}" > $$.cat ###取注册攻击IP存到$$.cat文件
awk '{++ip[$(NF)]} END {for (i in ip) print i"="ip[i]}' $$.cat > $$ #统计每个攻击ip的次数存到$$文件
for i in `cat $$`
do
IP=`echo $i | awk -F"=" '{print $1}'` ##取IP
NU=`echo $i | awk -F"=" '{print $2}'` ##取次数
if [ $NU -gt $number ] ##次数跟10比大小
then
grep $IP /etc/sysconfig/iptables > /dev/null #判断IP是否在防火墙里面
if [ $? -gt 0 ] #判断值是否为假
then
iptables -I INPUT -s $IP -j DROP #封IP
#echo $IP
fi
fi
done
rm -f $$.cat #删除临时文件
rm -f $$ #删除临时文件
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章