【问题标题】:SQL Server Remote Connection enable for specified IP Address为指定的 IP 地址启用 SQL Server 远程连接
【发布时间】:2019-12-30 09:30:52
【问题描述】:

我有一个 Windows Server 2016。在这个服务器上我安装了一个 SQL Server 2016。

我必须配置 sql server 以允许远程连接,因为有一些数据库与我们的本地数据库同步。

我通过打开 SQL Server 配置管理器、选择 SQL Server 网络配置并启用 TCP/IP 协议来做到这一点。

但是,这会导致安全漏洞。 我意识到 SQL 日志文件 C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\Log 的大小在不断增加。

通过分析日志文件,我发现有一些 IP 地址不断尝试使用错误的密码连接(每分钟 15 次)。

由于我需要保持 TCP/IP 协议打开,我尝试向防火墙添加入站防火墙规则,但它并没有改变任何内容。

首先,我尝试禁用 TCP/IP 并授权来自已定义 IP 的连接。它没有用。 然后,我尝试启用 TCP/IP 并阻止任何 IP 的端口 1433,但它没有阻止。我可以从本地电脑连接。

简单地说,如果我启用 TCP/IP,远程连接将启用到任何 IP。如果我禁用 TCP/IP,远程连接将被禁用到任何 IP。它不考虑防火墙规则。

有没有办法为特定 IP 地址启用远程连接?

这是我阻止 1433 端口的方法(但我总是能够通过 SSMS 从本地计算机(位于另一个域中)进行连接:

【问题讨论】:

  • 如果您禁用 TCP/IP,那么是的,将无法建立任何连接。听起来您没有正确设置防火墙规则。通常你要么打开防火墙,它会自动拒绝任何外部连接,只允许那些在允许列表中的连接,要么你为特定 IP 创建一个 ALLOW 规则,然后为 all IP 创建一个 DENY 规则优先级较低;因此,一个有效的 IP 将被允许连接,因为它在拒绝之前通过了一条规则。它将进一步显示您在防火墙规则中设置的设置,因为那是设置错误的地方。
  • 感谢您的回复,我会发布我在 FireWall 中所做的事情。所以我必须启用 TCP/IP 并添加一个入站规则以只接受指定的地址,对吧?

标签: sql-server firewall windows-server-2016


【解决方案1】:

我最近遇到了同样的问题,并通过在 Windows 防火墙中设置自定义规则来解决它:

1) 开启TCPIP,否则无法连接

2) 那么你应该如下使用windows防火墙:

  • 首先阻止任何入站连接的端口 1433
  • 然后将自定义规则添加到端口 1433,您可以为其授权仅来自特定 IP 地址的连接,您可以按照步骤explained in this link

这是我的防火墙设置截图

这是我的端口阻塞设置的截图

【讨论】:

  • 感谢您的回复。但是防火墙规则不起作用。我发布了我为阻止 1433 端口所做的事情。有什么想法吗?
  • 我添加了我的防火墙设置截图
  • Kemal,问题是我无法阻止 1433 端口。我认为您添加的内容是为了超越 IP 地址。你有阻止端口的规则吗?我分享了这张图片来展示我是怎么做的。但它不起作用。
  • 我尝试了两种方法,结果很好:1-阻止1433端口2-或删除与1433相关的任何规则:都允许阻止从远程域访问sql。然后当然添加特定IP的自定义规则
  • 我应该重新启动服务吗?因为,在我的服务器中,它根本不会阻塞。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-07-18
  • 2012-07-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多