如何允许 DMZ 服务器受信任地远程访问 LAN SQL 实例?

如何允许 DMZ 服务器受信任地远程访问 LAN SQL 实例?

我们的设置是,我们的 Web 服务器托管在 DMZ 中的一台机器上,该机器位于面向公众的防火墙后面,防火墙的典型端口为 80 和 443,用于将 Web 流量导向我们的 Web 服务器。DMZ 不受域控制。

我们的域控 LAN 内还有几个 DB 服务器,这些服务器受到 DMZ 防火墙的保护,并且典型端口 1433 处于打开状态,以允许网站访问 SQL 服务器。

目前,它可以正常工作,但只有当我们网站的连接字符串包含访问数据库的用户/密码时才有效。这并不理想。我想要做的是从 SSMS 内部授予网站的应用程序池身份对数据库的访问权限,并在我们的连接字符串中使用受信任的连接。但是,我无法理解哪种用户帐户可以执行此操作。

首先,我尝试在 LAN 中创建一个域用户。将 DOMAIN\User 和密码放入 IIS 中的应用程序池标识中似乎可以正常工作,并且我还能够将域用户添加为 SQL 登录名。但是,当我尝试运行该应用程序并连接到数据库时,发生了以下错误:

在建立集成安全性连接时,SSPI 握手失败,错误代码为 0x8009030c,状态为 14;连接已关闭。原因:AcceptSecurityContext 失败。Windows 错误代码指示失败的原因。登录尝试失败 [客户端:]

错误:18452,严重性:14,状态:1。

登录失败。登录来自不受信任的域,无法与 Windows 身份验证一起使用。[客户端:]

使用 Web 应用程序输出其当前用户名时,我发现应用程序标识已从域帐户更改为 Web 服务器上的(不存在的)帐户,而不是我放入 IIS 中应用程序池标识中的预期“DOMAIN\WebAppUser”,它输出的是“SERVER\WebAppUser”,我相信这就是连接到数据库时出现错误消息的原因。

然后,我尝试在 Web 服务器上创建一个本地帐户,并在 SSMS 中授予该访问权限。但是,SQL 无法找到我在 Web 服务器上创建的用户,我猜想这是因为它位于 SQL 服务器所在的 LAN 区域之外。

我读过其他帖子和文章,它们表明我们可能需要在 DMZ 空间和 LAN 空间之间建立信任关系,这意味着为我们的 DMZ 设置域控制器。我更愿意避免此解决方案增加的成本/复杂性。

有没有办法授予用户完成此操作所需的网络访问权限?谢谢。

答案1

它并不像你想象的那样工作。你可以让 IIS 应用程序池在未加入域的计算机上作为域帐户运行。此外,受信任的帐户涉及加入域的计算机。你说得对,你需要在两个域之间配置信任。

不管怎样,将 SQL 凭据放在该框中并不像您想象的那么不安全。安全性将归结为您在 SQL 中授予的权限以及 Web 应用程序内部的安全性。

相关内容