首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么可以将NGiNX或作为根用户运行在端口80/443上,而不是直接运行您的应用程序?

为什么可以将NGiNX或作为根用户运行在端口80/443上,而不是直接运行您的应用程序?
EN

Security用户
提问于 2019-08-02 22:32:39
回答 1查看 1.1K关注 0票数 1

正如标题所说,我想理解:

  • 在端口80/443上运行自定义应用程序(如节点或烧瓶)意味着什么?
  • 从安全的角度来看,运行Nginx这样的反向代理是否是强制性的?
  • 如果我以root用户的身份运行Nginx并在今天发现了一个安全漏洞,该怎么办?这难道不会使定制应用程序和Nginx都面临巨大的安全风险吗?
  • 如果不是Nginx,那么处理端口80或443的最安全(也是最标准的)方法是什么?
EN

回答 1

Security用户

发布于 2019-08-02 23:13:26

以下是一些可能有助于澄清情况的细节:

  1. 少于1024的端口是特权端口(在大多数OSes中),它们需要root才能在它们上运行任何东西。这是一种安全特性,目的是使攻击者更难在受威胁的服务器上的重要端口上承载服务。因此,需要root才能在端口80或443上运行任何内容。
  2. 虽然Nginx和Apache将在端口80或443上运行,但尽可能少地作为root操作。两种方法都会立即产生一个非根子进程来工作。主根进程仅用于绑定到特权端口。Nginx本身也不运行任何“应用程序”,而是与作为一个完全独立的进程运行的应用程序进行通信--希望也是一个低权限的进程。
  3. 您不希望将应用程序作为root运行,因为如果有人在其中发现RCE漏洞,您的系统将受到很大影响。当然,任何RCE漏洞都是不好的,但以低权限用户的身份运行应用程序只是深入防御的一部分,而且通常是个好主意。

所以说出来,你不想直接在端口80/443上运行一个自定义应用程序,因为这样做需要你成为根用户,而且你不想这样做,因为它只是在妥协的情况下带来更多的麻烦。然而,这与其他人没有什么不同。虽然Apache和Nginx将作为root运行,但通过它们承载的任何应用程序通常不会运行。

这也意味着Apache或Nginx中的RCE漏洞对于攻击者来说非常有价值(如果它恰好影响到以root身份运行的应用程序的部分),虽然它们确实发生了,但我要说,它们与典型web应用程序中的RCE漏洞相比要少得多。这就是为什么让Apache/Nginx听80/443而不是你的应用程序更好。

票数 7
EN
页面原文内容由Security提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://security.stackexchange.com/questions/214581

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档