在SQL Server上阻止远程连接并仅允许本地连接

时间:2013-10-22 12:28:02

标签: sql-server security

我在生产中的SQL服务器日志中看到多次登录尝试失败。我相信有人正在尝试使用“sa”凭据登录。我已禁用“sa”登录。我的SQL服务器在互联网上(公共IP),我想创建一个防火墙规则,只允许本地连接,即我在LAN上的APP服务器。

我打开了Windows防火墙,并添加了一个入站规则,该规则允许仅允许来自特定IP地址(我的应用服务器ip)的端口1433上的连接,并且不允许远程连接。

但是现在,我的app服务器只能连接到sql server。

有什么想法吗?

6 个答案:

答案 0 :(得分:2)

如果不使用网络防火墙和ACL等外部方法,则可以在本地计算机上使用Windows防火墙。我发现只是打开端口很麻烦 - 而且它不会限制通过该端口进入的不需要的流量。我在Windows防火墙中使用程序规则取得了成功。

首先在具有高级安全性的Windows防火墙中创建新的入站规则。

  1. 在“新建入站规则向导”中,选择“程序”单选按钮,然后单击“下一步”。
  2. 在下一个屏幕上,选择“此程序路径:”并在计算机上输入SQL Server的位置 - 例如,%ProgramFiles%\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\Binn\sqlservr.exe
  3. 选择“允许连接”,然后单击“下一步”。
  4. 不对“用户”步骤进行任何更改,请单击“下一步”。
  5. 保留“配置文件”页面上的默认设置,单击“下一步”。
  6. 在“名称”页面上,输入“SQL Server连接(程序规则)”,然后单击向导上的“完成”。
  7. 在“入站规则”选项卡中查找规则。打开规则的“属性”对话框,然后转到“范围”选项卡。您可以在远程IP地址框中规定要访问该计算机的计算机的服务器IP,子网等。

答案 1 :(得分:1)

好的,这是可以解决的。如果转到服务器上的防火墙控件(控制面板 - 管理工具),您将看到所有入站防火墙规则的列表。

在该列表中,您应该能够在端口1433上找到SQL Server。双击打开该规则,然后转到“范围”选项卡。在那里,你会找到一些方框来规定哪些本地IP可以穿过墙壁,还有一个允许远程IP通过墙壁的方框。使用它,并与您的网络管理员交谈,您应该能够提供一个有效IP列表(或者可能是一个IP通配符,如191.100.100。*),它将阻止不必要的入侵。

显然,让SQL Server暴露在外面是一个禁忌,但我猜你不应该对此负责。

答案 2 :(得分:1)

对不起,如果我参加聚会迟到了,

但我有同样的情况,我已经尝试过一些像上面这样的公共解决方案。然后我发现了我的问题,最近我一直在强化我的服务器并关闭了 TLS 1.0,不幸的是它已被 sql server 使用。所以我反应 TLS 1.0 并检查服务 MSSQLSERVER 然后它工作。检查链接:enter link description here

谢谢。

答案 3 :(得分:0)

我通过在允许的地址中输入本地子网的整个IP范围来修复此问题,并且我能够从我的APP服务器访问数据库服务器并阻止所有其他远程连接。

答案 4 :(得分:0)

动态数据屏蔽的工作是保护个人身份数据。动态数据屏蔽不需要任何额外的服务器资源。

答案 5 :(得分:0)

开始>运行:create tablespace <tablespace-name> add datafile 'tablespace-name.ibd'

按照屏幕快照中的步骤操作,外部计算机将无法访问SQL Server应用程序。

enter image description here