针对拥有自己的网络托管(物理服务器或经销商)的用户的问题:
您的服务器上是否存在一些常见的安全问题?对于应该禁用的麻烦事物,您有什么建议吗?对于网站托管,有哪些愚蠢的安全错误是我应该避免的?最近有哪些漏洞影响了网站托管商?
答案1
向任何拥有 PayPal 账户或信用卡的人提供用户级访问权限的做法本身就很疯狂。过去六年来,我一直在托管行业工作,但我仍然觉得这很疯狂。
以下是我针对大多数服务器(共享或非共享)所做操作的列表(无特定的逻辑顺序):
- 我几乎从不使用发行版提供的内核。我保留我们自己的内核树,它与 Linux 主线保持同步……只要 grsecurity 允许。这不仅仅是一种安全措施,也是一种优化措施。您不会在我们的内核中找到诸如并行/usb/音频支持之类的东西(因为 Web 服务器不需要它们)。内核的构建仅是为了利用我们需要的主板上的东西。
- 9/10 的坏事都是由有缺陷的用户脚本造成的。许多客户对 PHP 的了解足以让他们感到危险。mod_security 是我最好的朋友之一,我付费订阅强化规则集并几乎每周更新它们。
- 审计至关重要,我也建议使用 OSSEC 或类似的东西。
- 我的所有服务器都连接到维护 LAN,我可以独立于公共网络访问该 LAN。如果事情真的出了问题,你发现你的服务器忙于向互联网发送垃圾数据包,你会很高兴有另一种方式进入。我还在所有服务器上安装了 IP KVM,或者根据硬件安装 IPMI。
- 最近,我一直使用 Xen 作为共享服务器的管理层。我创建了一个拥有 99% 系统内存的单个客户机。这使我能够相当轻松地执行文件系统修复/快照等操作。如果出现问题,它确实可以帮助恢复(并且可以方便地向共享服务器隐藏 LAN)。
- 我维护一个非常严格的基于 iptables 的防火墙,在出口方面尤其严格。
- 我对谁可以访问系统编译器和链接工具非常谨慎。
- 我虔诚地更新系统软件。
- 我会定期进行扫描,以确保人们不会在不知情的情况下运行流行应用程序(如 Wordpress、PHPBB 等)的旧版本和易受攻击的版本。
- 我为客户提供“在互联网上找到”的东西的免费安装。这确实有助于我审核托管的内容,同时为客户提供额外的价值。它还有助于确保安全正确地安装内容。
- 始终、始终、始终强化 PHP,确保您也对 PHP 使用 suexec。没有什么比在 /tmp 中发现一个由“nobody”拥有的机器人更糟糕的了 :)
最后,同样重要的一点是:
- 我确实阅读了系统日志文件。很多主机商只有在发现问题后才会跑来查看问题出在哪里。即使使用 OSSEC 等工具,主动性也很重要。
答案2
看起来其他人正在深入讨论很多细节,但最大的恶意活动来源必须是FTP。
将其锁定到特定 IP,对不需要它的帐户禁用它。甚至在未请求时禁用服务。
我曾经处理过几十起将恶意代码上传到网站后发生的黑客事件,这些黑客要么向全世界发送垃圾邮件,要么通过 iframe 注入重定向访问者。他们很少获得 root 或 shell 访问权限,而是会造成大量手动工作,包括取消服务器黑名单和手动搜索代码。
黑客攻击的主要来源不是服务器本身,而是受感染的最终用户电脑,它们嗅探 FTP 密码并将其发送回母舰,然后从另一台机器上传代码。
答案3
我曾在一家网络托管公司工作过一段时间,确保所有用户的安全简直是一场噩梦。特别是在共享环境中。私人服务器更容易跟踪,因为安全问题只限于该系统。
使用共享主机时需要注意以下几点:
- 一个站点中的错误可能会影响所有其他站点。因此,请尝试限制每个用户可以执行的操作,并限制权限。这包括 ulimit、php 限制等。
- 监控系统和各个站点。OSSEC 之类的工具可以非常方便地处理所有信息。
- Linux 内核在本地漏洞利用方面表现不佳。因此,请确保始终更新内核并使用内核安全扩展(grsecurity、SELinux 等)。
对于私人服务器,您可以将安全问题留给用户,但请确保在网络上安装适当的 QOS、NIDS 和反 DOS 工具。