设置header_Nginx的这些安全设置,你都知道吗?

ef70a7ccd7af3ea2789a1291753f7d0f.png

Nginx 是最流行的 Web 服务器,可以只占用 2.5 MB 的内存,却可以轻松处理 1w 的 http 请求。

做为网站的入口,Nginx 的安全设置重要性不言而喻。

下面带你一起去认识一下这些安全配置吧!

nginx.conf是 Nginx 最主要的配置文件,大部分的安全配置都在这个文件上进行。

禁用不需要的 Nginx 模块

自动安装的 Nginx 会内置很多模块,并不是所有的模块都需要,对于非必须的模块可以禁用,如 autoindex module ,下面展示如何禁用

# ./configure --without-http_autoindex_module# make# make install

不展示 server tokens

默认情况下,Nginx 的 server tokens 会在错误页面显示 Nginx 的版本号,这可能会导致信息泄露,未经授权的用户可能会了解你使用的nginx版本。 应该在 nginx.conf 通过设置 server_tokens off 来禁用

3f36b5490c50354f5fca1eede62a3ccb.png

控制资源和限制

为了防止对 Nginx 进行潜在的 DOS 攻击,可以为所有客户端设置缓冲区大小限制,配置如下:

  • client_body_buffer_size 指定客户端请求主体缓冲区的大小。默认值为8k或16k,但建议将此值设置为低至1k:client_body_buffer_size 1k
  • client_header_buffer_size 为客户端请求标头指定标头缓冲区大小。 设置为 1k 足以应付大多数请求。
  • client_max_body_size 为客户端请求指定可接受的最大正文大小。 设置为 1k 应该足够了,但是如果通过 POST方法接收文件上传,则需要增加它。
  • large_client_header_buffers 指定用于读取大型客户端请求标头的缓冲区的最大数量和大小。将最大缓冲区数设置为 2,每个缓冲区的最大大小为 1k。该指令将接受 2 kB 数据, large_client_header_buffers 2 1k

禁用所有不需要的 HTTP 方法

禁用所有不需要的 HTTP 方法,下面设置意思是只允许 GET、HEAD、POST 方法,过滤掉 DELETE 和 TRACE 等方法。

location / {limit_except GET HEAD POST { deny all; }}

另一种方法是在 server 块 设置,不过这样是全局设置的,要注意评估影响

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

监控访问日志和错误日志

持续监控和管理 Nginx 的错误日志,就能更好的了解对 web 服务器的请求,注意到任何遇到的错误,有助于发现任何攻击尝试,并确定您可以执行哪些操作来优化服务器性能。

可以使用日志管理工具(例如 logrotate )来旋转和压缩旧日志并释放磁盘空间。 同样,ngx_http_stub_status_module 模块提供对基本状态信息的访问。

d271915dc955edb6d870079a2de47b23.png

合理配置响应头

为了进一步加强 Nginx web 的性能,可以添加几个不同的响应头,推荐

X-Frame-Options

可以使用 X-Frame-Options HTTP 响应头指示是否应允许浏览器在 或

配置文件中添加:

add_header X-Frame-Options "SAMEORIGIN";

Strict-Transport-Security

HTTP Strict Transport Security,简称为 HSTS。它允许一个 HTTPS 网站,要求浏览器总是通过 HTTPS 来访问它,同时会拒绝来自 HTTP 的请求,操作如下:

add_header Strict-Transport-Security "max-age=31536000; includeSubdomains; preload";

CSP

Content Security Policy (CSP) 保护你的网站避免被使用如 XSS,SQL注入等手段进行攻击,操作如下:

add_header Content-Security-Policy "default-src 'self' http: https: data: blob: 'unsafe-inline'" always;

配置 SSL 和 cipher suites

Nginx 默认允许使用不安全的旧 SSL 协议,ssl_protocols TLSv1 TLSv1.1 TLSv1.2,建议做如下修改:

ssl_protocols TLSv1.2 TLSv1.3;

