VPS 设置和管理的最佳实践 (web/ftp/ssh)

Woo*_*kai 1 security ssh web-hosting

经过长时间的犹豫,我终于订购了一个小型 VPS 供自己使用,主要是网络托管(几个网站,供我和朋友使用)以及其他(mumble 服务器托管、wave 服务器等)。它本质上是一个基本的 LAMP 盒。

我想为一些朋友提供一些托管空间,并允许他们对其进行调整。这意味着他们将需要自己的 FTP 访问权限,也许还需要 SSH(如果足够安全)。

我在 LAMP 设置/管理方面有一些经验,但在一般服务器管理(用户设置、ftp 等)方面经验不多。这就是为什么我想从基础开始并构建可靠和安全的东西。

用户管理

我的每个朋友都会在系统上拥有自己的用户,但有什么特别之处吗?我是为每个用户创建一个组,还是他们都共享同一个组?我想这只有在我允许他们通过 SSH 登录时才会改变,但稍后会详细介绍。

虚拟主机

我首先关心的是共享网络托管。即使我不会托管敏感数据,我也不希望用户弄乱其他人的文件。我在使用 PHP/CGI 和 Apache 之前解决了这个问题suexec,但是在阅读了Stuart Herbert 关于 Web 平台的精彩文章后,我觉得用mpm-itk. 您对此有何反馈意见?

由于我的目标用户有点古怪,我在考虑让他们调整自己的 php.ini。你怎么看?这样做是否有任何潜在的安全威胁?

例如,他们可以大量增加内存限制并影响其他用户,但我认为这不会成为问题。

FTP

在没有 FTP 访问的情况下很难部署您的网站,对吗?我阅读了很多解释如何创建虚拟用户的 pureftpd 教程。这并不真正适用于我,是吗?我只是在考虑允许用户通过 ftp 登录,将他们 chroot 到他们的主目录,就是这样。还有什么(通过 ftp 禁用 root 访问)?

SSH

这是我的主要问题。作为用户,我总是喜欢通过 SSH 连接到我的帐户,只是为了执行一些批处理操作,或者直接在服务器上提取存档,而不必通过 FTP 上传每个单独的文件。但是,我不希望我的用户能够浏览整个文件系统等。我对 SSH 配置不是很熟悉,所以有没有一种方法可以让用户连接并将它们“chroot”到他们的家中?

其他想法

我已经在调整我的立场,但我真的很想得到这里所有明智大师的意见,关于如何正确地做事,以及如何避免新手错误。我的 VPS 管理界面中有一个易于按下的“操作系统重置”按钮,但在我所有托管网站上看到“H@ked by th3 H4xx00r5”消息后,我不想经常点击它.

war*_*ren 5

我通过 SFTP、SCP 或通过在服务器上编辑(或通过我使用的 CMS)部署我的所有 Web 内容。FTP本身应该是不需要的。

其次 - 如果您拥有正确的用户和组权限,他们将无法通过命令行浏览其他人的网站。

但是,出于您陈述的原因,当然应该允许能够通过 SSH 登录。

我个人不会让人们“调整”他们自己的 php.ini 文件 - 我不在 VPS 上以与您类似的方式运行(即,为自己和朋友托管一些站点)。这是你的服务器,你是允许其他人使用它的人:所以让他们按照你的规则使用它。我想不出我见过的共享主机提供商允许人们调整他们的 php.ini 设置。

然而,在某些时候,它会归结为相信你的朋友不会对彼此做一些刻薄/愚蠢/残忍的事情。

如果您不能信任他们 - 我不会允许他们在 CMS 之外访问。

例如,我这样设置了不同用户的网络根目录:

drwxr-x--- <user> apache
Run Code Online (Sandbox Code Playgroud)

这允许 apache 查看和服务器内容,但只有用户可以进行更改。