服务器安全是网络托管提供商和服务器管理员服务器管理的一个关键方面。在这里,我们将介绍十种用于强化服务器并监控它们是否存在安全漏洞的技术。
1. SSH使用公钥认证
删除未加密的访问。没有人应该再使用 telnet、ftp 或 http 来管理服务器。SSH、SFTP 和 https 是公认的标准。为了获得更好的安全性,完全摆脱 SSH 上的密码身份验证。相反,请使用 SSH 密钥。每个用户都有一个公钥和一个私钥。私钥由用户保管。公钥保存在服务器上。当用户尝试登录时,SSH 确保公钥与私钥匹配。一旦密码登录被禁用,就没有针对弱密码的成功暴力攻击的风险。
2. 强密码
安全加固的服务器对犯罪分子来说是一个挑战,但您会惊讶于有多少服务器管理员敞开前门。人们——包括那些应该更了解的人——倾向于选择容易猜到的密码。去年,针对具有弱 SSH 密码的服务器的暴力攻击导致了大量的勒索软件攻击。使用长密码和随机密码——长密码更好,并最终限制具有登录类型访问权限的用户。
3. 安装和配置 CSF 防火墙
Config Server Firewall是一款功能丰富的免费防火墙,可以保护服务器免受各种攻击。其功能包括状态数据包检查、身份验证失败率限制、洪水保护、目录监视和外部阻止列表的使用。CSF 是一个很棒的工具,并且比 iptables 更容易管理。
4. 安装和配置 Fail2Ban
网络上的每台服务器都被寻找弱点的机器人所困扰。Fail2Ban会搜索您服务器的日志以搜索指示恶意连接的模式,例如太多失败的身份验证尝试或太多来自同一 IP 的连接。然后它可以阻止来自这些 IP 的连接并通知管理员帐户。
5.安装恶意软件扫描软件
理想情况下,您希望将恶意人员拒之门外,但如果他们确实设法破坏了服务器的安全性,您希望尽快了解情况。ClamAV是一款出色的 Linux 恶意软件扫描工具,而rkhunter可用于查找 Rootkit。结合起来,他们很有可能会发现黑客可能在服务器上安装的任何恶意软件。AIDE可用于在系统上生成文件哈希表,然后每天比较文件的哈希计数以确认没有对系统关键文件进行任何更改。
6. 保持软件最新
过时的软件可能包含黑客已知的安全漏洞,正如Equifax 最近以每个人的代价发现的那样。如果您忽略本文中的所有其他建议(您不应该这样做),您至少应该使用 Linux 发行版的包管理器进行更新。
7.定期备份
您可能不认为备份是一种安全措施,但我们保护服务器的主要原因是确保存储在其上的数据安全。不可能保证服务器永远不会受到损害,因此数据应该加密并备份到异地位置。定期测试全面备份的恢复将消除勒索软件攻击。
8.监控日志
日志是一个极其重要的安全工具。服务器收集了大量关于它做什么以及谁连接到它的信息。该数据中的模式通常会揭示恶意行为或安全漏洞。Logwatch是一个优秀的日常总结工具,可以分析、总结并生成关于您的服务器上发生的事情的报告。Logsentry可用于每小时报告以更主动地监控入口。
9.关闭不必要的服务
应禁用对服务器功能不重要的任何面向 Internet 的软件。服务器内部环境与外界的接触点越少越好。大多数 Linux 发行版(包括CentOS和Ubuntu)都包含一个用于管理服务的工具。
这也适用于 Web 服务器引擎本身,关闭不需要的模块,删除不使用的语言模块,禁用 Web 服务器状态和调试页面。您提供的有关底层基础设施的信息越少,攻击您的足迹就越小。
10.安装ModSecurity
ModSecurity是一种 Web 应用程序防火墙——它运行在比 CSF 防火墙更高的级别,旨在处理针对应用程序层的威胁。简而言之,它阻止了针对 Web 应用程序的多种类型的攻击,包括 WordPress 等内容管理系统和 Magento 等电子商务商店。ModSecurity 曾经是一个 Apache 模块,但现在也可用于 NGINX。
还要考虑这些选项:
采取措施减轻 XSS 攻击(跨站点脚本),方法是将设置添加到服务器,强制服务器和客户端确认他们正在与谁交谈。OWASP有丰富的信息和教程。
使用 HTTP2(或 http1.2) HTTP/2 的实现必须使用 TLS 版本 1.2 或更高版本用于基于 TLS 的 HTTP/2。这种升级后的 http 引擎通过与客户端交谈二进制而不是文本来提高服务器负载,提高互操作性,它减少了对已知安全漏洞的暴露,并减少了来自不同客户端浏览器访问的站点显示问题的可能性。