`
pda158
  • 浏览: 193254 次
社区版块
存档分类
最新评论

10 个 Nginx 的安全提示

阅读更多

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

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

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

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

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

来源: IfIsEvil

 

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

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

  1. 如果没找到文件时使用try_filesonly(在所有的动态执行情况下都应该注意) 将它转递给运行PHP的FCGI进程。
  2. 确认php.ini文件中cgi.fix_pathinfo设置为0 (cgi.fix_pathinfo=0) 。这样确保PHP检查文件全名(当它在文件结尾没有发现.php它将忽略) 
  3. 修复正则表达式匹配不正确文件的问题。现在正则表达式认为任何文件都包含".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安全更新

4
0
分享到:
评论

相关推荐

    详解nginx同一端口监听多个域名和同时监听http与https

    通过在Nginx中正确配置多个域名和协议监听,可以为网站提供稳定、安全、高效的网络服务。在实际应用中,应该结合具体的服务器配置和网络安全策略,来优化Nginx的设置,以达到最佳的性能和安全效果。

    windows下nginx配置https以及同一个端口监听多个网站即监听多个虚拟主机

    在Windows上下载Nginx的安装包,运行安装程序并按照提示进行配置。安装完成后,Nginx的服务会自动启动或需要手动启动。 2. 配置HTTPS: - 生成SSL证书:可以使用OpenSSL工具生成自签名证书,或者购买CA签发的证书...

    普通用户启动nginx,使用80端口

    然而,在某些场景下,出于安全考虑或系统配置需求,我们可能希望让普通用户也能启动Nginx服务器,并且能够使用这些端口。本文将详细介绍如何实现这一目标。 #### 查看Nginx进程 首先,需要确保当前系统上已经安装...

    Nginx 阿里云服务器提示504

    标题 "Nginx 阿里云服务器提示504" 涉及的问题是关于Web服务器Nginx在阿里云环境中遇到了“504 Gateway Time-out”错误。这个错误通常意味着Nginx作为前端代理服务器,未能在预设的时间内从后端应用服务器(如Apache...

    windows系统下将nginx作为系统服务启动

    2. 下载并解压Winsw:将winsw-1.19.1-bin.exe解压到一个安全的位置,例如`C:\Utils\winsw`。这个目录应该包含`winsw.exe`和`winsw.xml`这两个文件。 3. 配置Winsw:复制`winsw.exe`到Nginx的安装目录,重命名为`...

    网站安全狗Linux-Nginx版(32位)v2.4.2.gz

    安全狗linux版是为Linux服务器开发的一款服务器管理软件,全面支持apache和nginx防护。具有DDOS攻击防护、CC攻击防护、Ftp/SSH防暴力破解、SSH远程登录保护、网站漏洞防护、url地址全检测、防盗链、网站特定资源保护...

    SUSE 12 SP1 nginx离线安装文件

    标题提到的"nginx"文件很可能是一个包含所有必要软件包的压缩文件。在开始安装前,请确保你已经下载了这个压缩文件,并将其解压到一个方便访问的本地目录。这一步通常可以通过命令行工具如`tar`来完成: ```bash ...

    ubuntu 20.04 离线安装Nginx(nginx-full-1.18.0)及相关依赖

    在Ubuntu 20.04系统中离线安装Nginx是一个相对复杂的过程,因为通常我们依赖...此外,保持Nginx及其依赖库的更新也很重要,因为安全性和性能的改进通常会随新版本发布。如果可能的话,定期更新到最新稳定版本是有益的。

    nginx,windows直接解压使用

    在Windows操作系统上,安装和使用Nginx相对简单,只需要进行几个基本步骤。下面我们将详细介绍如何在Windows上直接解压Nginx并开始使用。 1. **下载Nginx** 首先,你需要从Nginx官方网站(https://nginx.org/)...

    使用nginx部署前端项目(超详细教程).pdf

    教程提示读者备份默认配置文件,然后根据实际需求修改`/etc/nginx/nginx.conf`。这里涉及的关键配置包括指定Nginx运行用户、设置工作进程数、定义日志文件位置、配置错误页面以及设定网站根目录。此外,教程还提供了...

    nginx-1.17.10 下载

    Nginx 1.17.10 版本是 Nginx 的一个重要稳定版本,它在性能、安全性和功能上都得到了进一步优化。 **1. Nginx 的核心特性** Nginx 的主要特性包括: - 非阻塞、事件驱动的架构:这种设计使得 Nginx 能够高效地处理...

    Nginx.一键安装

    3. **执行安装**:运行Nginx.exe,根据提示进行安装。在Linux中,这可能涉及赋予脚本执行权限并执行它。 4. **配置服务**:一键安装通常会自动配置Nginx的基础设置,如监听端口、日志文件位置、根目录等。用户也...

    国产麒麟系统 nginx离线安装包 arm64架构deb包(亲测,没有任何问题)

    在这个场景下,我们已经有了一个专为麒麟系统arm64架构准备的Nginx离线安装包。这意味着我们可以直接在没有网络连接的麒麟arm64设备上进行安装。 安装过程如下: 1. **下载离线安装包**:首先,你需要在有网络的...

    nginx证书转换jks

    ### Nginx证书转换jks知识点详解 #### 一、背景与目的 在现代Web服务部署中,Nginx作为一款高性能的HTTP和反向代理Web服务器,被...这一过程对于在生产环境中部署基于Nginx的服务至关重要,确保了数据传输的安全性。

    nginx安装.rar

    **Nginx安全配置** - **限制访问**:通过`allow`和`deny`规则控制IP访问权限。 - **HTTPS配置**:配置SSL证书,确保数据传输的安全性。 - **日志审计**:记录和监控Nginx的日志,以便及时发现和应对潜在攻击。 ...

    nginx安装包.zip

    4. **启动Nginx**:运行Nginx可执行文件启动服务,查看是否有错误提示。 5. **验证安装**:在浏览器中输入`http://your_server_ip`,如果能看到Nginx的欢迎页面,说明安装成功。 6. **配置防火墙**:如果服务器有...

    nginx1.16.1+nginx-upload-module-2.3.0.zip

    【描述】"nginx-1.16.1.tar.gz + nginx-upload-module-2.3.0.tar.gz" 提示我们这个压缩包包含了 Nginx 的 1.16.1 版本源代码和 nginx-upload-module 的 2.3.0 版本源代码。.tar.gz 文件是 Linux 下常见的归档压缩...

    nginx配置 +负载均衡+https协议

    - 对于负载均衡,可以通过在Nginx配置文件中定义多个后端服务器,并使用`proxy_pass`指令来实现。 ```nginx upstream backend { server backend1.example.com; server backend2.example.com; } server { ...

    nginx-1.11windows版免安装

    4. **配置检查**:在启动前,可以使用`nginx -t -c conf/nginx.conf`命令检查配置文件的有效性,如果有错误,Nginx会给出提示。 5. **启动与停止**:若无错误,直接按回车启动Nginx;要停止Nginx,可以使用`nginx -s...

    fastdfs-nginx-module-1.20.zip

    记住,版本匹配是关键,"亲测可用,一定要对应版本"的提示强调了这一点,不同版本的FastDFS和Nginx模块可能存在兼容性问题,选择正确的版本能避免不必要的麻烦。在实际操作中,应根据自己的业务需求和服务器环境进行...

Global site tag (gtag.js) - Google Analytics