当前,nginx是最流行的 Web服务器,最近击败了Apache。它轻量级,快速,强大,并支持所有主要操作系统。它是Netflix,WordPress.com和其他高流量站点的首选Web服务器。Nginx服务器可以轻松地处理10,000个不活动的HTTP连接,而其内存只有2.5 MB。我们将提供关于nginx服务器安全的技巧,向你展示如何保护你的ngin

为此,请在安装过程中使用configure选项。在下面的示例中,我们禁用了自动索引模块,该模块会生成自动目录列表,然后重新编译nginx。

# ./configure --without-http_autoindex_module

# make

# make install

步骤2.禁用nginx server_tokens

默认情况下,nginx中的server_tokens指令显示nginx版本号。它在所有自动生成的错误页面中直接可见,但也出现在Server标头中的所有HTTP响应中。

这可能会导致信息泄露–未经授权的用户可能会了解您使用的nginx版本。您应该通过设置禁用Nginx配置文件中的server_tokens指令server_tokens off。

步骤3.控制资源和限制

为了防止对nginx进行潜在的DoS攻击,您可以为所有客户端设置缓冲区大小限制。您可以使用以下指令在nginx配置文件中执行此操作:

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 –使用此伪指令指定用于读取大型客户端请求标头的缓冲区的最大数量和大小。甲large_client_header_buffers 2 1k指令集缓冲器的2的最大数目,每个具有1K的最大尺寸。该指令将接受2 kB数据URI。

注意:一些消息来源建议,如果在nginx中发现了此类漏洞,则设置此类限制可能会防止潜在的缓冲区溢出攻击。

步骤4.禁用所有不需要的HTTP方法

我们建议您禁用将不被使用并且不需要在Web服务器上实现的任何HTTP方法。如果在nginx虚拟主机配置文件的位置块中添加以下条件,则服务器将仅允许GET,HEAD和POST方法,并将过滤掉DELETE和TRACE等方法。

location / {

limit_except GET HEAD POST { deny all; }

}

另一种方法是在服务器部分(或服务器块)中添加以下条件。它可以被认为是更通用的,但是您应该小心if位置上下文中的语句。

if ($request_method !~ ^(GET|HEAD|POST)$ ) {

return 444; }

步骤5.为您的Nginx Web服务器安装ModSecurity

ModSecurity是充当Web应用程序防火墙的开源模块。它的功能包括过滤,服务器身份屏蔽和空字节攻击防护。该模块还允许您执行实时流量监控。我们建议您遵循ModSecurity手册来安装mod_security模块,以增强安全性选项。

请注意,如果ModSecurity无法满足您的需求,您还可以使用其他免费的WAF解决方案s)。

步骤6.设置和配置nginx访问和错误日志

Nginx访问和错误日志默认情况下处于启用状态,分别位于logs / error.log和logs / access.log中。如果要更改位置,可以在nginx配置文件中使用error_log指令。您还可以使用此伪指令来指定将根据其严重性级别记录的日志。例如,一个暴击的严重性级别会导致nginx的登录关键问题和具有比更高的严重性级别的所有问题的暴击。要将严重级别设置为crit,请如下设置error_log指令:

error_log logs/error.log crit;

您可以在Nginx *官方文档中找到error_log*严重性级别的完整列表。

您还可以修改nginx配置文件中的access_log指令,以为访问日志指定非默认位置。最后,您可以使用log_format指令来配置已记录消息的格式。

步骤7.监视nginx访问和错误日志

如果您持续监视和管理Nginx日志文件,则可以更好地了解对Web服务器的请求,并注意到任何遇到的错误。这将帮助您发现任何攻击尝试,并确定可以采取哪些措施来优化服务器性能。

您可以使用日志管理工具(例如logrotate)来旋转和压缩旧日志并释放磁盘空间。同样,ngx_http_stub_status_module模块提供对基本状态信息的访问。您还可以投资Nginx的商业版本nginx Plus,它提供对流量,负载和其他性能指标的实时活动监视。

步骤8.将Nginx配置为包括安全标题

