首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MySQL:禁用“绑定地址”设置会带来安全风险吗?

问MySQL:禁用“绑定地址”设置会带来安全风险吗?
EN

Server Fault用户
提问于 2019-02-20 09:08:53
回答 2查看 6.3K关注 0票数 5

我在with应用程序正确连接到MySQL服务器时遇到了问题,为了解决这个问题,我试图注释掉文件my.ini中的设置bind-address。

这似乎解决了问题,但我想知道这是否是一个不安全的问题。这是生产环境的适当设置吗?当然,该环境的访问受到用户/密码的限制?注释掉它和将它设置为bind-address=0.0.0.0有什么区别呢?

EN

回答 2

Server Fault用户

回答已采纳

发布于 2019-02-20 10:46:14

注释掉设置的影响取决于以前设置的bind-address值。

注释掉设置与将其设置为默认值相同。手册将显示默认值:https://dev.mysql.com/doc/refman/8.0/en/server-options.html#option_米舍尔德_绑定地址

bind-address 默认值:*

手册还解释了该设置的含义以及它与使用0.0.0.0的不同之处:

如果地址为*,则服务器在所有服务器主机IPv4接口上接受TCP/IP连接,如果服务器主机支持IPv6,则在所有IPv6接口上接受TCP/IP连接。使用此地址可以在所有服务器接口上同时使用IPv4和IPv6连接。此值是默认值。如果该选项指定多个值的列表,则不允许此值。如果地址为0.0.0.0,则服务器在所有服务器主机IPv4接口上接受TCP/IP连接。如果该选项指定多个值的列表,则不允许此值。

如果您的服务器没有受到限制访问TCP端口3306 (MySQL的默认端口)的防火墙的保护,那么使用*或0.0.0.0将在配置服务器的所有IPv4地址上接受传入连接,并且环回地址127.0.0.1/8和*上的TCP连接还将允许所有传入的IPv6通信量。

通常,只为服务配置最低网络访问权限被认为是良好的安全实践。

在许多情况下,*和0.0.0.0都可能过于宽松,但例如,在一个应该允许具有单个接口/ip地址( 192.0.2.1)的系统上,bind-address = 192.0.2.1、bind-address = 0.0.0.0或bind-address = *之间没有有效的安全差别。

在不需要允许远程MySQL访问(典型的LAMP服务器)的服务器上,建议使用bind-address = ::ffff:127.0.0.1。

票数 7
EN

Server Fault用户

发布于 2019-02-20 09:32:36

说到安全性,向世界公开你的数据绝不是一个好的选择。

谈到如何避免所做的事情,如果您的MySQL在Linux上运行,并且您有SSH访问权限,那么您可以配置一个隧道,而不需要向世界公开MySQL。

这里有一个例子:

代码语言:javascript
复制
ssh -v -N -o ExitOnForwardFailure=yes -o ConnectTimeout=10 -o NumberOfPasswordPrompts=3 \
-i ~/.ssh/yourkey.pem -o TCPKeepAlive=no -o ServerAliveInterval=60 \
-o ServerAliveCountMax=1 \
youruser@yourhost.com -L 3306:127.0.0.1:3306

通过这种方式,您可以将GUI或任何需要连接的应用程序连接到IP 127.0.0.1端口3306,这样就完成了。

如果您不想使用命令行,可以设置大部分图形用户界面,通过SSH隧道连接MySQL

最后,如果您注释掉了bind-address=0.0.0.0,让mysql监听所有IP地址的连接,而不仅仅是localhost (127.0.0.1)

票数 1
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/954848

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档