提高nginx安全性方法

nginx是当今最流行的web服务器之一。它为世界上7%的web流量提供服务而且正在以惊人的速度增长。它是个让人惊奇的服务器,我愿意部署它。

下面是一个常见安全陷阱和解决方案的列表,它可以辅助来确保你的Nginx部署是安全的。

1. 在配置文件中小心使用”if”。它是重写模块的一部分,不应该在任何地方使用。

“if”声明是重写模块评估指令强制性的部分。换个说法,Nginx的配置一般来说是声明式的。在有些情况下,由于用户的需求,他们试图在一些非重写指令内使用“if”,这导致我们现在遇到的情况。大多数情况下都能正常工作,但…看上面提到的。

看起来唯一正确的解决方案是在非重写的指令内完全禁用“if”。这将更改现有的许多配置,所以还没有完成。

2. 将每个~ .php$请求转递给PHP。 我们上周发布了这个流行指令的潜在安全漏洞介绍。即使文件名为hello.php.jpeg它也会匹配~ .php$这个正则而执行文件。

现在有两个解决上述问题的好方法。我觉得确保你不轻易执行任意代码的混合方法很有必要。

如果没找到文件时使用try_files和only(在所有的动态执行情况下都应该注意) 将它转递给运行PHP的FCGI进程。

确认php.ini文件中cgi.fix_pathinfo设置为0 (cgi.fix_pathinfo=0) 。这样确保PHP检查文件全名(当它在文件结尾没有发现.php它将忽略) 

修复正则表达式匹配不正确文件的问题。现在正则表达式认为任何文件都包含”.php”。在站点后加“if”确保只有正确的文件才能运行。将/location ~ .php$和location ~ ..*/.*.php$都设置为return 403;

3. 禁用autoindex模块。这个可能在你使用的Nginx版本中已经更改了,如果没有的话只需在配置文件的location块中增加autoindex off;声明即可。

4. 禁用服务器上的ssi (服务器端引用)。这个可以通过在location块中添加ssi off; 。

5. 关闭服务器标记。如果开启的话(默认情况下)所有的错误页面都会显示服务器的版本和信息。将server_tokens off;声明添加到Nginx配置文件来解决这个问题。

6. 在配置文件中设置自定义缓存以限制缓冲区溢出攻击的可能性。

client_body_buffer_size  1K;

client_header_buffer_size 1k;

client_max_body_size 1k;

large_client_header_buffers 2 1k;

7. 将timeout设低来防止DOS攻击。所有这些声明都可以放到主配置文件中。

client_body_timeout   10;

client_header_timeout 10;

keepalive_timeout     5 5;

send_timeout          10;

8. 限制用户连接数来预防DOS攻击。

limit_zone slimits $binary_remote_addr 5m;

limit_conn slimits 5;

9. 试着避免使用HTTP认证。HTTP认证默认使用crypt,它的哈希并不安全。如果你要用的话就用MD5(这也不是个好选择但负载方面比crypt好) 。

10. 保持与最新的Nginx安全更新。

以上就是提高nginx安全性方法的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/3165361.html

(0)
上一篇 2025年3月30日 21:19:54
下一篇 2025年3月30日 21:20:01

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • MongoDB的磁盘IO问题的解决方法

    有点标题党的意思,不过下面三招确实比较实用,内容来自conversocial公司的vp colin howe在london mongodb用户组的一个分享。 申请:下面几点并非放四海皆准的法则,具体是否能够使用,还需要根据自己的应用场景和数…

    编程技术 2025年3月30日
    100
  • 保护Linux系统安全的方法介绍

    在现在这个大环境下,保障基于linux的系统的安全是十分重要的。但是,你得知道怎么干。一个简单反恶意程序软件是远远不够的,你需要采取其它措施来协同工作。那么linux的系统的安全如何保障?今天小编就为大家总结九个常用方法来保护linux系统…

    编程技术 2025年3月30日
    100
  • Tomcat7.0.82在Linux下安装的方法

    这篇文章主要介绍了linux下安装tomcat7.0.82的简单方法,需要的朋友可以参考下 1、apache-tomcat-liunx-7.0.82下载地址: http://download.csdn.net/download/yichen…

    编程技术 2025年3月30日
    100
  • MySQL日志设置及查看方法详解

    我们都很熟悉mysql日志,本文主要介绍了mysql日志设置及查看方法,需要的朋友可以参考下,希望能帮助到大家。 MySQL有以下几种日志:错误日志: -log-err查询日志: -log慢查询日志: -log-slow-queries更新…

    编程技术 2025年3月30日
    100
  • Linux下使用g++编译C++方法

    本文主要和大家分享在linux环境中用g++编译c++的方法以及相关实例代码分享,有兴趣的朋友学习下。希望能帮助到大家。 单个源文件生成可执行程序 下面是一个保存在文件 helloworld.cpp 中一个简单的 C++ 程序的代码: /*…

    编程技术 2025年3月30日
    100
  • Linux查看端口状态的方法

    在linux使用过程中,需要了解当前系统开放了哪些端口,并且要查看开放这些端口的具体进程和用户,可以通过netstat命令进行简单查询,本文主要和大家分享linux查看端口状态的方法,希望能帮助到大家。 netstat命令各个参数说明如下:…

    编程技术 2025年3月30日
    100
  • 如何在Linux上配置高可用的反向代理(如Nginx)

    如何在linux上配置高可用的反向代理(如nginx) 摘要:反向代理是在网络架构中常用的一种技术,可以提高服务的负载均衡能力和容错能力。本文将介绍如何在Linux系统上配置高可用的反向代理,以Nginx为例。 安装Nginx首先,我们需要…

    编程技术 2025年3月30日
    100
  • Nginx访问日志配置指南,监控网站访问行为

    nginx访问日志配置指南,监控网站访问行为 Nginx是一个高性能的Web服务器,广泛用于搭建静态或动态网站。在搭建网站的过程中,我们经常需要对网站的访问行为进行监控和分析。Nginx提供了强大的访问日志配置功能,能够帮助我们实现对网站的…

    编程技术 2025年3月30日
    100
  • Linux上如何安装并搭建Nginx服务器

    1.将nginx的压缩包nginx-1.8.0.tar.gz上传到linux服务器 2.由于nginx是c语言开发的并且我们这里是通过编译nginx的源码来安装nginx,所以linux上要安装c语言的编译环境gcc,如果已经安装此步可以省…

    编程技术 2025年3月30日
    100
  • centos8自定义目录安装nginx的方法

    1.安装工具和库 # pcre是一个perl库,包括 perl 兼容的正则表达式库。nginx 的 http 模块使用 pcre 来解析正则表达式 # zlib库提供了很多种压缩和解压缩的方式, nginx 使用 zlib 对 http 包…

    编程技术 2025年3月30日
    100

发表回复

登录后才能评论