apache - 如何保护公共(public)和私有(private) Rails 应用程序的管理区域

标签 apache ssl ssh admin security

您将如何保护对网络应用管理区域的访问?

我们的 Rails CMS 公开提供页面。我想使用网络服务器 (apache) 或防火墙 (netfilter) 使后端 (/admin) 无法访问。

这可以使用 SSL 证书来完成吗?我想将对后端的访问限制为只有那些拥有“ key ”的人,类似于对服务器的 SSH 访问。

提前致谢。

最佳答案

您说得对,SSL 证书是正确的选择。设置起来并没有那么棘手,尽管很少有人这样做。

重要的是要记住这个问题有两个组成部分。第一个是,“我怎样才能让这该死的东西正常工作”,而且,这是一个安全系统,第二个是,“我如何设置它,这样我就不可能不小心做一些让我感到厌烦的事情安全吗?”

我建议的第一件事是为管理内容编写一个单独的 Rails 应用程序,并在不同的端口上使用不同的 Web 服务器运行它。 (如果您真的想避免在管理站点的 URL 中放置端口号,请在使用 Host: header 的两个 Web 服务器前面使用代理将请求重定向到 foo .com 分配给一台服务器,admin.foo.com 分配给另一台服务器。)这种分离将有助于确保您不会意外地授予普通用户访问管理功能的权限,并使SSL 设置更容易。

对于管理服务器,将其设置为仅用于 SSL 访问。创建一个新的签名证书,并只允许连接由签名证书签名的证书。 (这取决于网络服务器;如果您真的需要有关如何执行此操作的详细信息,您可能想发布一个新问题,提供您正在使用的服务器和配置的具体信息。)您可以设置一个页面(在非 SSL 站点,或在 SSL 站点上未经身份验证的用户可访问的页面上),这将使您的管理员的 Web 浏览器自动生成并上传您可以签署的证书,以授予他们访问权限。

保留您签署的所有证书的副本,以便当您需要撤销访问权限时,您可以将该证书放入撤销列表中。

关于apache - 如何保护公共(public)和私有(private) Rails 应用程序的管理区域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/900763/

相关文章:

apache - 如何为 apache2 调整主机?

Apache Web服务器: AH00125: Request exceeded the limit of 10 subrequest with FallbackResource

python - 我缺少什么来修复与金融 API 相关的 SSL 错误?

java - 如何在JAVA 7u80客户端中启用TLSv1.2

apache - CSS、JS 和图像不显示漂亮的 url

apache - .htaccess 未在 Ubuntu 14.04 (Apache 2.4.7) 中加载

google-app-engine - App Engine Multi-Tenancy SSL 和计费

docker - SSH 到 Docker : Permission denied (publickey)

git - 如何获取直接在服务器上提交/merge 的Gerrit更改的详细信息

sshfs 未在期望脚本中使用密码