黑客总是在寻找服务器漏洞。您有责任确保您的数据安全可靠。通过实施我们的服务器安全提示和最佳实践,最大限度地降低风险并确保您的数据在安全服务器上是安全的。
安全的服务器连接
1.建立和使用安全连接
连接到远程服务器时,必须建立一个安全的通信通道。使用SSH(安全外壳)协议是建立受保护连接的最佳方式。与以前使用的Telnet不同,SSH 访问对交换中传输的所有数据进行加密。您需要安装 SSH 守护程序并拥有一个 SSH 客户端,您可以使用该客户端发出命令和管理服务器,以使用 SSH 协议进行远程访问。默认情况下,SSH 使用端口 22。每个人,包括黑客,都知道这一点。大多数人不会配置这个看似微不足道的细节。但是,更改端口号是减少黑客攻击您的服务器机会的一种简单方法。因此,SSH 的最佳实践是使用介于 1024 和 32,767 之间的端口号。注意:了解Telnet 和 SSH之间的所有区别以及何时使用它们。
2. 使用 SSH 密钥认证
您可以使用一对 SSH 密钥而不是密码来验证 SSH 服务器,这是传统登录的更好替代方案。密钥携带的位数比密码多得多,并且大多数现代计算机都不容易破解。流行的 RSA 2048 位加密相当于 617 位密码。密钥对由公钥和私钥组成。
公钥有多个副本,其中一个保留在服务器上,而其他的则与用户共享。任何拥有公钥的人都有权加密数据,而只有拥有相应私钥的用户才能读取这些数据。私钥不与任何人共享,必须保持安全。建立连接时,服务器会在允许特权访问之前询问用户拥有私钥的证据。
3. 安全文件传输协议
为了在不存在黑客破坏或窃取数据的危险的情况下与服务器传输文件,使用安全文件传输协议 (FTPS)至关重要。它加密数据文件和您的身份验证信息。FTPS同时使用命令通道和数据通道,用户可以同时加密。请记住,它仅在传输过程中保护文件。一旦它们到达服务器,数据就不再加密。出于这个原因,在发送文件之前对其进行加密会增加另一层安全性。
4. 安全套接层证书
使用安全套接字层 (SSL)保护您的 Web 管理区域和表单,以保护通过 Internet 在两个系统之间传递的信息。SSL 既可用于服务器-客户端通信,也可用于服务器-服务器通信。该程序对数据进行加扰,以便敏感信息(如姓名、身份证、信用卡号和其他个人信息)在传输过程中不会被盗。拥有SSL 证书的网站在 URL 中包含 HTTPS,表明它们是安全的。证书不仅加密数据,还用于用户身份验证。因此,通过管理服务器的证书,它有助于建立用户权限。管理员可以将服务器配置为与集中式权威机构以及该机构签署的任何其他证书进行通信。
5. 使用专用网络和虚拟专用网络
确保安全通信的另一种方法是使用专用和虚拟专用网络等软件。与外部世界可以访问并因此容易受到恶意用户攻击的开放网络不同,私有和虚拟私有网络限制对选定用户的访问。私有网络使用私有 IP 在同一范围内的服务器之间建立隔离的通信通道。这允许同一帐户下的多个服务器在不暴露于公共空间的情况下交换信息和数据。如果您想像通过专用网络在本地连接一样连接到远程服务器,请使用虚拟专用网络。它支持完全安全和私有的连接,并且可以包含多个远程服务器。为了使服务器在同一个虚拟专用网络下进行通信,它们必须共享安全和配置数据。
服务器用户管理
6.监控登录尝试
使用入侵防御软件来监控登录尝试是一种保护您的服务器免受暴力攻击的方法。这些自动攻击使用试错法,尝试使用字母和数字的所有可能组合来访问系统。入侵防御软件监控所有日志文件并检测是否有可疑的登录尝试。如果尝试次数超过设定的标准,入侵防御软件会在一段时间甚至无限期封锁 IP 地址。
7.管理用户
每个服务器都有一个可以执行任何命令的 root 用户。由于它具有强大的功能,如果它落入坏人之手,根可能对您的服务器非常危险。在 SSH 中完全禁用 root 登录是一种普遍的做法。由于 root 用户拥有最大的权力,因此黑客将注意力集中在试图破解该特定用户的密码上。如果您决定完全禁用此用户,您将使攻击者处于不利地位,并使您的服务器免受潜在威胁。为确保外人不会滥用 root 权限,您可以创建受限用户帐户。此帐户没有与 root 相同的权限,但仍能够使用sudo 命令执行管理任务。因此,您可以作为受限用户帐户管理大部分任务,并仅在必要时使用 root 帐户。
服务器密码安全
8. 建立密码要求
首先是设置服务器上所有成员必须遵守的密码要求和规则。不允许使用空密码或默认密码。强制执行最小密码长度和复杂性。制定锁定政策。不要使用可逆加密存储密码。强制会话超时不活动并启用两因素身份验证。
9.设置密码过期策略
在为用户建立要求时,设置密码的到期日期是另一种常规做法。根据所需的安全级别,密码可能会持续几周或几个月。
10. 使用密码短语作为服务器密码
使用密码短语而不是密码有助于提高服务器安全性的原因有很多。两者之间的主要区别在于密码更长并且在单词之间包含空格。因此,它通常是一个句子,但它不一定是一个。给定的示例比普通密码长,它包含大小写字母、数字和唯一字符。此外,记住密码短语比记住一串随机字母要容易得多。最后,由于它由 49 个字符组成,因此更难破解。
11.密码不要
如果您想维护一个安全的服务器,在密码方面您需要避免一些事情。首先,请注意存储密码的位置。请勿将它们写在纸上并将它们藏在办公室周围。通常建议不要使用您的生日、家乡、宠物名字和其他可以将您(用户)与密码联系起来的个人信息。这些非常容易猜到,尤其是认识您的人。
只包含简单字典单词的密码也很容易被破解,尤其是字典(蛮力)攻击。请注意同样的风险,尽量避免在同一个密码中重复字符序列。最后,不要对多个帐户使用相同的密码。通过回收密码,您将自己置于重大风险之中。如果黑客设法访问单个帐户,则具有相同密码的所有其他帐户都可能处于危险之中。尝试为每个单独的帐户使用不同的密码,并使用 KeePass 等密码管理器跟踪它们。保护服务器的其他最佳实践
12.定期更新和升级软件
定期更新服务器上的软件是保护其免受黑客攻击的关键步骤。过时软件的弱点已经被探索过了,让黑客可以利用这些弱点并损害您的系统。如果您使所有内容保持最新,则可以确保对其进行更新以在第一道防线中保护自己。自动更新是确保不会忘记更新的一种方式。但是,允许系统自行进行此类更改可能是有风险的。在更新生产环境之前,最好检查更新在测试环境中的执行情况。确保定期更新服务器控制面板。您还需要定期更新内容管理系统(如果您使用一个)以及它可能具有的任何插件。每个新版本都包含用于修复已知安全问题的安全补丁。
13.删除或关闭所有不必要的服务
通过减少所谓的攻击向量来提高服务器安全性。这个网络安全术语是指仅安装和维护保持服务运行所需的最低要求。只需启用操作系统使用的网络端口和已安装的组件。系统上的资源越少越好。Windows 操作系统服务器应该只具有所需的操作系统组件。Linux 操作系统服务器应该具有最小安装,只安装真正需要的软件包。由于大多数 Linux 发行版侦听 Internet 上的传入连接,因此您希望将防火墙配置为仅允许特定端口并拒绝所有其他不必要的通信。在您的系统上安装软件之前检查依赖项,以确保您没有添加任何您不需要的东西。此外,检查您的系统上自动启动了哪些依赖项,以及您是否希望它们在那里。
14.隐藏服务器信息
尽量少提供有关底层基础设施的信息。对服务器了解得越少越好。此外,最好隐藏您在服务器上安装的任何软件的版本号。默认情况下,它们通常会显示确切的发布日期,这可以帮助黑客在寻找弱点时提供帮助。通过从问候横幅的 HTTP 标头中删除此信息通常很简单。
15.使用入侵检测系统
要检测任何未经授权的活动,请使用入侵检测系统 (IDS),例如 Sophos,它会监控服务器上运行的进程。您可以将其设置为检查日常操作、运行定期自动扫描或决定手动运行 IDS。
16. 文件审核
文件审核是发现系统上不需要的更改的另一种好方法。当系统处于良好的“健康”状态时,它会记录系统的所有特征,并将其与当前状态进行比较。通过并排比较同一系统的两个版本,您可以检测所有不一致之处并跟踪其来源。
17. 服务审计
服务审计探索服务器上正在运行的服务、它们的协议以及它们通过哪些端口进行通信。了解这些细节有助于在系统中配置攻击面。
18. 设置和维护防火墙
通过控制和限制对系统的访问来保护您的服务器。使用 CSF(ConfigServer 和防火墙)对于加强服务器的安全性至关重要。它只允许特定的重要连接,锁定对其他服务的访问。在初始服务器设置或更改服务器提供的服务时设置防火墙。默认情况下,典型的服务器运行不同的服务,包括公共服务、私有服务和内部服务。公共服务通常由需要允许访问网站的 Web 服务器运行。任何人都可以通过互联网访问这些服务,通常是匿名的。
例如,在处理数据库控制面板时会使用私有服务。在这种情况下,许多选定的人需要访问同一点。他们在服务器内拥有具有特殊权限的授权帐户。内部服务是永远不应该暴露在互联网或外部世界的服务。它们只能从服务器内部访问,并且只接受本地连接。防火墙的作用是根据用户被授权的服务来允许、限制和过滤访问。将防火墙配置为限制所有服务,但您的服务器必须提供的服务除外。
19. 备份你的服务器
尽管前面提到的步骤旨在保护您的服务器数据,但备份系统以防出现问题至关重要。将关键数据的加密备份存储在异地或使用云解决方案。无论您有自动备份作业还是手动执行它们,请确保定期执行此预防措施。此外,您应该测试备份,进行全面的备份测试。这应该包括管理员甚至最终用户验证数据恢复是否一致的“健全性检查”。
20. 创建多服务器环境
隔离是您可以拥有的最佳服务器保护类型之一。完全分离需要拥有不与其他服务器共享任何组件的专用裸机服务器。尽管这是最容易管理并提供最高安全性的方法,但它也是最昂贵的。在数据中心拥有隔离的执行环境允许所谓的职责分离 (SoD) 并根据服务器实现的功能设置服务器配置。分离数据库服务器和 Web 应用程序服务器是一种标准的安全实践。单独的执行环境对无法承受任何安全漏洞的大型企业特别有利。独立的数据库服务器保护敏感信息和系统文件免受黑客的攻击,这些黑客设法获得了对管理帐户的访问权限。此外,隔离允许系统管理员单独配置 Web 应用程序安全性并通过设置 Web 应用程序防火墙来最小化攻击面。
21. 创建虚拟隔离环境
如果您负担不起或不需要使用专用服务器组件进行完全隔离,您也可以选择隔离执行环境。这样做可以帮助您处理可能出现的任何安全问题,确保其他数据不受影响。您可以在更容易设置的容器或 VM 虚拟化之间进行选择。UNIX 操作系统中虚拟化环境的另一个选择是创建 chroot jails。Chroot 将一个进程从中央操作系统的根目录中分离出来,并允许它仅访问其目录树中的文件。然而,这并不是完全的隔离,只能与其他安全措施一起实施。