IPSec

IPSec

SQL Server OLEDB 提供程序可以使用连接字符串中的选项与 SQL Server 进行 SSL 加密连接

对数据使用加密
指定在通过网络发送数据之前是否应对其进行加密。
有效值为“true”和“false”。默认值为“false”。

正如微软指出的那样,存在许多问题

  • 它需要获取有效的 SSL 证书
  • 它需要在服务器上安装 SSL 证书
  • 它需要改变连接字符串
  • 这不是我要问的

IPSec

幸运的是,Microsoft 建议可以使用 IPSec作为备选:

可以使用 IPSec 在传输过程中加密 SQL Server 数据。IPSec 由客户端和服务器操作系统提供,不需要 SQL Server 配置。有关 IPSec 的信息,请参阅 Windows 或网络文档。

因为即使客户端和服务器都在同一个局域网上:

在此处输入图片描述

我们不希望任何拥有 WireShark、集线器、处于混杂模式的 PC 或可以监控流量的交换机的人能够看到流量。

问题是:你怎么做呢?

研究努力并不重要

在客户端计算机上,我们要配置一个策略,要求使用 IPSec 连接到 SQL Server(例如端口 1433)。从内部高级安全 Windows 防火墙

  • 创建新的出站防火墙规则

    在此处输入图片描述

  • 对于 IP 端口:

    在此处输入图片描述

  • 对于目标 TCP 端口 1433

    在此处输入图片描述

  • 如果连接安全,则允许连接

    在此处输入图片描述

  • 结束

    在此处输入图片描述

缺点是客户端现在无法连接到服务器:

在此处输入图片描述

额外阅读

答案1

除非您已制定连接安全规则,否则您无法使用“如果连接安全则允许此连接”。这需要在两个系统上定义并具有匹配的设置,就像设置标准 ipsec VPN 隧道一样。

下面逐步介绍了如何为该用例创建一个。

  1. 打开 Windows Defender 防火墙管理单元(wf.msc)
  2. 打开“连接安全规则”选项卡
  3. 右键单击中心面板并选择“新规则”
  4. 选择‘服务器到服务器’模板。
  5. 在端点1中输入本地计算机IP地址
  6. 在端点2中输入远程计算机IP地址。
  7. 作为一般规则,设置连接安全规则以要求双向进行身份验证。
  8. 选择一种方法来验证此连接。
    • 如果您的两个系统都可以访问共享的内部 CA/kerberos,这通常是最好的选择。
    • 如果做不到这一点(尤其是对于 DMZ 到内部机器),预共享密钥是下一个最佳选择。这是在高级身份验证设置下设置的。
    • 除计算机证书之外的任何其他内容都位于高级对话框中。
    • 您可能只需要在这里使用“第一次身份验证”方法。

您需要在两台主机上重复此过程。

答案2

我认为唯一的选择是在您的 SQL 服务器上设置 IPSec VPN 服务器,并让您的客户端首先创建到该服务器的隧道,然后流量才能流动。这是一个混乱的解决方案,但文档中提到 IPSec 由客户端和服务器操作系统提供时指的是这个。

您需要有一个由 VPN 系统发出 IP 的辅助网络设置,并将您的 SQL 服务器重新绑定到该 IP 范围,这样只有连接到 VPN 的人才能连接 SQL 服务器。

相关内容