如何在 ubuntu 上正确保护 Unicorn/RoR 服务器?或者,强化 RoR 应用程序堆栈?

And*_*ith 2 ubuntu ruby-on-rails unicorn apache-2.2 apparmor

我在 Ubuntu 12.04 上运行的 Unicorn 服务器很少,我希望保护它们免受提供远程 shell 的攻击。

我主要关心的是,部署 ModSecurity 是否有意义?

另一件事是,我看到 Unicorn 通常从端口 8080 运行,并将其转发到用作反向代理的 Apache/NginX 服务器端口 80。

我在想我可以使用以下内容:

  • Apache 上的 ModSecurity
  • 使用 mod_qos 作为工作线程(线程)的 Apache,以防止来自任何主机的过多请求
  • 从指定用户运行独角兽服务器并通过 AppArmor 或 SELinux(如果它是 Redhat/Centos)将其隔离

我想知道,是否有另一个像 PHP Suhosin 这样的 RoR 强化框架/补丁。

qua*_*nta 8

我将从Ruby On Rails Security Guide 开始

我希望保护它们免受提供远程 shell 的攻击。

注意文件上传部分。

  • 确保文件上传不会覆盖重要文件
  • 验证文件名
  • 使用插件: attachment_fupaperclip
  • 永远不允许用户上传:.php, .cgi,...
  • 设置适当的 Centent-Type HTTP 标头
  • 将文件上传放在/public目录之外

您还可以使用Brakeman扫描 Rails 代码中的漏洞:

gem list -d brakeman

*** LOCAL GEMS ***

brakeman (1.8.0)
    Author: Justin Collins
    Homepage: http://brakemanscanner.org
    Installed at: /usr/lib/ruby/gems/1.8

    Security vulnerability scanner for Ruby on Rails.
Run Code Online (Sandbox Code Playgroud)