Sql-Server

如何使用 IPSec 加密與 SQL Server 的連接?

  • November 21, 2019

SQL Server OLEDB 提供程序可以通過連接字元串中的選項使用 SSL 加密連接到 SQL Server

對數據使用加密

指定數據在通過網路發送之前是否應該加密。

有效值為“true”和“false”。預設值為“假”。

正如微軟指出的那樣,這有很多問題

  • 它需要獲得有效的 SSL 證書
  • 它需要在伺服器上安裝 SSL 證書
  • 它需要更改連接字元串
  • 這不是我要問的

IPSec

幸運的是,微軟建議可以使用 IPSec作為替代方案:

SQL Server 數據可以在傳輸過程中使用 IPSec 進行加密。IPSec 由客戶端和伺服器作業系統提供,不需要 SQL Server 配置。有關 IPSec 的資訊,請參閱您的 Windows 或網路文件。

因為即使客戶端和伺服器都在同一個區域網路上:

在此處輸入圖像描述

我們不希望任何擁有 WireShark、集線器、處於惡意模式的 PC 或可以監控流量的交換機的任何人都能看到流量。

問題是:你是怎麼做到的?

研究努力無關緊要

在客戶端機器上,我們想要配置一個需要 IPSec 連接到 SQL Server 的策略(例如埠 1433)。從具有高級安全性的 Windows 防火牆中

  • 創建新的出站防火牆規則

在此處輸入圖像描述

  • 對於 IP 埠:

在此處輸入圖像描述

  • 用於目標 TCP 埠 1433

在此處輸入圖像描述

  • 允許連接,如果它是安全的

在此處輸入圖像描述

  • 結束

在此處輸入圖像描述

缺點是客戶端現在無法連接到伺服器:

在此處輸入圖像描述

獎金閱讀

在您制定連接安全規則之前,您不能使用“如果它是安全的,則允許此連接”。這需要在兩個系統上定義並具有匹配的設置,就像設置標準 ipsec VPN 隧道一樣。

以下是如何為這個案例創建一個,一步一步。

  1. 打開 Windows Defender 防火牆管理單元 (wf.msc)
  2. 打開“連接安全規則”選項卡
  3. 右鍵點擊中心面板並選擇“新建規則”
  4. 選擇“伺服器到伺服器”模板。
  5. 在端點 1 中輸入本地電腦 IP 地址
  6. 在端點 2 中輸入遠端電腦 IP 地址。
  7. 作為一般規則,將連接安全規則設置為要求雙向驗證。
  8. 選擇一種方法來驗證此連接。
  • 如果您的兩個系統都可以訪問共享的內部 CA / kerberos,這通常是最好的選擇。
  • 如果做不到這一點——尤其是對於內部機器的 DMZ 來說——預共享密鑰是下一個最佳選擇。這是在高級身份驗證設置下設置的。
  • 電腦證書以外的任何內容都在高級對話框中。
  • 您可能只需要在此處使用“首次身份驗證”方法。

這個過程需要在你的兩台主機上重複。

引用自:https://serverfault.com/questions/803575