作为额外的安全层,我使用 IIS 中的“集成 Windows 身份验证”来保护我们的管理工具。
要设置新的用户帐户,我需要进入“计算机管理”->“本地用户和组”->“用户”。
我的问题是:是否可以将特定用户的访问限制到某个 IP 地址。例如,我只希望我的顾问能够从我们的办公室登录?
我尝试过选择用户 -> “属性” -> “拨入” -> “分配静态 IP 地址”,但没有用。我还需要更改其他内容吗?
答案1
你可以使用 URL 重写器来实现这一点,例如免疫学与免疫学研究所。
免疫学与免疫学研究所提供示例如何根据远程机器的 IP 地址阻止请求。
# Iirf.ini
#
# ini file for blocking by IP address
#
RewriteLogLevel 1
RewriteLog c:\inetpub\iirfLogs\Iirf
RewriteEngine ON
StatusUrl /iirfStatus
IterationLimit 5
RewriteCond %{REMOTE_ADDR} ^24\.132\.226\.94$ [OR]
RewriteRule ^/(.*)$ /$1 [F]
我认为你正在做的是允许基于 IP 地址,所以..反过来。
# Iirf.ini
#
# ini file for allowing requests by IP address range
#
RewriteLogLevel 1
RewriteLog c:\inetpub\iirfLogs\iirf
RewriteEngine ON
StatusUrl /iirfStatus
IterationLimit 5
# If the IP address is not in the specified range, return 404
# (NF = Not Found)
RewriteCond %{REMOTE_ADDR} ^(?!24\.132\.(\d+)\.(\d+))
RewriteRule ^/.*$ - [NF]
# If URL processing has gotten this far, do nothing (no rewrite),
# which means, implicitly, allow the request.
如果您还想允许经过身份验证的用户访问,则必须修改该 ini 文件以考虑身份验证 cookie 等。
答案2
您可以使用 Windows 防火墙将 Web 服务器端口上的流量限制到您的本地办公网络。您也可以直接在 IIS 中设置 IP 限制。但在这两种情况下,限制都是针对所有人的。无法使其仅适用于某些用户。可能是否有第三方工具可以实现这一点。但如果有的话,我从未听说过。
如果您控制管理工具的源代码,那么自己添加对此的支持应该不会太难。登录时,您可以检查客户端 IP 地址。如果它不在您的网络中并且是受限制的用户之一,您只需将其引导到错误页面即可。
答案3
您可以尝试拥有多个站点,而不是一个。“内部使用”站点对办公室有 IP 限制,但允许所有用户。“外部站点”仅允许某个 Windows 组中的用户。您可以通过文件系统上的 NTFS 权限来强制执行此操作。
当然,这意味着您需要维护网站的两个副本,但更新后应该很容易同步它们。