nginx通过配置文件来进行的安全方面优化

news/2025/3/14 18:24:07/

目录

1、隐藏版本号

2、配置错误页面重定向

3、添加header防止XSS攻击

4、利用referer图片防盗链

5、拒绝某些user-agent

6、限制HTTP请求方法

7、nginx开启https

8、控制迸发连接数


1、隐藏版本号

说明: 由于某些 Nginx 漏洞只存在于特定的版本,隐藏版本号可以提高安全性。

Nginx隐藏版本信息配置示例:

[root@localhost ~]# curl -I 192.168.6.116
HTTP/1.1 200 OK
Server: nginx/1.20.1[root@localhost ~]# vim /etc/nginx/nginx.conf
http {server_tokens off;
[root@localhost ~]# systemctl restart nginx.service 
[root@localhost ~]# curl -I 192.168.6.116
HTTP/1.1 200 OK
Server: nginx

2、配置错误页面重定向

http {
...
error_page 401 /401.html;
error_page 402 /402.html;
error_page 403 /403.html;
error_page 404 /404.html;
error_page 405 /405.html;
error_page 500 /500.html;
...
}

3、添加header防止XSS攻击

说明:

  1. X-Frame-Options:标识是否允许浏览器加载frame等属性。
  • DENY:禁止任何网页被嵌入
  • SAMEORIGIN:只允许本网站的嵌套
  • ALLOW-FROM:允许指定地址的嵌套
  1. X-XSS-Protection:启用XSS过滤。mode=block标识若检查到XSS攻击则停止渲染页面
  2. X-Content-Type-Options:用来指定浏览器对未指定或错误指定Content-Type资源真正类型的猜测行为
  • nosniff:标识不允许任何猜测
  • 在通常的请求相应中,浏览器会根据Content-Type来分辨响应的类型,如果响应类型未指定或错误指定时,浏览器会启用MIME-sniffing来猜测资源的响应类型

Nginx添加Header示例:

location / {add_header X-Frame-Options "SAMEORIGIN";add_header X-XSS-Protection "1; mode=block";add_header X-Content-Type-Options "nosniff";
}

4、利用referer图片防盗链

说明:

  1. valid_referers:验证referer
  • none:允许referer为空
  • blocked:允许不带协议的请求

Nginx校验referer配置示例:

location /images/ {valid_referers none blocked <domain_name> <domain_name>;if ($invalid_referer) {return 403;}
}

5、拒绝某些user-agent

说明:禁止一些爬虫的扫描

Nginx拒绝User-Agent配置示例:

if ($http_user_agent ~* LWP::Simple|BBBike|wget|curl){return 444;
}

6、限制HTTP请求方法

说明:$request_method能获取到请求时所使用的method,应该配置只使用GET/POST方法访问,其他的method返回405

Nginx限制HTTP请求方式示例:

if ($request_method !~ ^(GET|POST)$ ){return 405;
}

7、nginx开启https

server {listen 443;server_name <xxx>;# 开启httpsssl on;# 配置nginx ssl证书的路径ssl_certificate <pem路径>;# 配置nginx ssl证书key的路径ssl_certificate_key <key路径>;# 指定客户端建立连接时使用的ssl协议版本ssl_protocols TLSv1.2;# 指定客户端连接时所使用的加密算法ssl_ciphers HIGH:!aNULL:!MD%
}

8、控制迸发连接数

说明:

  1. limit_conn_zone:设定保存各个属性状态的共享内存空间的参数
  • limit_conn_zone <属性> zone=<空间名称>:<大小>
  1. limit_conn:为已经设定zone的属性设置最大连接数
  2. limit_rate:限制单个连接使用的带宽

Nginx限制并发数配置示例:

http {limit_conn_zone $binary_remote_addr zone=ops:10m;limit_conn_zone $server_name zone=coffee:10m;server {listen 80server_name <server_name>;...location / {limit_conn opos 10; # 限制单一IP来源的连接数为10limit_conn coffee 2000; # 限制单一虚拟服务器的总连接数为2000 limit_rate 500k; # 限制单个连接使用的带宽}}
}


http://www.ppmy.cn/news/1182167.html

相关文章

图文并茂的帮助文档你值得拥有

概述 工作中除了写代码开发需求&#xff0c;也需要写文档&#xff0c;怎么写好一个文档能够让读者既能看懂API&#xff0c;又能快速上述操作&#xff0c;所见即所得。本文基于vitepress、ace-builds带大家实现一个这样好用的帮助文档。 实现效果 在线预览地址&#xff1a;ht…

当线性规划与算法相遇:揭秘单纯形法(Simplex)的独特魅力

传统的解决线性规划问题的方法是图形法、代数法求解&#xff0c;但是图形法解题有极大的局限性&#xff0c;因为一旦变量超过3个&#xff0c;基本上就无法通过图形解决&#xff0c;而代数法虽然可以解题&#xff0c;但对于复杂的问题可能效果较差甚至无法求解&#xff01; 相比…

6、PostgreSQL 数据类型之一:数字类型和货币类型

PostgreSQL 作为一个强大的开源关系型数据库管理系统&#xff0c;本身支持多种数据类型&#xff0c;包括标准 SQL 数据类型以及一些扩展数据类型。 PostgreSQL 支持多种数据类型的设计理念是为了满足不同应用场景的需求&#xff0c;提供更大的灵活性和数据处理能力。原因如下&…

Linux系统编程_网络编程:字节序、socket、serverclient、ftp 云盘

1. 网络编程概述&#xff08;444.1&#xff09; TCP/UDP对比 TCP 面向连接&#xff08;如打电话要先拨号建立连接&#xff09;&#xff1b;UDP 是无连接的&#xff0c;即发送数据之前不需要建立连接TCP 提供可靠的服务。也就是说&#xff0c;通过 TCP 连接传送的数据&#xf…

吉利笔试——编程代码题

Q1: 假设有一个n 行m 列的表格&#xff0c;可以分成n✖️m 个块。 有一根从左上角到右下角的对角线连接&#xff0c;所有接触对角线的表格中的块为白色&#xff0c;也就是对角线会从该表格中的 小块中经过。输入 表格的大小&#xff0c;输出白色块的数量。 一个矩形n行m列&a…

基于鸡群算法的无人机航迹规划-附代码

基于鸡群算法的无人机航迹规划 文章目录 基于鸡群算法的无人机航迹规划1.鸡群搜索算法2.无人机飞行环境建模3.无人机航迹规划建模4.实验结果4.1地图创建4.2 航迹规划 5.参考文献6.Matlab代码 摘要&#xff1a;本文主要介绍利用鸡群算法来优化无人机航迹规划。 1.鸡群搜索算法 …

2分钟快速批量部署node_exporter

用root用户登录&#xff0c;进入/root目录 创建一个用于安装和启动 node_exporter 的脚本。 vi install_node_exporter.sh 填写以下内容并保存 #!/bin/bash# 下载 node_exporter 包 wget https://github.com/prometheus/node_exporter/releases/download/v1.6.1/node_exporte…

云计算与ai人工智能对高防cdn的发展

高防CDN&#xff08;Content Delivery Network&#xff09;作为网络安全领域的一项关键技术&#xff0c;致力于保护在线内容免受各种网络攻击&#xff0c;包括分布式拒绝服务攻击&#xff08;DDoS&#xff09;等。然而&#xff0c;随着人工智能&#xff08;AI&#xff09;和大数…