公开分享 nginx 配置 - 可以吗?

公开分享 nginx 配置 - 可以吗?

我是 nginx 新手,我想与其他人分享我创建的配置,以便获得反馈;从安全角度来看,假设我的服务器的其余部分已得到适当保护且已更新,我可以分享我的 nginx 配置吗?公开发布吗?

我使用此命令来创建各种配置片段的连接版本:

tail -n +1 *.conf conf.d/*.conf sites-enabled/*.conf &> /home/ubuntu/nginx.txt

我仔细检查了该文件并试图找出任何潜在的安全漏洞:

  • 优点:没有嵌入 SSL 证书/密钥
  • 不好?:有各种文件夹的路径(例如 SSL 证书所在的位置)
    • 但这些都是非常标准的路径......
  • 不好?:有公共 IP 和域名 - 应该将其删除吗?
  • 不好?:我们接受的清单ssl_ciphers包括了……但无论如何这都能被发现吗?
  • 未知:还有其他不应发布的设置吗(例如client_max_body_size- 也许可以通过发送大量有效载荷来利用?)

我理解安全的一个方面就是不共享不需要共享的信息,但假设您需要帮助,您愿意共享哪些配置以及共享多少配置?

答案1

我认为您不需要分享整个 Nginx 配置来获取有关安全性的反馈。您可以更广泛地讨论这些概念,就像您在帖子中所做的那样。如果您确实发布了 Nginx 配置,除非您暴露了关键信息,否则这不应该是一个太大的问题。但最好用占位符信息替换您的具体信息,以确保您不会泄露任何可能被利用或使用的信息。几个月前,我发布了关于 Nginx 的帮助;您可以在这里查看我所做的:将自定义域指向 Nginx 上的服务器。我只发布了与我的问题相关的配置部分。

关于您的具体问题:

  • 不好?:有到各种文件夹的路径(例如 SSL 证书所在的位置),但这些都是非常标准的路径......

发布这个不会有什么危害,因为有人需要访问你的机器,但还是建议你安全一些。用更通用的路径替换路径,比如~/my_cert.pem。你也不必包含每个 SSL 证书路径。如果你正确处理了其中一个,那么你应该将相同的做法应用于其他路径。

  • 不好?:有公共 IP 和域名 - 应该将其删除吗?

同样的做法。将您的 IP 替换为“127.0.0.1”等通用名称,并将您的域名替换为“www.example.com”。任何帮助您的人都不需要知道您的确切域名。

  • 不好?:包含了我们接受的 ssl_ciphers 列表……但无论如何这都会被发现?

我不认为这会是一个问题,因为密码是公开的,并且本质上不会在没有人拥有你的私钥的情况下损害加密。

一般而言,最好不要透露任何特定于应用程序或服务器的信息。无论如何,任何帮助你的人都不需要它,尤其是对于 Nginx 配置。

相关内容