2013-10-22 135 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,你必須告訴它。 –