安全地连接到MySQL-MySQL的SSL,Stunnel和SSH隧道


15

我们有一个连接到MySQL服务器的PHP应用程序,并且希望保护Web和应用程序服务器与数据库之间的连接安全。

在高峰时间,Web服务器会与数据库建立数百个并发连接,并执行许多小的读写操作。我知道这不是最佳选择,并且正在努力与此并行地减少数据库连接的数量。

我们目前没有打开与数据库的持久连接,尽管我们打算将来我想独立于此实现。

从硬件角度来看-MySQL服务器和Web服务器一样都相当庞大(16核)。它们是专用服务器。

然后,我的问题围绕保护和加密与数据库服务器的连接的最有效方式。

到目前为止,我的研究表明,主要的性能开销是建立SSL连接-一旦连接了SSL,几乎不会降低性能。这是关于确保连接安全的每种方法的内容:

  1. MySQL SSL证书-与普通SSL一样工作。可以使用客户端证书来防止未经授权的连接。与我们现有的设置没有持久的联系。仍然必须让MySQL在防火墙的开放端口上侦听。
  2. 漏斗。设置端口到端口ssl隧道。不必重新配置MySQL。可以关闭普通的MySQL侦听端口,以防止恶意的MySQL连接尝试。不支持持久连接。性能未知。
  3. SSH隧道。在客户端和服务器之间创建SSH隧道。不必重新配置MySQL。可以关闭普通的MySQL侦听端口,以防止恶意的MySQL连接尝试。支持持久连接,但是有时会丢失。性能未知。

就我所能达到的程度。我知道基准测试的局限性-以运行基准测试的经验,很难模拟现实世界的流量。我希望有人根据自己保护MySQL的经验提供一些建议?

谢谢


您拥有哪种服务器/网络架构?您想防止哪种情况?如果所有服务器到服务器的通信都在单独的交换机/ VLAN上,则可能不需要防嗅探保护。至于性能,请运行openssl speed并选择适合您的保护和性能折衷的密码。
Marcin

@Marcin-感谢openssl速度提示。我试图防止的情况是未经授权的mysql连接并加密服务器之间的通信。我们将不胜感激地提供您可以比较这三种方法的任何进一步帮助。
dastra 2011年

1
到3)使用autossh来减少辍学效果。如果断开连接,它将自动重新连接。在许多情况下在这里都能很好地工作。
ansi_lumen 2011年

Answers:


5

我将使用ssh-tunnel并使用autossh代替它ssh。关于性能,我想说,SSH协议是高度可定制的,如果需要,您可以微调连接。

但是,建立连接后,我预计不会有明显的开销。


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.