如何保持共享虚拟主机服务器的安全?

信息安全 网络服务器 虚拟主机 共享主机
2021-08-13 15:02:35

假设每个用户都可以使用 SSH 访问,有哪些方法可以保证共享 LAMP 服务器的安全?

编辑:我主要考虑保护服务器免受用户本身和他们之间的影响。

4个回答

这可能是不可能的,但您可以让攻击者更难成功。

加强你的防御:

安全强化系统(可能参考以下清单之一)

http://iase.disa.mil/stigs/checklist/(查找 UNIX 安全检查表)
https://benchmarks.cisecurity.org/en-us/?route=downloads.multiform

添加:

grsecurity
安全增强型 Linux
AppArmor

此处描述了上述工具的一个不错的比较: http ://www.lifelinux.com/selinux-vs-apparmor-vs-grsecurity-345.html

及时了解安全补丁。

获得可见性:

部署 HIDS(例如OSSEC)来帮助您检测用户何时表现不佳。

以上这些都需要不断的努力。那就是安全。

在我看来,首先要做的是将 ssh 端口更改为非标准端口并安装类似 fail2ban 的东西。

调整防火墙以阻止从外部访问未使用的端口也可能很有用(可能只允许 80、423、25 和 ssh ......这取决于)

除了其他答案:

由网络服务器执行的程序(cgi、php 等)的权限是一个问题:

如果它们以网络服务器的权限运行,恶意用户可以访问其他用户提供的文件。我在这里考虑带有数据库凭据的配置文件。

如果这些程序在个人用户的许可下运行,他们可以自己修改程序文件。这可能更容易利用应用程序中的安全问题,例如 .php 脚本在保存文件时可能无法正确验证文件名。并且用户需要对web目录有写权限,所以php程序在那里也有写权限。

SourceForge发布了一个 apache 模块和一个 fuse 文件系统,允许更细粒度的权限:

权限位在“rwx”(读/写/执行)集的标准三重奏中,但普通的“用户”(所有者)、“组”和“其他”类别被“项目成员”三重奏取代, “项目启动的 apache 访问”和“每个人”。

Project Web 文件系统权限

基本上没有什么可以真正使事情变得安全,因为诸如 wordpress 之类的东西总是以巨大的安全问题告终,以及 PHP 本身等。

唯一确定的方法(我认为)是在单独的虚拟机中运行每个站点。这(几乎)将一个站点与另一个站点完全隔离,但它当然有必须管理每个 VM 的开销、更多的内存使用、更多的 CPU 周期等。

哦,每个虚拟机都需要不断地修补所有软件。

这当然值得考虑,因为它比试图控制所有这些站点要安全得多。