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

经过很长时间的犹豫,我终于订购了一个小型VPS供我自己使用,基本上是networking托pipe(几个网站,为我和朋友)和其他事情(嘟嘟服务器托pipe,波服务器等)。 它基本上是一个基本的灯箱。

我想为几个朋友提供一些托pipe空间,并允许他们调整它。 这意味着他们将需要自己的FTP访问,也许SSH(如果足够安全)。

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

用户pipe理

我的每个朋友都会在系统上拥有自己的用户,但是有什么特别的吗? 我是否为每个用户创build一个组,还是他们都共享同一个组? 我想这只会改变,如果我允许他们通过SSHlogin,但稍后更多。

虚拟主机

我首先关心的是共享networking托pipe。 即使我不会收集敏感数据,我也不希望用户弄乱他人的文件。 在使用PHP / CGI和Apache suexec之前,我解决了这个问题,但是在阅读Stuart Herbert关于networking平台的精彩文章之后 ,我觉得要用mpm-itk 。 你有什么反馈?

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

例如,他们可能会增加内存限制,影响其他用户,但我不认为这会是一个问题。

FTP

很难部署您的网站没有FTP访问,对不对? 我读了很多pureftpd教程,解释如何创build虚拟用户。 这不适用于我,是吗? 我只是在考虑让用户通过ftplogin,把他们chroot到他们的主目录,就是这样。 还有什么(从禁用根访问通过FTP)appart?

SSH

这是我的主要问题。 作为一个用户,我总是喜欢通过SSH连接到我的账户,只是为了执行一些批量操作,或者直接在服务器上提取存档,而不是通过FTP上传每个单独的文件。 但是,我不希望我的用户能够浏览整个文件系统等。我不太熟悉SSHconfiguration,所以有一种方法允许用户连接和“chroot”到他们的家?

其他想法

我已经在我身边调整了方向,但是我真的很想听听所有这些聪明的大师们如何做正确的事情,以及如何避免菜鸟的错误。 在我的VPS的pipe理界面中,我有一个简单的“操作系统重置”button,但是我不想在所有托pipe的网站上看到“H3KH3” 。

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

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

当然可以通过SSHlogin,但是,正是因为你说的原因。

我个人不会让别人“调整”他们自己的php.ini文件 – 我不在VPS上运行类似于你自己的方式(也就是为自己和朋友托pipe一些网站)。 这是你的服务器,你是让别人使用它的人:所以让他们根据你的规则来使用它。 我想不出一个我曾经看过的共享主机提供商,它允许人们调整他们的php.ini设置。

但是,到了某种程度上,它会让你的朋友相信, 不要做任何意思/愚蠢/残酷的事情。

如果你不能相信他们 – 我不会允许他们在CMS之外访问。

例如,我设置了不同的用户的Web根目录:

 drwxr-x--- <user> apache 

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

我已经运行了很多很多年的主机了。 当时我发现的一些事情是,如果你允许你的用户运行CGI脚本,那么或多或less的“全部下注”。 他们不可能总是做一些无意的事情,但是稍后你可能会感觉到这种痛苦。

首先,你已经大大增加了安全漏洞的机会。 我有用户安装phpBB(在我的suexec包装下),然后从来没有升级…我有人写CGI脚本本身是安全漏洞等待发生 – 只有缺乏普及阻止它。

我把每个用户放在他们自己的组里。 当我为一个用户(如MUD,当这些人很受欢迎)做了一个用户,而且MUD的拥有者可以使用组权限来调整文件时,它就派上用场了。

无论如何,如果你愿意帮助并愿意花时间确保人们不做坏事,那么大部分都是非常容易的。 只是需要更好的事情离开恕我直言。