保护新的 Ubuntu 服务器

Cod*_*eef 37 security linux ubuntu application-server

假设我已经全新安装了 Ubuntu,我应该采取哪些步骤来保护它以用作 Rails 应用程序服务器?

小智 25

我想不出任何特定于 Ubuntu 的调整,但这里有一些适用于所有发行版的调整:

  1. 卸载所有不需要的包
  2. 在 SSH 中使用仅公钥身份验证
  3. 通过 SSH 禁用 root 登录(不适用于 Ubuntu)
  4. 使用 PHP 的生产设置(php.ini-recommended)
  5. 将 MySQL 配置为仅使用套接字

当然,这个列表并不完整,你永远不会完全安全,但它涵盖了在现实生活中看到的所有漏洞。

此外,我看到的漏洞利用几乎总是与不安全的用户代码有关,而不是不安全的配置。最小的服务器发行版中的默认配置往往非常安全。

  • “卸载所有不必要的软件包”。好的。那很模糊。什么“不必要”的包裹? (4认同)
  • @Luke:您没有使用的任何东西都是不必要的。更具体地说,运行不需要的服务会使机器面临不必要的风险。 (2认同)

Ali*_*man 18

我早期做的一件快速的事情是安装DenyHosts。它会定期查看 /var/log/secure,查找失败的登录,并在几次失败后阻止 IP。我将它设置为在第一个非此类用户之后、第二次尝试 root 以及为真实用户尝试几次之后(以防万一你搞砸了,但你应该使用 SSH 公钥登录)。

  • 当您链接到 sourceforge 主页时-denyhosts 也可以通过“sudo aptitude install denyhosts”在存储库(宇宙)中使用 (3认同)
  • DenyHosts 似乎只检测和阻止 ssh 暴力攻击。更好的选择是fail2ban(它也可以在repos 中找到),它可以监控各种事物,包括apache 日志等。在 https://help.ubuntu.com/community/Fail2ban 查看社区维基 (3认同)

Mik*_*aid 10

Ubuntu 基于 Debian,我发现Securing Debian Manual在基于 Debian 的发行版中非常有用,可以完全引导您浏览系统并检查每个部分。这基本上是对您问题的非常非常全面的回答。


Tim*_*and 5

我通常安装 RKHunter,它会扫描 rootkit 并对各种重要的系统二进制文件进行完整性检查。它在标准仓库中,每天从 cron 运行。它在安全方面并不完美,但它是一个轻松添加的项目,并且提供了一定程度的保护。