我想在生产环境中运行基于 Tornado Web 服务器的应用程序。性能要求低。
由于我不需要负载均衡器,所以我想知道它是否可以在端口 80 和 443 上直接访问。从安全角度来看,这是否可以,还有其他问题吗?当然,这是假设我找到某种方法以非 root 用户身份运行它(在 RHEL 上不提供 authbind)。
我想在生产环境中运行基于 Tornado Web 服务器的应用程序。性能要求低。
由于我不需要负载均衡器,所以我想知道它是否可以在端口 80 和 443 上直接访问。从安全角度来看,这是否可以,还有其他问题吗?当然,这是假设我找到某种方法以非 root 用户身份运行它(在 RHEL 上不提供 authbind)。
直接在 HTTPS 上暴露龙卷风意味着 TLS 加密由 Python ssl 模块处理。
如果:
python 发行版足够新(python < 2.7.9 有很多 SSL 问题。python >= 2.7.9 或 >= 3.4 更好)
python 和 libssl 通过 Linux 分发包提供
你有一个完整的分发包升级策略
当然,如果您的应用程序涉及非常敏感的信息,最好的做法是在您的应用程序前面运行一个带有强化 TLS 堆栈的代理(如 nginx)。例如,在使用 LibreSSL 的 OpenBSD 反向代理上运行 nginx。
对于拒绝服务预防,如果您的应用程序是针对龙卷风应用程序进行编码的(从不阻塞 ioloop),那么应用程序前面的异步负载均衡器几乎没有什么好处。
最后,无论如何,大多数安全问题大多源于应用程序本身......身份验证、访问控制、XSRF、XSS......负载均衡器不会阻止它们。