此外要指定 cipher suites ,可以确保在 TLSv1 握手时,使用服务端的配置项,以增强安全性。

ssl_prefer_server_ciphers on

定期更新服务器

旧版的 Nginx 总会存在各种各样的漏洞,所以最好更新到最新版。

漏洞可以去各大 CVE 网站去查询,Nginx 最新版则去官网查看。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/542003.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ISP运营商实验室测试机架拓扑搭建经验分享

大家好,有些日子没更新干货了,近期难得有假期进行修整,思前顾后还是坐下来聊聊自己长期负责维护和搭建的实验室环境。废话不多说,直接上图。因为图较大,分上下部分进行上传。网络主框架(上)服务…

关于二手交易用户指南怎么写_让用户拍案叫绝文案怎么写?试试这3个方法

“共鸣”到底是什么? 为什么有些文章会引起共鸣,而有些则没有。现在假设为产品家用手持式美容仪写一份副本。 由于主要重点是“家庭使用”,因此您立即想到了“家庭美容”的口号。 尽管这句话很简单易懂,但谈论起来总是很简单……似…

Centos7+Nginx+Keepalived实现Apache服务的高可用负载均衡

Centos7NginxKeepalived实现Apache服务的高可用&负载均衡今天是2017年的第一天,昨天也就是2016年的最后一天,我尝试部署了Centos7NginxKeepalived实现WEB服务的高可用负载均衡服务,终于在2017年的第一天前完成了,所以在此分享…

docker设置镜像加速器

设置镜像加速器 一般情况下,直接从官方仓库中直接拉取镜像会比较慢,可以设置镜像加速器,相当于一个反向代理。以阿里云为例 1 . 首先获取自己的加速器地址 www.aliyun.com 登陆自己的账号(可以是支付宝账号) 首页点…

keytool条目_java keytool 常用命令

最近在做ssl连接active directory, 遇到了不少的ssl的问题。连接ssl时会需要用将证书保存到keystore, 而这个步骤刚好就用到了keytool命令。直接敲keytool会有提示如何用这个命令, 但对于完全不懂的我,还是找了下基本命令&#xf…

搭建Harbor私有仓库

1 首先装好docker: 由于之前已安装过,所以直接开起就行 2 . 安装python2.7以上版本 之前编译安装过7.3的,直接用吧 3 . 安装docker-compose docker容器管理工具,是habor的依赖之一。 curl -L "https://github.com/docker…

查看 mysql 状态_查看mysql状态的常用命令

在mysql客户端输入"show status"之后将会看到如下输出:如果想要查看某个具体的值,可以使用如下命令:show status LIKE "%具体变量%";Aborted_clients 由于客户没有正确关闭连接已经死掉,已经放弃的连接数量.A…

常用数学符号的读法及其含义

2019独角兽企业重金招聘Python工程师标准>>> 常用数学符号的读法及其含义 近来发现很多学生对一些数学符号的读法及其含义不是很清楚。今天特把一些常用的列表如下。希望能够提供一些帮助! 大写 小写 英文注音 国际音标注音 中文注音 Α…

POJ 3422 费用流

思路&#xff1a; 把每个方块拆成两个点 1个入点 1个出点 当前格子的入->出连费用-w[i][j] 容量1的边 当前格子的入->出连费用0 容量k-1的边 此格子的出向右&下&#xff08;如果有的话&#xff09;的格子的入连费用0容量k的边 //By SiriusRen #include <queu…

static和extern对函数的作用

2019独角兽企业重金招聘Python工程师标准>>> 外部函数&#xff1a;定义的函数能被本文件和其他文件访问 默认情况下所有函数都是外部函数 不允许有同名的外部函数内部函数&#xff1a;定义的函数只能被本文件访问&#xff0c;其他文件不能访问 允许不同文件中有同名…

MySQL从服务器写入报错吗_MySQL主从复制读写分离及奇怪的问题