为了进一步加强Nginx Web服务器的性能,您可以添加几个不同的HTTP标头。这是我们推荐的一些选项。

X框架选项

您可以使用X-Frame-Options HTTP响应标头指示是否应允许浏览器在*或中*呈现页面。这可以防止点击劫持攻击。因此,我们建议您为Nginx服务器启用此选项。

为此,请将以下参数添加到服务器部分的nginx配置文件中:

add_header X-Frame-Options "SAMEORIGIN";

严格的运输安全

HTTP严格传输安全性(HSTS)是网站用来声明仅应使用安全连接(HTTPS)访问它们的一种方法。如果网站声明了HSTS策略,则浏览器必须拒绝所有HTTP连接并阻止用户接受不安全的SSL证书。要将HSTS标头添加到您的nginx服务器,可以在服务器部分添加以下指令:

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

CSP和X-XSS保护

内容安全策略(CSP)保护您的Web服务器免受某些类型的攻击,包括跨站点脚本攻击(XSS)和数据注入攻击。您可以通过添加以下示例Content-Security-Policy标头来实现CSP (请注意,实际标头应配置为符合您的独特要求):

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

IE和Safari支持HTTP X-XSS-Protection标头,如果您具有强大的内容安全策略,则对于现代浏览器而言则不是必需的。但是,为防止在较旧的浏览器(尚不支持CSP)中使用XSS,可以将X-XSS Protection标头添加到服务器部分:

add_header X-XSS-Protection "1; mode=block";

步骤9.配置SSL和密码套件

Nginx 的默认配置允许您使用不安全的旧版TLS协议(根据官方文档:ssl_protocols TLSv1 TLSv1.1 TLSv1.2)。这可能导致诸如BEAST攻击之类的攻击。因此,我们建议您不要使用旧的TLS协议,并更改配置以仅支持更新的安全TLS版本。

为此,请在nginx配置文件的server部分中添加以下指令:

ssl_protocols TLSv1.2 TLSv1.3;

此外,您应指定密码套件,以确保不支持任何易受攻击的套件。要选择最佳的密码套件,请阅读有关TLS密码强化的文章,并在服务器部分添加ssl_ciphers指令以选择密码(如关于密码强化的文章中所建议)。我们还建议您将以下指令添加到服务器部分:

该指令将使使用哪种密码的决定在服务器端而不是客户端。

## 步骤10.定期更新服务器

