这是我第一次设置 Ubuntu 服务器。它将为一家公司运行一款使用率较低的应用程序,但我想确保不会遗漏任何安全问题。
1)我在 Dell OptiPlex i5 机器上安装了全新的 Ubuntu 桌面 20.04。(这有点棘手)
2)使用以下方式添加 LAMP 和 SSH-Servertasksel
3) 使用新用户和强密码配置 mysql。禁用 root 用户和非本地访问。
4)启用防火墙并允许ssh, http, https
端口
您认为此配置足以安全运行服务器吗?您还推荐哪些其他预防措施?
注意:我没有安装 Ubuntu Server 版本,因为我也想要一个 GUI。
答案1
理想情况下,您希望尽可能少地向外界开放。例如,如果您不需要允许从互联网访问 ssh,那就不要这样做。如果您的用例需要向世界开放的 ssh 服务器,请确保将其配置为需要非对称密钥身份验证,而不是用户名/密码凭据。
我建议不要在服务器上运行完整的桌面安装,因为这会增加开销,而且潜在的攻击面也会更大。习惯通过 CLI 配置服务 - 无论如何它都会对你有益;至少当你没有其他方法可以纠正问题时,通过 ssh 就可以了。
为 Web 服务配置 TLS 时,请使用类似以下命令进行检查ssllabs,并且检查你的安全标头让潜在攻击者的攻击变得更加困难。
当然,只要确保您的环境保持最新状态,额外的安全性很大程度上取决于您正在运行的应用程序。
答案2
您还可以安装 ClamAV 等防病毒软件,如果要向公众开放,请启用 SELinux,并确保它ssh
不向公众开放,因为它是一种常见的攻击媒介。对于 Web 应用程序,请确保文件和目录不属于 Apache 用户(如果您使用的是该用户)或任何服务的用户。相反,创建一个具有写访问权限的组来运行应用程序,这样即使应用程序受到攻击,也无法更改权限。对于 MySQL,请确保您有适当的方法来防止 SQL 注入和其他攻击。审计和日志记录也很重要,您还需要与公司的网络和信息安全部门合作,以确保有其他保护措施。
您能做的最后一件事是摆脱 GUI,因为它会创建更多需要保护的向量。没有理由在服务器上安装 GUI,因为除了我刚才所说的之外,它还需要更多可以分配到其他地方的资源。您不需要拥有 Ubuntu Server,但请确保您使用的是 Ubuntu 20.04 LTS,该版本支持到 2030 年。