我想运行一个Web服务器来尝试。 我打算使用Mongoose,因为它看起来很轻巧,足够简单,可以理解它正在做的一切。
我有一个Debian框来运行它。
我的问题是
以root身份运行一个web服务器是可取的吗? 如果没有,为什么不呢? (非特权帐户如何能在端口80,443上侦听?)
有没有一个标准的目录,把“网站的根”服务? 就安全考虑而言,这在哪里?
networking服务器通常以root身份启动 。 一个好的networking服务器将会改变运行单个进程的用户。 这样你就可以使用标准的端口。
把文档放在哪里并不重要。 当然,您需要对该目录进行写入访问(而不是根目录)。 您通常可以在/var/www或/srv/www下find默认文档根目录。
PS:我会推荐Apache,重量轻或不。 有大量的信息可以用于configuration,configuration文件也不难理解。
跟着我重复:
切勿以root身份运行Web服务器。
切勿以root身份运行Web服务器。
切勿以root身份运行Web服务器。
切勿以root身份运行Web服务器。
就像离开你的房子打开,并去度假6个月。
至于在哪里把你的网站的根。 我推荐一些对你有意义的地方。 我非常喜欢把它放在非标准的地方,因为它有助于防御所有的脚本小子。 (仍然不能保证你的安全,但是有帮助。)
正如别人所说,绝不要在root帐户下运行一个web服务器。 幸运的是,大多数Web服务器在绑定到端口80之后立即将priv删除到非root帐户。
处理这个问题的另一种方法是在超过1024的端口上运行Web服务器程序,并使用前端(如varnish或nginx)来侦听端口80并转发到后端Web服务器。
Debian仓库中的apache2的默认版本以root用户身份启动,但用户www-data生成实际的Apache进程。
我build议您将实验服务器作为Xen或KVM下的虚拟机运行。 这样你就可以开始一个完全干净的环境,如果你有问题,你可以安全地核弹。 您还可以更改系统范围的设置,或者在VM中安装用于testing的软件,而不会搞乱您的真实系统。
就像其他人所说的那样,你不应该以root身份运行一个web服务器。 不幸的是,无论您的服务器或应用程序有多安全,存在安全风险的机会总是(很好)。 无特权帐户的入侵已经足够糟糕 – 允许root访问是致命的 。
在启动服务器时,通常使用sudo( sudo apache2ctl start )升级到root权限,然后Apache绑定到指定的端口,然后返回到更低的权限 。
由于我的Mac背景以及我对可读性的热爱,我的网站位于/var/WebServer 。 里面我有default和许多其他网站作为虚拟主机运行。
Apache被广泛的讨论,并且文档可用, 最好和最简单的是由Slicehost提供的(在我看来)(这不是VPS专用的)。 我会咨询他们的文章,看看如何快速安全地设置Apache。
我必须同意Manni的观点,apache是你最好的select。
至于你问的具体问题:
版本1:
版本2 :(我的最爱)
有重复上面的其他人的风险:永远不要运行:)
这是你如何学习。
第1步。安装服务器的默认值。不要把任何有价值的东西。
第2步。将其插入networking。
第3步。等待15分钟
第4步,看看有多大的伤害。
========
接下来,用完全重新安装擦干净。 然后find适合您的操作系统和Web服务器的安全指南。 做它说的话,插入并等待一个小时。 如果它仍然没有被顶住,那么你很好。 一段时间。 ;)
安全是一个持续的舞蹈。 保持你的脚不会踩到你的脚。
运气给你。 ;)