【发布时间】: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