2010-04-14 88 views
3

我想知道是否有人可以告诉我是否有任何潜在的安全威胁可能通过连接到不在'localhost'的MySQL数据库发生,即通过IP地址?MySQL连接和安全

+0

可能将此问题移至severfault.com? – Unreason 2010-04-14 18:08:42

回答

6

是的,通过不保护与数据库的连接来实现违规。与应用程序的安全问题相比,这是一个网络安全问题。因此,这个答案完全取决于你的网络地形。

如果攻击者可以访问网络的一部分,那么您必须使用密码技术来保护自己。例如,你有一个恶意攻击者在你的网络上侵入了一台机器,然后他们可以对交换网络上的“Sniff”甚至MITM设备进行攻击。这可以用来查看流入和流出数据库的所有数据,或修改数据库对特定查询的响应(如登录!)。如果与您的数据库的网络连接与您的httpd服务器之间的单个rj45双绞线连接都位于锁定的机柜内,那么您不必担心黑客窃听此事。但是,如果你的httpd在WiFi网络上,然后连接到中国的数据库,那么你可能想考虑加密。

您应该使用MySQL's built-in SSL ability连接到您的MySQL数据库。这确保所有传输的数据都受到高度保护。您应该创建自签名x509证书并对其进行硬编码。这是免费的,你不需要像Verisign这样的CA。如果有证书异常,那么有一个MITM,因此这会阻止你泄漏密码。

另一个选项是VPN,如果您有多个需要安全点对点连接的守护程序,则这更适合。

+0

哇......我在服务器等方面的经验确实不多......我将从heartinternet租用一台专用服务器,用于我的最新项目。该网站的99%将驻留在那里,小百分比(1页)将位于不同的服务器上(经销商帐户),该服务器将仅用于显示用户个人资料页面(个人资料网址是域的通配符子域比之前的唯一原因要短)。 – 2010-04-14 17:19:15

+0

将两个域都保留在专用服务器上是明智的做法吗? – 2010-04-14 17:25:27

+2

为了简单和安全,我会在同一台服务器上托管经销商页面。如果您需要在服务器之间共享用户帐户信息,我会根据您的需求查看oAuth/OpenID或可能的自定义SOAP服务。 – rook 2010-04-14 17:57:02

2

通常情况下,更大的问题在于另一方面,MySQL服务器中的漏洞被不可信的客户端利用。

但是,是的,过去也存在客户端漏洞(eg.),这会让不可信的服务器攻击客户端。

当然,你应该保持你的MySQL客户端库是最新的,以避免这种可能性,以及更新服务器。

如果您的服务器连接正在通过互联网(而不是专用网络),您应该考虑通过加密链接(MySQL自己的SSL方案或使用隧道)来运行它。否则,任何中间人都会摆弄进出数据库的数据,如果存在客户端或服务器漏洞,那么这些漏洞也可能成为攻击目标。

+0

在这种情况下,防火墙/用户帐户设置比隧道更适合。有一个远程数据库时+1流氓客户端是一个有效的关注点。 – rook 2010-04-14 16:58:14

0

如果服务器位于同一机架中,则可以使用专用的高速MySQL电缆,或使用交换机VLAN隔离,并保护数据库操作系统。在虚拟云网络的云中,您可以通过arp欺骗无法实现的方式将其连接起来,对于地理IP复制,您可以使用用户/密码和防火墙,然后测量性能,然后设置隧道并测量性能再次提升,如果它不坏,它可能会抵挡未知的威胁,或仅仅在使用空闲的cpu周期方面有用。作为经验法则,您绝不会将开放数据库连接发布给任何人,并且可以在单独的子网上进行严格的防火墙过滤,以便处理敏感数据具有非常好的ARP欺骗保护,否则它是可以破解的,系统的主要部分可以使用多种技术进行妥协,而且它非常好,有时很容易以这种方式处理,例如通过硬件层来控制,监控和管理MySQL流量 - 这确实能够完成这项工作,并且实现真正的改变。

可选地,您可以将其保存在加密硬盘驱动器中与开关一起保存在物理安全的位置,因此在关闭电源并关闭私钥并擦除私钥后,可以保护第1层和第2层。

在交换机上使用静态ARP表加上静态条目与端口的过滤很容易,因为它也是物理层 - 端口号。