一直都没有写blog的习惯&#xff0c;以前总觉得自己的脑子就是最好的记忆容器&#xff0c;现在觉得我好像有个假脑子。当时是使用阿里云镜像&#xff0c;安装了两台ECS&#xff0c;结果配置MySQL的时候出现了UUID重复问题。先从配置主从开始吧&#xff0c;值得记录。文中很多部…

flask mysql 版本_flask 数据库字段类型

使用flask_sqlalchemy首先引用一下廖雪峰Python教程里关于sqlalchemy的话&#xff0c;这里我们要讲的是flask_sqlalchemy的用法。1. 安装用pip安装即可&#xff0c; 进入cmd控制台输入pip install Flask-SQLAlchemy2. 引用引用方法有2种&#xff0c;旧的和新的。from f...文章邻…

Kafka的配置文件详细描述

在kafka/config/目录下面有3个配置文件&#xff1a; producer.propertiesconsumer.propertiesserver.properties (1).producer.properties:生产端的配置文件 #指定kafka节点列表&#xff0c;用于获取metadata&#xff0c;不必全部指定 #需要kafka的服务器地址&#xff0c;来获取…

二维数组m的元素是4个字符组成的串_串、数组和广义表

1. 串1.1 串的定义ADT String{ 数据对象&#xff1a;D{ai|ai∈CharacterSet, i1, 2, …, n, n≧0} 数据关系&#xff1a;R1{|ai-1, ai∈D, i2, …, n} 基本操作&#xff1a; 生成一个值等于chars的串 复制一个串 判断串是否空串 比较串的大小 返回串元素的个数 将串清空 …

流媒体测试笔记记录之————阿里云监控、OBS、FFmpeg拉流和推流变化比较记录...

OBS设置视频&#xff08;512kbps&#xff09;和音频&#xff08;128kbps&#xff09;比特率 阿里云监控结果&#xff1a; 使用FFmpeg拉流到Nginx 服务器测试比特率 第二次测试&#xff0c;修改视频和音频比特率 OBS设置 阿里云监控 Nginx 比特率变化 FFMPEG 拉流截图

python方差分析模型的预测结果怎么看_statsmodels中方差分析表结果解析

引言通常我们在对多个变量进行统计分析的时候&#xff0c;结果的汇总和整理需要耗费大量的时间和精力&#xff0c;稍有不慎还有可能出现错误。因此在对多个变量统计分析的时候&#xff0c;使用自动化的脚本对结果进行整理和汇总就十分的方便了。这里笔者使用Python当中的statsm…

mysql 刷新二进制日志_使用binlog日志恢复MySQL数据库删除数据的方法

binlog日志简介:binlog 就是binarylog&#xff0c;二进制日志文件&#xff0c;这个文件记录了MySQL所有的DDL和DML(除了数据查询语句)语句&#xff0c;以事件形式记录&#xff0c;还包含语句所执行的消耗的时间。binlog日志包括两类文件&#xff1a;1)二进制日志索引文件(文件名…

执行git push出现Everything up-to-date

在github上git clone一个项目&#xff0c;在里面创建一个目录&#xff0c;然后git push的时候&#xff0c;出现报错"Everything up-to-date" 原因&#xff1a;1&#xff09;没有git add .2&#xff09;没有git commit -m "提交信息"如果上面两个步骤都成功…

Unity3D Adam Demo的学习与研究

1.简述 这篇文章是对Adam各种相关资料了解后进行一些精简的内容。如果你想仔细研究某个技术请跳转至unity相关页面。 Adam官方页面: https://unity3d.com/cn/pages/adam 搬运视频以及资源包网盘下载: http://pan.baidu.com/s/1jH6NF86 Adam这个demo由8个人的团队耗时6个月(part…

python安卓自动化实现方法_uiautomator +python 实现安卓UI自动化

简单实例注&#xff1a;安卓6.0以上的手机不会自动安装app-uiautomator.apk和app-uiautomator-test.apk&#xff0c;需要手动安装&#xff0c;否则报错ioerror RPC server not starteduiautomator pythonHTMLTestRunner 安卓UI自动化实现#coding:utf-8from uiautomator importD…