Linux 拨号vps windows公众号手机端

nginx防攻击配置,nginx防xss攻击

lewis 5年前 (2021-01-10) 阅读数 9 #VPS/云服务器
文章标签 nginx防攻击配置

本文目录:

  • 1、<"http://#nginx%20%E9%98%B2%E7%9B%97%E9%93%BE%E7%AE%80%E5%8D%95%E9%85%8D%E7%BD%AE" title="nginx 防盗链简单配置" "">nginx 防盗链简单配置
  • 2、<"http://#%E7%BD%91%E7%AB%99nginx%E9%85%8D%E7%BD%AE%E9%99%90%E5%88%B6%E5%8D%95%E4%B8%AAIP%E8%AE%BF%E9%97%AE%E9%A2%91%E7%8E%87%EF%BC%8C%E9%A2%84%E9%98%B2DDOS%E6%81%B6%E6%84%8F%E6%94%BB%E5%87%BB" title="网站nginx配置限制单个IP访问频率,预防DDOS恶意攻击" "">网站nginx配置限制单个IP访问频率,预防DDOS恶意攻击
  • 3、<"http://#Nginx%E5%AE%89%E5%85%A8%E9%98%B2%E6%8A%A4" title="Nginx安全防护" "">Nginx安全防护

nginx 防盗链简单配置

通常我们不希望自己网站的图片、文件等被一些未经允许的网站应用,那么我们可以在nginx里做一些配置来阻止这些网站的访问。

我们将使用nginx的valid_referers 指令来做防盗链,下面来简单介绍下valid_referers指令。

语法:

valid_referers [none|blocked|server_names] ...

默认值:none

使用环境:server,location

该指令会根据Referer Header头的内容分配一个值为0或1给变量 $invalid_referer 。如果Referer Header头不符合valid_referers指令设置的有效Referer,变量$invalid_referer将被设置为1.

该指令的参数可以为下面的内容:

none:表示无Referer值的情况。

blocked:表示Referer值被防火墙进行伪装。

server_names:表示一个或多个主机名称。从Nginx 0.5.33版本开始,server_names中可以使用通配符"*"号。

简单介绍完后小伙伴们可能会想为啥要用这个参数做防盗链呢?

我们知道HTTP Referer是Header的一部分,当浏览器向Web服务器发送请求的时候,一般会带上Referer,告诉服务器我是从哪个页面链接过来的,服务器借此可以获得一些信息用于处理。下面我们在浏览器里面打开几个页面来体验下这个参数

下面我们准备一张图片test.jpg,和两台服务器,注意笔者的nginx版本是1.17的,不同的版本可能配置稍微有点不同。

服务器A:47.93.121.3

服务器B:175.24.110.203

笔者将图片test.php 放到服务器A上,并能够正常访问

接着我们在服务器B上写一个test.htm来引用这张图片:

访问看下:

能够正常访问。

但是我们希望服务器B在没有经过允许的情况下不能访问这张图片,那我们就需要配置下服务器A的nginx

那我们再在服务器B上看还能不能访问到这张图片:

发现已经不能访问这张图片,那我们再看看服务器A能不能访问:

网站nginx配置限制单个IP访问频率,预防DDOS恶意攻击

对于网站来说,尤其是流量较大出名的网站,经常遇到攻击,如DDOS攻击等,虽然有些第三方,如Cloudflare可以挡,但对于动态网站PHP来说,只能挡一部分。这时候需要对于单个IP恶意攻击做出限流。nginx的两个模块可以限流。

nginx两个限流模块:

连接频率限制,ngx_http_limit_conn_module:官方文档:

请求频率限制,ngx_http_limit_req_module:官方文档:

网上理论很多,根据名字可知:

当然还是看不懂的话,通俗点讲(相对于时间比较):

比如秒杀,抢购,连接频率限制和请求频率限制应该配合使用 , 使用连接频率限制同一IP同时只能有3个连接, 再使用请求频率限制对于同一ip的请求,限制平均速率为5个请求/秒 , 这样比单独只使用一种限制要好很多。

比如只使用请求频率限制 , 可以精确地限制同一ip1秒只能发起5次的http请求 , 假如同一ip1秒内发起了100000次请求 , 虽然限制了只有5次成功响应 , 但是其他的99995次的请求TCP握手建立http连接是不是会消耗服务器资源? 所以还需要配合使用。

1、limit_req_zone,示例:

2、limit_conn_zone,示例:

3、搭配一起使用

1、ab命令

ab是apache自带的压力测试工具。一般不用额外安装,ab非常实用,它不仅可以对apache服务器进行网站访问压力测试,也可以对或其它类型的服务器进行压力测试。比如nginx、tomcat、IIS等。

测试命令

2、wrk命令

需自己安装,地址:

安装

测试命令:

还有其他压测工具,自行研究

Nginx安全防护

隐藏Nginx后端服务X-Powered-By头

Nginx SSL协议的加密策略进行加固

1.执行系统命令passwd -S nginx来查看锁定状态

出现Password locked证明锁定成功

如:nginx LK ..... (Password locked.)或nginx L ....

2.默认符合,修改后才有(默认已符合)

3.执行系统命令passwd -l nginx进行锁定

Nginx进程启动账号状态,降低被攻击概率

Nginx后端服务指定的Header隐藏状态

Nginx服务的Banner隐藏状态

把控配置文件权限以抵御外来攻击

【nginx防攻击配置】内容来源于网络,若引用不当、侵权,请联系我们修正或者删除!

版权声明

本文仅代表作者观点,不代表米安网络立场。

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

热门