根据nginx日志防攻击
最近一个项目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.操作
脚本内容:
上面是个简单的防攻击脚本,当然你们还可以修改成多少时间解禁被封的ip.
再说脚本吧,当日志里超过1200次记录,就可以封掉,因为服务器平时的日志记录每个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次数是几百,上千的一般都是有问题的,这个可以根据你们自己的情况来修改.
评论: