我想在生产环境中运行基于Tornado Web服务器的应用程序。 性能要求低。
由于我不需要负载平衡器,我想知道是否可以在端口80和443上直接访问它。从安全angular度来看,这样做是否可行,还有其他问题吗? 这当然是假设我find某种方式以非root用户身份运行它(authbind在RHEL上不可用)。
直接暴露HTTPS上的龙卷风意味着TLSencryption由Python ssl模块处理。
这可能是确定的,如果:
python发行版已经足够了(python <2.7.9有很多SSL问题,python> = 2.7.9或> = 3.4会好很多)
python和libssl是通过Linux发行包提供的
你有一个彻底的升级政策的分发包
当然,如果你的应用程序涉及非常敏感的信息,最好的做法是运行一个代理(如nginx),在你的应用程序前面join一个强化的TLS栈。 例如,在使用LibreSSL的OpenBSD反向代理上运行nginx。
对于拒绝服务预防,如果您的应用程序是针对龙卷风应用程序进行编码的(永远不会阻止ioloop),那么应用程序前面的asynchronous负载平衡器几乎没有什么收获。
最后,大部分安全问题无论如何都主要植根于应用程序本身…身份validation,访问控制,XSRF,XSS …负载平衡器不阻止它们。