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