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

我有几个在Ubuntu 12.04上运行的Unicorn服务器,我正在寻求保护它们免受远程shell的攻击。

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

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

我在想,我可以雇用以下人员:

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

我想知道,如果有另一个强化框架/修补程序的RoR像PHP Suhosin。

我将从Ruby On Rails安全指南开始 。

我正在寻求保护他们免受远程shell的攻击。

请注意file upload部分。

  • 确保file upload不会覆盖重要的文件
  • validation文件名称
  • 使用插件: attachment_fu或回形针
  • 永远不要让用户上传: .php.cgi ,…
  • 设置适当的Centent-Type HTTP头
  • 把file upload到/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.