我创建了将在 Ubuntu 20.04 VPS 服务器上运行的应用程序。Nginx、Python、Postgresql、nodejs,没什么特别的。
不幸的是,我关于服务器安全的所有知识在 ufw enable 和 fail2ban 之后就结束了。(因为大多数教程也在此之后结束。)
您能否推荐一些关于保护互联网服务器安全的现代手册给我?如果有自动安全测试服务或任何可以帮助审计/监控服务器的东西 - 请告诉我,付费也可以。
答案1
保证服务器安全的原则非常简单。
不分优先顺序:
- 保持软件为最新版本。(相关:仅运行受支持/维护的版本。)
- 仅运行您需要的服务。
- 仅安装您需要的软件。
- 正确配置您的软件。
- 根据最小特权原则授予访问权限。
- 添加监控。
建立基线并对偏差发出警报。
具体细节在很大程度上取决于实际的软件、您需要运行的服务和您的要求。
对于您的配置的外部验证:有许多漏洞扫描器和/或渗透测试工具包正如你在以下列表中看到的那样:https://owasp.org/www-community/Vulnerability_Scanning_Tools
请注意,此类扫描通常依赖于确定已安装软件的版本号,并且不会测试已知漏洞是否可以成功利用。这可能会导致在进行安全反向移植的 Linux 发行版上出现许多误报,例如本问答中解释的那样PCI 合规性:在 Ubuntu 14.04.3 上安装 Apache 2.4.17?
经过身份验证的扫描可以通过检查软件包的版本而不是应用程序报告的版本字符串来帮助解决此问题。
另一种方法更多地是从系统管理的角度,采用集中式服务器管理,包括发布和补丁管理。
例如 Ubuntu 的景观, 红帽卫星和微软星火控制管理
答案2
保护您的 VPS 的提示以及您可以使用的一些自动化工具:
保持你的软件为最新版本:始终确保您的操作系统和 VPS 上安装的所有软件都已安装最新的安全补丁。
使用强密码:为 VPS 上的所有用户帐户(包括 root 帐户)使用强大且独特的密码。避免使用容易猜到的密码。
配置防火墙:仅允许访问必要的端口和服务。
使用 SSH 密钥:使用 SSH 密钥而不是密码进行身份验证。这将使攻击者更难访问您的 VPS。
启用 2FA:为 VPS 上的所有用户帐户启用双因素身份验证。
使用IDS:考虑使用入侵检测系统(例如 OSSEC、Snort 或 Suricata)来监控您的 VPS 是否有异常活动。
定期备份:在发生安全漏洞时防止数据丢失。
免费/开源自动化工具:
Fail2ban:扫描日志文件以查找失败的登录尝试并阻止攻击者的 IP 地址。
ClamAV:可以扫描您的 VPS 中是否存在恶意软件和病毒的 AV 软件。
莱尼斯:自动化安全审计工具可以扫描您的 VPS 是否存在安全漏洞并提供补救建议。
OpenVAS:漏洞扫描程序可以扫描您的 VPS 以查找已知的安全漏洞。