使用shell防ZmEu

post by rocdk890 / 2013-7-23 9:04 Tuesday linux技术
  在上一篇apache屏蔽恶意User-Agent中,我们使用apache自带的模块来屏蔽了ZmEu这样的User-Agent恶意头访问,当我环境是lnmp的时候,使用nginx来屏蔽ZmEu恶意头居然无法屏蔽了,如下图
点击查看原图
看来过了一年多,ZmEu这样的恶意访问也有所升级,不再是404的错误了,而是301的跳转了,难怪我屏蔽不了,没办法只能使用最后的大招shell来搞定ZmEu的访问了.

脚本内容:
vi deny_ZmEu.sh
#!/bin/bash
awk -F"-" '/ZmEu/ {print $1}' /var/log/nginx/access.log |sort -nr|uniq -c |sort -n|awk '{print $1"="$2}'>/root/bad_ip_tmp.txt
sort /root/bad_ip_tmp.txt|uniq >/root/bad_ip.txt
DEFINE="2"
for i in $(cat /root/bad_ip.txt)
do
NUM=`echo $i |awk -F"=" '{print $1}'`
IP=`echo $i|awk  -F"=" '{print $2}'`
if [ $NUM -ge $DEFINE ];
then
iptables -L -n|grep $IP > /dev/null
if [ $? -gt 0 ];
then
iptables -I INPUT -s $IP -j DROP
fi
fi
done

使用方法:
chmd +x deny_ZmEu.sh

vi /etc/crontab
*/5 * * * * root /root/webbak/deny_ZmEu.sh
保存后,重启crond.
service crond restart

查看iptables是否有封到ip
iptables -nL
点击查看原图
可以看到iptables已经把那3个带ZmEu的user-agent头的ip封了.
夜空- 本站版权
1、本站所有主题由该文章作者发表,该文章作者与夜空享有文章相关版权
2、其他单位或个人使用、转载或引用本文时必须同时征得该文章作者和夜空的同意
3、本帖部分内容转载自其它媒体,但并不代表本站赞同其观点和对其真实性负责
4、如本帖侵犯到任何版权问题,请立即告知本站,本站将及时予与删除并致以最深的歉意
5、原文链接:blog.slogra.com/post-408.html

附件下载:
deny_ZmEu.rar 379字节

标签: iptables linux shell 阻止 user-agent ZmEu

评论: