根据nginx日志防攻击

post by rocdk890 / 2013-8-5 17:51 Monday linux技术
  最近一个项目nginx+keepalived做的负载均衡,nginx+php-fpm后端,单独的mysql服务器,运行了几个月还算稳定吧,就是老有人攻击,这也是国人做外贸的悲哀,不说其他的,因为后端可以读取到客户真实ip,但前端没有开访问日志,只保留了错误日志,前端开了iptables可以防攻击,所以从后端读取日志,把要防的ip发给前端,让前端的去防.
  系统:centos 5.9
  前端ip:192.168.10.5
  后端ip:192.168.10.153
1.准备
如果要后端对前端执行命令的话,就要保证ssh可以使用key访问,大家去可以看下这篇文章多台linux服务器ssh相互无密码访问.

2.操作
脚本内容:
#!/bin/bash
num=1200
for i in `tail -n 4000 /var/log/nginx/access.log|awk '{print $1}'|sort|uniq -c|sort -rn|awk '{if ($1>$num){print $2}}'`
do
ssh root@192.168.10.5 "iptables -I INPUT -s $i -j DROP"
done


上面是个简单的防攻击脚本,当然你们还可以修改成多少时间解禁被封的ip.
再说脚本吧,当日志里超过1200次记录,就可以封掉,因为服务器平时的日志记录每个ip次数是几百,上千的一般都是有问题的,这个可以根据你们自己的情况来修改.
夜空- 本站版权
1、本站所有主题由该文章作者发表,该文章作者与夜空享有文章相关版权
2、其他单位或个人使用、转载或引用本文时必须同时征得该文章作者和夜空的同意
3、本帖部分内容转载自其它媒体,但并不代表本站赞同其观点和对其真实性负责
4、如本帖侵犯到任何版权问题,请立即告知本站,本站将及时予与删除并致以最深的歉意
5、原文链接:blog.slogra.com/post-416.html

标签: nginx centos iptables linux 日志 访问 log 记录 攻击 cc

评论: