保护和监视虚拟专用服务器

经过近十年(托pipe我的个人网站和应用程序与一个体面的共享networking托pipe服务提供商(在匹兹堡),我已经决定其时间冒险出去,尝试一个虚拟的私人服务器。

一直困扰着我的是我知道我的共享Web主机有一些定制的安全/指令检测系统设置来处理常见的问题托pipe客户谁想要运行PHP应用程序。 我不愿意放弃这种安心,但是我的pipe理技能的扩展是通过configuration来进行因果风格的探索,并通过日志parsing来看“哦,这就是他们如何去做我们”。

该上下文集,如果我要build立一个基于Linux的VPS的Apachenetworking托pipe帐户

  1. 我会采取什么措施来保护机器?

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

这是我通常做的:

  • 安装一个好的防火墙。 出口过滤与入口一样重要。 如果有人设法让您的VPS上运行一个IRC保镖,如果它不能与外部世界交stream,这将是很好的。 APF是相当不错的,而且很容易configuration。
  • 快速安装mod_security。 你可以得到一些非常全面的规则,这些规则是在Gotroot上相当频繁地更新的。 免责声明,其中之一是我的一个朋友。
  • 用suexecconfigurationPHP,确保你的PHP脚本以拥有它们的用户身份运行。 另外, 只用你需要的configurationPHP。
  • 不要削弱你的PHPconfiguration,只是为了运行你发现的脚本。 换句话说,请不要只关注register_globals,以免过时的购物车工作。
  • 远程系统日志服务器总是好的。 也许有两个VPS服务器,使用一个来存储备份和处理日志logging。
  • 运行每日rootkit检查 。 在设置服务器之后立即运行第一个服务器,然后再投入生产。 这些工作通过存储系统可执行文件的哈希值以及检测事物何时更改以及寻找常见漏洞的签名来实现。
  • 如果在主机控制内核的VPS上,坚持让它保持最新状态。 例如,linux vmsplice中的一个弱点就是允许普通用户很容易成为root用户。 确保你的提供者在你不能控制的事情上尽职尽责。
  • 在各种托pipe相关的论坛上做一些朋友,search他们以及SF的答案和提示。 这类问题在这些论坛上相当普遍。

这是除了别人build议的项目。 存在许多更高级的工具,比如snort – 我build议你看看它们。 但是,这个清单应该很好,让你去一个VPS。

第1步: 更新您的软件作为补丁出来。 如果修补程序不能定期为您使用的项目出现,是时候find替代scheme了。

第2步: 异地logging。 攻击者可能会用PHP来危害一台机器,但是如果通过networking将日志导出到一个更强大的服务器上,覆盖轨道就更难了。

第3步: 保护SSHlogin。 在非标准端口上运行SSH。 需要强大的密码,甚至限制loginSSH密钥。 安装fail2ban或其他蛮力检测工具,以防止被淹没。 如果你的发行版愚蠢到允许它,禁用根权限。

第4步: 更新您的软件。 它重复。 PHP是臭名昭着的坏,共享主机可以使它成为一个庞大的皮塔更新,根深蒂固的不良行为。 像你可能在PEAR中发现和更新Debian软件包的项目。 订阅邮件列表和计划每天或每周的时间来解决修补。

第5步: 备份 。 当你被黑客攻击时,从已知的好系统恢复是最安全的。 增量备份可以帮助你做到这一点。

有大量的入侵检测软件包,如snort,助手和acidbase。 还有像nessus / openvas这样的笔测工具。

我也喜欢在VPS上指导一个简单的正常运行时间工具,以便在需要退款的情况下logging中断情况。

jldugger提供了很多很棒的点子 – 我想补充一下,你可能会想看看apache的mod_security和suexec。 Mod_security带有一堆预先制作的filter,可以检查到你的服务器的http调用,如果发现有腥意的话,就拒绝它们。 Suexec允许您以拥有它们的用户运行php / perl / etc脚本,而不是将它们全部运行在www-data用户下。