nginx防攻击的简单配置

Posted franjia

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了nginx防攻击的简单配置相关的知识,希望对你有一定的参考价值。

主要通过两方案来做防护,一是nginx自带模块限制请求连接数和并发数;二是筛选IP加入黑名单;

1、并发数和连接数控制的配置
    nginx http配置:
    #请求数量控制,每秒20个
    limit_req_zone $binary_remote_addr zone=one:10m rate=20r/s;
    #并发限制30个
    limit_conn_zone $binary_remote_addr zone=addr:10m;
    
    server块配置
    limit_req zone=one burst=5;
    limit_conn addr 30;


2、根据nginx 访问日志记录发现可疑的或者不正常的访问记录记录然后自动添加到nginx的黑名单
起到阻止的作用  可以作为防范少量的ddos攻击

策略:根据nginx日志,最近5W条同一IP访问记录超过5000的加入黑名单禁止访问,每两小时执行一次

示例脚本:
#!/bin/bash
acc_log=/usr/local/nginx/logs/uatpc.access.log
blockip=/usr/local/nginx/conf/vhost/blockip.conf
#最近50000条日志,同一IP超过5000的加入黑名单
tail -n50000 ${acc_log} | awk ‘{print $1,$7,$9}‘|grep -i -v -E "google|yahoo|baidu|msnbot|FeedSky|sogou|360|bing|soso|403|api"|awk ‘{print $1}‘|sort|uniq -c|sort -rn | awk ‘{if($1>5000)print "deny "$2";"}‘ >> ${blockip}

#排除公司IP
sed -i ‘/116.228.62.38/d‘ ${blockip}
/usr/local/nginx/sbin/nginx -s reload



























以上是关于nginx防攻击的简单配置的主要内容,如果未能解决你的问题,请参考以下文章

Nginx配置抵御DDOS或CC攻击

用nginx实现分布式限流(防DDOS攻击)

nginx怎么预防脚本攻击

springmvc配置防xss攻击过滤器

springmvc配置防xss攻击过滤器

iptables防DDOS攻击和CC攻击配置