互联网时代的到来对企业的经营方式产生了深远的影响。对于大多数想要保持相关性和竞争力的公司而言,维持在线形象不再是可有可无的选择。现有和潜在客户使用 Internet 进行购买、管理他们的帐户、研究产品等等。这样做的好处是无法估量的,但它也有阴暗面——黑客。由于您的网站和在线声誉受到如此多的影响,确保服务器安全绝对至关重要。
安全专业人员将他们的整个职业生涯都投入到跟上在线威胁不断变化的本质,而全球公司拥有拥有大量资源的整个团队,致力于确保其在线财产的安全。承担保护服务器的繁重工作似乎是一项艰巨的任务,但我们随时为您提供帮助!我们已经确定了一些关键做法,可以充分保护您的服务器以抵御绝大多数攻击并阻止除最精英黑客之外的所有黑客。使用这些方法保护您的服务器不需要大量的系统管理能力,但如果您愿意将其交给我们有能力的人, 请查看我们的管理计划和SecureServer+服务。
躲在防火墙后面
任何安全环境的第一道防线都是防火墙。有多种防火墙可供选择,但它们通常都具有相同的基本功能。防火墙是驻留在 Internet 和服务器上任何面向网络的服务之间的应用程序或物理设备。它充当网络流量的看门人,使用一组规则来过滤入站和出站连接。但是,防火墙的好坏取决于它所使用的规则。一个配置良好的防火墙可以过滤掉绝大多数恶意连接,而配置不当的防火墙则效果会差很多。
第一个决定是硬件还是软件。大多数现代操作系统都带有内置的软件防火墙应用程序,这通常就足够了。专用设备,也称为硬件防火墙,通常用在多服务器环境前面,为防火墙管理提供单点。
无论您最终使用哪种类型的防火墙,下一步都是定义一套好的规则。配置防火墙时的第 1 条规则,尤其是远程配置时,要非常小心,不要通过阻止用于访问防火墙的连接来将自己锁在门外。如果您不小心阻止了自己的连接——通常是物理控制台或带外控制台解决方案,如 IPMI、ILO 或 DRAC,最好使用后备访问方法来更改防火墙规则。
首先考虑您的服务器提供的服务。网络服务利用特定端口来帮助区分连接类型。将它们想象成一条非常宽的高速公路上的车道,带有分隔线以防止改变车道。例如,网络服务器通常使用端口 80 进行标准连接,使用端口 443 进行使用 SSL 证书保护的连接。这些服务可以配置为使用非标准端口,因此请务必验证您的服务正在使用哪些端口。
接下来,确定您将如何远程管理您的服务器。在 Windows 上,这通常是通过 RDP(远程桌面协议)完成的,而在 Linux 上,您可能会使用 SSH(安全外壳)。理想情况下,您将希望阻止对用于管理的端口的访问,除了少数 IP 或一个小型子网之外的所有端口,以限制不在您组织内的任何人对这些协议的访问。例如,如果您是 Linux 服务器的唯一管理员,请打开 SSH 端口(通常为 22)以仅从您计算机的静态 IP 地址进行连接。如果您没有静态 IP 地址,您通常可以确定一个子网,您将从中分配一个 IP。虽然将一系列 IP 列入白名单并不理想,但这比向整个 Internet 开放该端口要好得多。
要生成一套可靠的规则,请阻止来自所有 IP 的所有端口,然后创建特定规则以打开您的服务和管理所需的那些端口——记住不要将自己锁在外面。为您的服务开放的端口通常应该从所有 IP 开放,但如上所述限制管理端口。
虽然防火墙不应该是您唯一的防线,但创建一套合理的防火墙规则是增强服务器安全性的一个很好的起点。事实上,任何服务器都不应没有至少基本的防火墙配置。
身份验证和密码
增强服务器安全性的最简单方法之一就是实施强身份验证策略。您的服务器仅与密码最弱的帐户一样安全。对于服务器上使用的任何密码,请遵循良好的密码指南,例如确保您的密码长度足够,而不是字典中的单词,并且不要用于其他本身可能会受到威胁并泄露您的密码的服务。虽然您可以通过良好的防火墙配置限制对服务器的远程访问,但仍然存在可用于通过在开放网络端口上运行的受损或未修补服务向系统发送命令的漏洞。
在许多情况下,完全无密码是可能的(而且更方便)!如果您访问服务器的主要方法是通过 SSH,您可以在服务器的 SSH 配置文件中禁用密码验证,而是使用一对公钥和私钥来授权您的连接。
请记住,如果您需要能够随时从任何地方登录到您的服务器,则此方法可能不那么方便,因为您需要将您的私钥添加到您连接的任何新系统。此外,虽然这种方法使远程连接的安全性提高了一个数量级,但不要忘记为您的帐户设置一个强密码。黑客有时可以通过其他方式访问系统,您不希望拥有一个由密码(如“1234”)保护的提升访问权限的帐户。
如今,双因素身份验证 (2FA) 变得非常流行。使用 2FA 时,用户不仅需要使用密码进行身份验证,还需要提供发送到先前注册的电子邮件地址或移动设备的一次性代码,以进一步验证其身份。可以通过第三方服务或使用支持 2FA 的帐户(如 Google 或 Microsoft)在您的服务器上实现类似的功能。cPanel\WHM 现在支持双因素身份验证,因此如果您使用此控制面板作为服务器管理的主要方式,这可能是您的一个选择。
蛮力保护
服务器上的常见攻击向量是暴力攻击。这些是使用猜测的用户名和密码进行的远程登录尝试,在服务器和网络允许的范围内一遍又一遍地重复。在不受保护的情况下,每天可能会进行数十万次尝试——足以在一个月内破解任何 8 个字符的密码。出于这个原因,谨慎的做法是在您的服务器上安装某种形式的暴力破解保护。
大多数暴力保护方法都采用两种形式之一。第一种方法在登录尝试之间引入超时。即使此超时时间短至一秒,这也会导致攻击花费多倍的时间来破解密码。您可能希望更长的超时时间以提供更好的安全性,同时又不会过度干扰拼写错误的用户的合法登录尝试。一些系统通过增加每次失败尝试的超时时间来采用这种方法,通常是指数级的。失败一次,等待1秒。再次失败,等待 5 秒。第三次失败,等待 30 秒……到第四次尝试时,您将非常小心地输入密码。
或者,此方法的一种变体对设定时间段内允许的尝试次数设置了硬性上限。登录失败次数过多将导致帐户被锁定——或者是暂时的,或者在更极端的情况下,直到被服务器管理员解锁。这种方法有效地阻止了任何暴力攻击,但对于不太小心输入密码的有效用户来说,它可能会更加烦人。
第二种方法是在登录请求中引入验证码。这迫使用户执行一项对人类来说微不足道但对计算机来说却很困难的壮举。通常,这涉及某种图像识别,例如识别包含路灯的网格中的所有图片,或破译一些用模糊字体书写的文本。虽然计算机通常最终能够解决这些请求,但它们花费的时间比一般人类要长得多,并且大大减慢了攻击速度。验证码还经常用于保护公众评论部分免受垃圾邮件帖子和注册表单的侵害。
暴力破解保护可以在许多防火墙或操作系统本身中找到——但不要忘记其他帐户,例如 WordPress、cPanel/WHM 等。确保任何暴露的登录都启用了某种形式的暴力破解保护。
软件更新和安全补丁
软件和操作系统更新以及安全补丁对于维护安全服务器也很重要。如果您运行的是易受已知漏洞利用的过时操作系统版本,那么您所有其他的努力都将毫无意义并完全付诸东流。
大多数软件和操作系统供应商都投入了大量资源来为他们的产品打补丁以应对最近发现的漏洞,以至于许多次要版本包含的安全修复程序多于功能更新。对其产品的旧版本保持这种警惕性可能代价高昂,因此软件和操作系统在多年后经常被归类为生命周期结束 (EOL)。除其他事项外,这意味着该产品将不再接收在达到 EOL 后可能发现的漏洞的更新。
这种类型的常见案例与 PHP 相关,PHP 是 Web 上常用的一种脚本语言。在本文发布之时,所有早于 7.2 的 PHP 版本都已停产。尽管如此,PHP 5.3 的旧版本仍然很普遍。7.2 和 5.3 之间存在显着差异,如果不对代码进行重大修改,就不可能升级到受支持的版本。
幸运的是,通过这个特定的 PHP 版本示例,CloudLinux 已经让您了解了cPanel 服务器。CloudLinux 提供旧 PHP 版本的强化版本,以及安全更新,远远超过 EOL 日期。然而,这个问题可能发生在任何软件上,而且大多数没有像 CloudLinux 这样简单的解决方案。
运行过时的操作系统也不是好的做法。例如,CentOS 5 已经停产一段时间了,但这并不是一个非常罕见的景象。如果您碰巧正在运行这样的东西,您应该尽快规划您的升级路径。当您运行的操作系统进入 EOL 时,即使您的服务器上受支持的软件也将停止接收更新,这是很常见的,因为供应商不会在 EOL OS 版本上提供新版本。这会对您的服务器的安全产生级联的负面影响。
代码和自定义应用程序
不幸的是,即使是最坚固的服务器仍然容易受到网站上运行的不安全代码或应用程序的攻击。
如果您正在运行可自定义的 Web 应用程序,例如 WordPress、Joomla 或 Magento,那么不仅要使核心应用程序保持最新,而且还要使所有插件或主题保持最新,这一点至关重要。这也适用于项目本身的代码——如果您怀疑您的主题或插件“死了”并且不再更新,寻找替代品是明智的。新的漏洞不断被发现,应用程序或插件只有在上次更新时才安全。
在处理开发人员为您创建的自定义代码时,明智的做法是与您的开发人员保持持续的关系,以便您可以继续接收更新。否则,您可能会遇到上述情况,您发现无法再更新您的 PHP 或其他重要软件,因为该网站与新版本不兼容。
这种攻击向量可能是最难防御的,因为您的数据中心或托管服务提供商通常不支持在您的服务器上运行的自定义软件和代码。除非您运行的是完全现成的软件,否则请确保您有一个计划来更新和修补您的代码。
如您所见,保护服务器远远超出了初始设置的范围。虽然这很重要,但同样重要的是保持它是最新的,以对抗不断增长的已知黑客和漏洞利用列表。系统受损可能造成巨大的经济损失和声誉损失。正如一句古老的格言所说,一盎司的预防胜过一磅的治疗。