经过安全审查后,我将拆分当前位于企业域中单台计算机上的 Windows 2008 Server 应用程序的层。我想将 IIS 7 Web UI 移到域中的新计算机,以便用户可以使用他们的 AD 帐户对其进行身份验证,并将其余部分(应用程序层和数据库服务器)保留在当前计算机上,但将其从域中移出并置于防火墙后面。
应用层服务需要在域服务器上的各种共享上创建文件。以前,这些服务以具有共享访问权限的特殊域用户身份运行。现在这不可能了。
有没有办法允许非域用户/机器访问域服务器上的共享文件夹(和一般资源)?
答案1
您可以向非域计算机授予对域资源(即共享)的访问权限...前提是该计算机上的服务使用远程凭据访问共享:
- 域用户凭据或
- 本地用户(在域计算机上)的凭据
第二种方法是最安全的方法(位于应用层机器上的远程攻击者无法访问域帐户(可以访问整个域),而只能访问其具有本地帐户的域机器。
但是您无法简单地设置这样的用户来运行应用服务。您的应用程序必须支持根据所连接的服务器指定不同的凭据。
因此,如果支持此功能 => 假设您的应用层机器 APPTIER 位于 MSHOME 工作组中,并且您的共享是 MYDOMAIN 域中的 \\SERVER1\share1 和 \\SERVER2\share2:
- 在 SERVER1 上创建具有 share1 访问权限的本地帐户 apptieracct
- 在 SERVER2 上创建具有 share2 访问权限的本地帐户 apptieracct
- 在 APPTIER 上,将应用程序配置为使用 SERVER1\aptieracct 访问 \\SERVER1\share1 和 SERVER2\aptieracct 访问 \\SERVER2\share2
答案2
有人在这里回答了类似的问题
以下是所给答案的剪切/粘贴
要做您想做的事情,您必须在托管文件的计算机上启用“Guest”帐户,然后授予“Everyone”组您想要的访问权限。
“Guest” 是一个用户帐户,但其启用/禁用状态被操作系统解释为布尔值“是否允许未经身份验证的用户连接?”权限仍然控制对文件的访问,但通过启用 Guest,您可以开放很多权限。
顺便说一句,不要在域控制器计算机上执行此操作,因为您将成为所有 DC 上的访客......
答案3
除了 Phil 的回答和 Chris 的评论外,还提到启用来宾帐户不是一种选择(我同意这一点 - 来宾应该绝不启用此功能后,我必须说:不,单靠 Microsoft Windows 是不可能达到预期结果的。
不过,也许可以使用第三方产品来构建解决方案。考虑以下粗略的想法:
在域成员上设置 SSH 隧道端点。如果我们假设 SSH 服务器允许使用用户名和密码登录,它可以将该信息传递给 DC - 这样您就可以从非域计算机连接并使用用户名和密码登录。
答案4
如果您希望任何人都能读取文件,请将 EVERYONE 条目添加到文件夹和 SHARE 权限(始终同时执行这两项)。这样,任何人都可以读取文件。当然,您可以让他们始终进行身份验证,因为客户端计算机不必位于同一个域中,甚至不必位于访问需要身份验证的共享的域中。
由于您需要在文件服务器上进行额外的安全保护,因此请启用 Windows 防火墙,并且仅允许来自“受信任”的 IP 地址的所有 CIFS/SMB 访问。