攻防策略
如果有人真D你的站点,你还真没有办法,当然我所说的群体是针对中小站长而言,你连DDOS基础防护的清洗阈值都达不到。
如果你只是一个默默无闻的小站,根本不需要想那么多。尽管现在DDOS成本很低,但谁不是无利不起早,除非你得罪了什么人。
当然对于一般的攻击我们也不能坐以待毙,这里总结了几个小技巧,分享给大家,反向代理使用的是openresty。
Nginx优化
Nginx号称最大并发5W,实际上对于中小站点来说几十或者上百个并发就不错了,最基本的参数就可以满足需求。但是为了安全期间,我们最好隐藏其版本号。
# 隐藏版本,防止已知漏洞被利用
server_tokens off; #在http 模块当中配置
PHP优化
在php渲染的网页header信息中,会包含php的版本号信息,比如: X-Powered-by: php/5.6.30,这有些不安全,有些黑客可能采用扫描的方式,批量寻找低版本的php服务器,利用php漏洞(比如hash冲突)来攻击服务器。
# 隐藏版本,防止已知漏洞被利用
php_admin_flag[expose_php] = off
IP黑名单
对付那种最low的攻击,加入黑名单的确是一个不错的选择,不然别人AB就能把你压死:
# 在Nginx的http模块添加以下配置即可
deny 61.136.197.xxx;
# 禁封IP段
deny 61.136.197.0/24;
IP日访问次数
限制单个IP的日访问次数,正常来说一个用户的访问深度很少超过10个,跳出率一般在50%-70%之间。其实我们要做的把单个IP的日访问量控制在100甚至50以内即可。
限制并发数
光限制访问次数还是不够的,攻击者可能瞬间涌入成百上千的请求,如果这些请求到后端服务,会打垮数据库服务的,所以我们还要基于我们自身网站访问情况设置并发数。
- 限制单个IP的并发数
- 限制总并发数
这里建议大家使用漏桶算法限流,来整形流量请求。
https://www.cnblogs.com/smallSevens/p/9221002.html