保护并监控虚拟专用服务器

保护并监控虚拟专用服务器

在使用一家不错的共享网络托管服务提供商(匹兹堡的那家)托管我的个人网站和应用程序近十年(哎呀)之后,我决定是时候自己出去尝试虚拟专用服务器了。

让我一直犹豫不决的是,我知道我的共享网络主机有许多定制的安全/指令检测系统,用于处理托管客户运行 PHP 应用程序时遇到的常见问题。我不愿意放弃这种安心,但我的管理技能范围包括使用配置进行因果式探索,以及分析日志以查看“哦,他们就是这样坑我们的”。

如果我要为 Apache 网站托管设置一个基于 Linux 的 VPS 帐户,那么上下文设置如下

  1. 我应该采取什么步骤来保护机器的安全?

  2. 我可以/应该安装哪些额外的监控包?

答案1

我通常会这样做:

  • 安装一个好的防火墙。出口过滤与入口过滤同样重要。如果有人设法在你的 VPS 上运行 IRC 弹跳器,那么最好让它无法与外界通信。有源滤波器非常适合这一点,并且易于配置。
  • 快速安装 mod_security。你可以从以下人员那里获得一些非常全面的规则,这些规则更新得相当频繁:戈特鲁特。免责声明,其中一位是我的朋友。
  • 使用 suexec 配置 PHP,确保您的 PHP 脚本以拥有它们的用户身份运行。此外,使用以下配置 PHP仅有的你需要什么。
  • 不要为了运行你找到的某些脚本而削弱你的 PHP 配置。换句话说,不要为了让某些过时的购物车工作而打开 register_globals。
  • 远程系统日志服务器总是好的。也许可以买两个 VPS 服务器,用一个来存储备份并处理日志。
  • 每天运行rootkit 检查。在设置服务器后立即运行第一个,然后再将其投入生产。这些工作通过存储系统可执行文件的哈希值并检测何时发生变化,以及查找常见漏洞的签名来工作。
  • 如果在主机控制内核的 VPS 上,请坚持要求他们保持内核最新。例如,Linux vmsplice 中的一个弱点允许普通用户轻松成为 root。确保您的提供商在您无法控制的事情上尽职尽责。
  • 在各种托管相关论坛上结交一些朋友,在他们以及 SF 上搜索答案和提示。这类问题在这些论坛上很常见。

这些是其他人建议的项目的补充。还有许多更高级的工具,例如 snort - 我建议您研究一下它们。但是,这份清单应该可以很好地帮助您开始使用 VPS。

答案2

步骤1:当补丁发布时更新您的软件。如果您使用的项目没有定期发布补丁,那么是时候寻找替代方案了。

第2步:场外伐木。攻击者可能会破坏使用 PHP 的机器,但如果您通过网络将日志导出到更强大的服务器,那么掩盖踪迹就变得更加困难。

步骤3:安全的 SSH 登录。在非标准端口上运行 SSH。要求使用强密码,甚至限制使用 SSH 密钥登录。安装 fail2ban 或其他暴力检测工具,以防止被攻陷。如果您的发行版愚蠢到允许 root 访问,请禁用它。

步骤4:更新您的软件。值得重复的是。PHP 是出了名的糟糕,共享主机可能会使更新变得非常麻烦,从而导致不良行为。您可能在 PEAR 中找到 Debian 等项目的软件包并进行更新。订阅邮件列表并安排每日或每周的时间来解决修补问题。

步骤5:备份。当您确实遭到黑客攻击时,最安全的做法是从已知良好的系统恢复。增量备份可以帮助您解决这个问题。

有大量入侵检测软件包,如 snort、aide 和 acidbase。还有 nessus/openvas 等渗透测试工具。

我还喜欢在 VPS 上使用一个简单的正常运行时间工具,以便在需要退款时记录停机情况。

答案3

jldugger 提供了许多很棒的想法 - 我想补充一点,您可能希望研究 apache 的 mod_security 以及 suexec。Mod_security 附带了一堆预制过滤器,它们会检查对您的服务器的 http 调用,如果发现任何可疑之处,就会拒绝它们。Suexec 允许您以拥有它们的用户身份运行 php/perl/etc 脚本,而不是让它们全部在 www-data 用户下运行。

相关内容