2013-10-22 92 views
0

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

我打开了Windows防火墙和增加了入站规则,它说,只允许来自特定IP地址(我的应用程序服务器的ip)在端口1433连接,并且不允许远程连接。

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

任何想法?

+0

以下是SQL 2008的端口列表:http://support.microsoft.com/kb/968872/de –

+0

@DavinTryon:没有工作。该脚本创建一个防火墙规则以允许所有连接。我的问题是:如何通过创建防火墙规则来允许本地机器(通过LAN)? – Taher

回答

0

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

1

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

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

显然,尽管有暴露给外界一个SQL Server是一个没有没有,但我猜你不负责。

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连接(程序规则)”,然后在向导上单击完成。

发现在入站规则标签规则。打开规则的“属性”对话框,然后转到“范围”选项卡。您可以规定要在远程IP地址框中访问该框的计算机的服务器IP,子网等。

+0

脑,这个防火墙规则会阻止所有的匿名IP连接到SQL服务器。因为我做了相同的测试,但我仍然可以从多个IP访问SQL服务器(这不在范围列表中)以下是我所尝试的:http://stackoverflow.com/questions/19640819/protect-sql-server - 来自黑客 – Vicky

+0

是的 - 一定要查看上面的最后一部分,并且只将您想要允许的IP /子网添加到远程IP地址框中。我会尝试禁用并重新启用防火墙,以确保它能够接受更改。请记住,防火墙不知道本地或公共的IP,你必须告诉它。 –