有关运行Web服务器的基本问题

我想运行一个Web服务器来尝试。 我打算使用Mongoose,因为它看起来很轻巧,足够简单,可以理解它正在做的一切。

我有一个Debian框来运行它。

我的问题是

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。

  • 它为新用户提供了大量的文档和帮助。
  • 它提供了Debian明智的默认和软件包,他们保持良好的状态,并确保迅速获得安全升级。
  • 大多数人在某个地方使用某个Apache,因此了解基础知识可能会非常有帮助
  • Apache几乎是瑞士军刀networking服务器,其他的大多数都是为了在特定环境下运行而devise的,并且/或者非常善于利用更less的资源运行。 伊莫,这是在别人面前学习的理由,但有些人可能不同意。

至于你问的具体问题:

  • 您必须以root用户身份启动您的web服务器,以便将其绑定到端口80.通常,您将服务器configuration为放弃这些privlidges,并在绑定到端口后以其他用户身份运行(在debian apache上,此用户是www-user,这是默认设置的)。 为缺乏这种function的特定应用程序运行自己的Web服务器的程序通常通过更大的Web服务器(如apache或nginx)进行代理。
  • / var / www是Debian上网站根目录的默认位置。 这应该是罚款,无论您select的任何Web服务器。

版本1:

  • 在系统上创build另一个用户,没有太多权限(甚至没有login)
  • 在Web服务器的启动脚本中,执行su my.web.server.sh(仅举例)
  • 创build一个文件夹(例如,在新用户的home文件夹下)并将其分配给新创build的用户
  • 授予自己写入该文件夹的权限
  • 将这个新文件夹设置为Web根目录

版本2 :(我的最爱)

  • sudo apt-get install apache2 / httpd
  • 你有/ var / www / [html]作为web根目录这应该照顾你的一切 – 创build用户,文件夹的正确权限等

有重复上面的其他人的风险:永远不要运行:)

这是你如何学习。

第1步。安装服务器的默认值。不要把任何有价值的东西。

第2步。将其插入networking。

第3步。等待15分钟

第4步,看看有多大的伤害。

========

接下来,用完全重新安装擦干净。 然后find适合您的操作系统和Web服务器的安全指南。 做它说的话,插入并等待一个小时。 如果它仍然没有被顶住,那么你很好。 一段时间。 ;)

安全是一个持续的舞蹈。 保持你的脚不会踩到你的脚。

运气给你。 ;)