7 招搞定你的网站安全(上)

  • 作者: 酷哥
  • 最后编辑: 2017年04月14日
  • 标签: 网络安全

在设置基础结构时,让应用程序启动并运行通常是您的主要关注点。但是,使应用程序正常工作,而不解决基础设施的安全需求可能会产生毁灭性的后果。

在本指南中,我们将讨论在设置应用程序之前或设置过程中最好配置的一些基本安全措施。

SSH密钥

SSH密钥是一对加密密钥,可用于向SSH服务器进行身份验证,作为基于密码登录的替代方法。在认证之前创建私有和公共密钥对。私钥被用户保密和安全,而公钥可以与任何人共享。

要配置SSH密钥认证,必须将用户的公钥放在服务器上的特殊目录中。当用户连接到服务器时,服务器将要求证明客户端具有关联的私钥。 SSH客户端将使用私钥以一种证明私钥所有权的方式进行响应。然后服务器将让客户端在没有密码的情况下连接。要了解有关SSH密钥如何工作的更多信息,请查看我们的文章。

它们如何增强安全性?

使用SSH,任何种类的身份验证(包括密码身份验证)都已完全加密。但是,当允许基于密码的登录时,恶意用户可以重复尝试访问服务器。利用现代计算能力,可以通过自动化这些尝试并在组合之后尝试组合直到找到正确的密码来进入服务器。

设置SSH密钥身份验证允许您禁用基于密码的身份验证。 SSH密钥通常比密码具有更多的数据位,这意味着攻击者必须有更多可能的组合。许多SSH密钥算法被现代计算硬件认为是不可破解的,因为它们将需要太多的时间来运行可能的匹配。

这是怎么实现?

SSH密钥很容易设置,是远程登录任何Linux或Unix服务器环境的推荐方式。您的计算机上可以生成一对SSH密钥,您可以在几分钟内将公钥传输到服务器。

要了解如何设置密钥,请按照本指南操作。如果您仍然觉得需要密码身份验证,请考虑在服务器上实施像fail2ban 这样的解决方案,以限制密码猜测。

VPN和专用网络

专用网络是仅可用于某些服务器或用户的网络。

VPN或虚拟专用网络是在远程计算机之间创建安全连接并呈现该连接的方式,就像它是本地专用网络一样。这提供了一种方式来配置您的服务,就像它们在专用网络上,并通过安全连接连接远程服务器。

它们如何增强安全性?

利用私人而不是公共网络进行内部通信几乎总是优选的,因为两者之间的选择。但是,由于数据中心内的其他用户能够访问同一网络,因此您仍然必须实施其他措施以确保服务器之间的通信安全。

使用VPN有效地映射出只有您的服务器可以看到的专用网络。沟通将完全私密和安全。其他应用程序可以配置为通过VPN软件公开的虚拟接口传递其流量。这样,只有公共互联网上的客户端可以使用的服务才需要在公共网络上公开。

这是怎么实现?

在具有此功能的数据中心中利用专用网络非常简单,只需在服务器创建和配置应用程序和防火墙期间启用该接口即可使用专用网络。请记住,数据中心范围的专用网络与使用相同网络的其他服务器共享空间。

对于VPN,初始设置有点更多的参与,但增加的安全性对于大多数使用情况是值得的。 VPN上的每个服务器必须具有建立安装和配置的安全连接所需的共享安全和配置数据。 VPN启动并运行后,应用程序必须配置为使用VPN隧道。要了解如何设置VPN以安全地连接您的基础架构,请查看我们的OpenVPN教程。

公钥基础设施和SSL / TLS加密

公钥基础设施或PKI是指旨在创建,管理和验证证书以识别个人和加密通信的系统。 SSL或TLS证书可用于相互验证不同的实体。在认证之后,它们也可以用于建立加密通信。

它们如何增强安全性?

建立证书颁发机构并管理服务器的证书允许基础架构中的每个实体验证其他成员身份并加密其流量。这可以防止中间人攻击,其中攻击者模仿基础架构中的服务器拦截流量。

每个服务器可以配置为信任集中式证书颁发机构。之后,权威签名的任何证书都可以隐式信任。如果您使用的应用程序和协议支持TLS / SSL加密,这是一种加密系统而不需要VPN隧道(内部通常也使用SSL)的开销。

这是怎么实现?

配置证书颁发机构和设置其余的公钥基础设施可能涉及相当多的初始努力。此外,在需要创建,签署或撤销新证书时,管理证书可能会产生额外的管理负担。

对于许多用户来说,实施一个完整的公钥基础设施将更有意义,因为他们的基础设施需求的增长。使用VPN保护组件之间的通信可能是一个很好的停止间隙措施,直到您达到PKI值得额外管理成本的点。

防火墙

防火墙是控制向网络暴露的服务的一个软件(或硬件)。这意味着阻止或限制对每个端口的访问,但应公开提供的端口除外。

在典型的服务器上,默认情况下可能正在运行多个服务。这些可以分为以下几组:

公共服务,可以由互联网上的任何人访问,通常是匿名的。一个很好的例子是可能允许访问您的网站的 Web 服务器。 私人服务,只应由特定的授权帐户组或特定位置访问。其示例可以是数据库控制面板。 内部服务应该只能从服务器本身内部访问,而不会将服务暴露给外部世界。例如,这可以是仅接受本地连接的数据库。 防火墙可以确保根据上述类别限制对您的软件的访问。公共服务可以保持开放,每个人都可以使用,私人服务可以根据不同的标准进行限制。内部服务可以完全无法访问外部世界。对于未使用的端口,大多数配置中的访问被完全阻止。

它们如何增强安全性?

防火墙是任何服务器配置的重要组成部分。即使您的服务本身实现安全功能或仅限于您希望其运行的接口,防火墙也可作为额外的保护层。

正确配置的防火墙将限制对除了您需要保持打开的特定服务之外的所有内容的访问。只暴露几个软件减少了您的服务器的攻击面,限制了易受攻击的组件。

这是怎么实现?

有许多防火墙可用于Linux系统,其中一些具有比其他更陡峭的学习曲线。一般来说,设置防火墙只需要几分钟,并且只需要在服务器的初始设置过程中或在您的计算机上提供的服务中进行更改。

一个简单的选择是UFW防火墙。其他选项是使用iptables或CSF防火墙。

结论

这里介绍了四种我们最常见的安全策略,如果想了解更多的方法,我们会在下篇中详细介绍另外三种方法,敬请期待。