与任何其他软件一样,我们建议您始终将nginx服务器更新为最新的稳定版本。新更新通常包含对先前版本中标识的漏洞的修复,例如在0.7.63之前的nginx版本和在0.8.17之前的0.8.x中存在的目录遍历漏洞(CVE-2009-3898)。更新还经常包括新的安全功能和改进。在nginx.org网站上,您可以[在专门的部分中找到安全公告,并在主页上找到有关最新更新的新闻。

## 步骤11.使用Gixy检查您的配置

Gixy是一个开源工具,可让您检查nginx Web服务器中是否存在典型的错误配置。准备好nginx配置后,最好使用Gixy对其进行检查。

## 步骤12。您不必手动进行

如果您不想手动配置nginx,则可以使用DigitalOcean提供的免费在线视觉配置工具。

本作品采用《CC 协议》,转载必须注明作者和本文链接

nginx服务器配置安全维护,nginx 安全:如何强化服务器配置相关推荐

  1. nginx服务器配置安全维护,Nginx服务器相关的一些安全配置建议

    这篇文章主要介绍了Nginx服务器相关的一些安全配置建议,共计总结了十个小点,需要的朋友可以参考下 Nginx是当今最流行的Web服务器之一.它为世界上7%的web流量提供服务而且正在以惊人的速度增长 ...

  2. 阿里云服务器配置ssl(nginx+springboot)

    阿里云服务器配置ssl(nginx+springboot) 1. 阿里云申请免费SSL证书 阿里云官网搜索ssl 一年申请一次,一次有20分证书,我已经申请过了所以不能购买 2.创建证书 点击创建证书 ...

  3. nginx 学习笔记(2) nginx新手入门

    这篇手册简单介绍了nginx,并提供了一些可以操作的简单的工作.前提是nginx已经被安装到你的服务器上.如果没有安装,请阅读上篇:nginx 学习笔记(1) nginx安装.这篇手册主要内容:1. ...

  4. Nginx(四)------nginx 负载均衡

    在上一篇博客我们介绍了 Nginx 一个很重要的功能--代理,包括正向代理和反向代理.这两个代理的核心区别是:正向代理代理的是客户端,而反向代理代理的是服务器.其中我们又重点介绍了反向代理,以及如何通 ...

  5. 【Nginx那些事】nginx配置实例(四)搭建高可用集群

    [Nginx那些事]nginx配置实例(四)搭建高可用集群 nginx 实现高可用 安装keepalived keepalived配置 主Nginx服务器配置 从nginx服务器配置 脚本文件权限设置 ...

  6. 【Nginx那些事】Nginx 配置文件说明

    [Nginx那些事]系列 [Nginx那些事]nginx 安装及常用指令 [Nginx那些事]Nginx 配置文件说明 [Nginx那些事]nginx原理解析 [Nginx那些事]nginx配置实例( ...

  7. nginx(五)nginx与php的安装配置

    经过前面学习,对nginx有个大概的了解,来配置LNMP;只要是在系统安装过程中选择安装比较齐全的包,基本上系统都能满足安装要求,下面是我一个一个测试的,基本上全部安装所需的库文件,放心安装: [ro ...

  8. 初识Nginx及编译安装Nginx

    初识Nginx及编译安装Nginx 环境说明: 系统版本    CentOS 6.9 x86_64 软件版本    nginx-1.12.2 1.什么是Nginx? 如果你听说或使用过Apache软件 ...

  9. Mac Nginx 配置文件使用(nginx.conf,包含M系列)

    一.Mac Nginx 安装 二.nginx.conf 配置文件使用 配置文件路径为: /usr/local/etc/nginx/nginx.conf# M1 系统路径 /opt/homebrew/e ...

最新文章

  1. svn中提示”Files 的值 .mine 无效” 的解决方案
  2. PHP-Ajax跨域解决方案
  3. SqlSelect-在查询结果前面加一列序号列
  4. 【深度学习】解析神经网络中的数值稳定性、模型初始化和分布偏移(Pytorch)
  5. day04--课后练习
  6. 云计算的学习路线是什么?云计算的应用场景分析
  7. 网络分层模型OSI和TCP/IP四层模型
  8. 免gre美国计算机硕士,美国硕士免GRE/GMAT的学校-计算机篇
  9. Java遍历完数的一些思考
  10. 判断按键值_ALIENTEK 阿波罗 STM32F767 开发板资料连载第七章 按键输入实验
  11. k8s实战之从私有仓库拉取镜像 - kubernetes
  12. Python基础:常用知识点汇总
  13. dell 服务器ghost系统,Dell 5000笔记本装win7 64位Ghost系统真正成功教程
  14. 软考初级信息处理技术员(一)
  15. 二本学院计算机专业的考研er如何顺利上岸?
  16. 计算机操作系统(第四版) 汤小丹 配套资源
  17. linuxmint/ubuntu修改主机名hostnam
  18. wgs84 转百度地图坐标
  19. 基于高通芯片组的广和通FM150 5G模组GPS测试演示
  20. python爬取当当网商品评论

热门文章

  1. 阿里云负载均衡升级:同城容灾进一步提升可用性
  2. 玩转Python大数据分析 《Python for Data Analysis》的读书笔记-第08页
  3. Android开发(22)--seekBar采用handler消息处理操作
  4. sql mdf文件被破坏,ldf完好的情况下恢复数据库
  5. C++-十进制转二进制(matlab-dec2bin函数)
  6. tensorflow sigmoid 如何计算训练数据的正确率_量化训练:Quantization Aware Training in Tensorflow(一)...
  7. java版微信调小i机器人接口说明书_小i机器人微信公众平台调用api
  8. 监管码服务器维修,云风的 BLOG
  9. office2013 应用程序无法正常启动(0xc000007b)
  10. 不做单元测试的6大借口