我们有一个连接到MySQL服务器的PHP应用程序,并且希望保护Web和应用程序服务器与数据库之间的连接安全。
在高峰时间,Web服务器会与数据库建立数百个并发连接,并执行许多小的读写操作。我知道这不是最佳选择,并且正在努力与此并行地减少数据库连接的数量。
我们目前没有打开与数据库的持久连接,尽管我们打算将来我想独立于此实现。
从硬件角度来看-MySQL服务器和Web服务器一样都相当庞大(16核)。它们是专用服务器。
然后,我的问题围绕保护和加密与数据库服务器的连接的最有效方式。
到目前为止,我的研究表明,主要的性能开销是建立SSL连接-一旦连接了SSL,几乎不会降低性能。这是关于确保连接安全的每种方法的内容:
- MySQL SSL证书-与普通SSL一样工作。可以使用客户端证书来防止未经授权的连接。与我们现有的设置没有持久的联系。仍然必须让MySQL在防火墙的开放端口上侦听。
- 漏斗。设置端口到端口ssl隧道。不必重新配置MySQL。可以关闭普通的MySQL侦听端口,以防止恶意的MySQL连接尝试。不支持持久连接。性能未知。
- SSH隧道。在客户端和服务器之间创建SSH隧道。不必重新配置MySQL。可以关闭普通的MySQL侦听端口,以防止恶意的MySQL连接尝试。支持持久连接,但是有时会丢失。性能未知。
就我所能达到的程度。我知道基准测试的局限性-以运行基准测试的经验,很难模拟现实世界的流量。我希望有人根据自己保护MySQL的经验提供一些建议?
谢谢
@Marcin-感谢openssl速度提示。我试图防止的情况是未经授权的mysql连接并加密服务器之间的通信。我们将不胜感激地提供您可以比较这三种方法的任何进一步帮助。
—
dastra 2011年
到3)使用autossh来减少辍学效果。如果断开连接,它将自动重新连接。在许多情况下在这里都能很好地工作。
—
ansi_lumen 2011年
openssl speed
并选择适合您的保护和性能折衷的密码。