是否可以安全地在防火墙中打开端口3306以进行外部MySQL连接

这可能是更多的服务器问题,但它是与开发相关的,因为我是一个开发人员,我希望这是适当的。

我想用TOAD,Navicat或HeidiSQL连接到一个ISP托pipe的MySQL数据库。 我被告知ISP,MySQL正在侦听端口3306,但硬件防火墙不允许外部连接访问(只有本地主机)。 我有select给他们添加IP到防火墙,但这不是理想的B / C我在家里或在路上工作,所以我的IP总是在变化。 如果我打开这个问题,我是否在惹麻烦? 除了把我的知识产权join知识产权表,我可以采取哪些措施来减轻风险?

通常限制MySQL访问一个IP地址是一个好主意。 可能会有一些安全问题,但一个好的防火墙应该可以缓解其中的一些问题。 他们将不得不为你创build一个额外的MySQL用户,因为MySQL不允许每个用户有多个主机(除非有通配符)。 您可以请求多个用户,每个用户连接一台主机,甚至部分主机(例如%.google.com)。

另一种解决scheme是从您的机器上创build一个SSH隧道,以便您可以本地连接。

这里有一篇关于如何使用MySQL创buildSSH隧道的好文章。

http://www.howtogeek.com/howto/ubuntu/access-your-mysql-server-remotely-over-ssh/

不要打开3306。

相反,做每一个其他的服务器做的:打开端口22安全的ssh连接,然后一旦login,本地连接到MySQL。

虽然您可以通过非常小心地获得授权并需要SSL来保证身份validation的安全。 对于可能使用的未被发现的漏洞,您没有任何保护措施。

一些SQL客户端有一个SSH隧道选项,这是一个更好的主意。

既然你提到过Navicat,请查看它的HTTP隧道特性。 如果您不明确地命名/定位该隧道端点,并在文件本身上使用HTTP身份validation(除了MySQL身份validation),则可以消除除最有针对性的攻击之外的所有攻击。