配置允许 SQL Server 通过 CloudFlare 连接?

配置允许 SQL Server 通过 CloudFlare 连接?

我已经知道将 SQL Server 数据库暴露在互联网上的风险,但请看一下我的情况:我有两个 SQL Server 实例:生产(默认实例 SQLEXPRESS)和开发(SQLEXPRESSDEV)。我已禁用AdministratorWindows 帐户和saSQL Server 帐户。该服务器还运行着一些网站。编辑:服务器运行的是 MS Windows 2008 R2,并且两个实例都是 SQL Server 2014 Express。

生产实例是保密的,只能使用 Windows 身份验证登录。现在我想公开 Dev 实例,但不想公开 IP 地址。因此,我为网站使用了 Cloudflare 服务,并打算创建 DNS 记录以sql.mydomain.com访问 SQL Server。

但是,我不知道该怎么做。根据 CloudFlare,有那些可以转发的端口,我打算使用端口 2086,但我知道我永远不需要该端口。我尝试将 SQL Native Client 配置和 SQL Server 网络配置中的 TCP/IP 端口设置为 2086,并将该端口添加到防火墙规则的入站和出站。在我自己的电脑上,我尝试使用 进行连接sql.domain.com,2086,但收到此消息:

标题:连接到服务器

无法连接到 sql.domain.com,2086\SQLEXPRESSDEV。

- - - - - - - - - - - - - - - 附加信息:

已成功与服务器建立连接,但在登录前握手期间发生错误。(提供程序:TCP 提供程序,错误:0 - 远程主机强制关闭现有连接。)(Microsoft SQL Server,错误:10054)

如需帮助,请点击: http://go.microsoft.com/fwlink?ProdName=Microsoft%20SQL%20Server&EvtSrc=MSSQLServer&EvtID=10054&LinkId=20476


远程主机强制关闭现有连接

是因为 CloudFlare 代理吗?有什么办法可以实现这一点(隐藏 IP 并仅公开一个实例)?我将生产实例上的 TCP/IP 设置保持为禁用状态。

答案1

该页面指定了每个端口上可用的协议,仅限 HTTP 和 HTTPS。我认为您无法通过 CloudFlare 的代理访问数据库。

答案2

您需要在防火墙后面设置适当的内部网络,以便将服务器与互联网正确隔离。

您可能能够使用 Windows 防火墙进行一些限制,但这并不确定。

您无法使用 CloudFlare 进行任何 IP 级别的过滤,它仅用于过滤 HTTP / HTTPS 协议流量。

相关内容