题
我们已经有了一个网络服务器运行IIS。我们想或许一个共有的博客或什么的跟踪信息。因为安全问题,我们希望的那部分可以只看自localhost因此人们必须远在使用它。
因此,要重复我的问题,可以部分的一个网站可以作出的选从localhost仅?
解决方案
在IIS6你可以把性的网络和单击目录安全卡。按一下按钮,在中间标签编辑知识产权和领域的限制。在这个标签设置的所有计算机作为拒绝,然后添加例外IPs你想要允许访问这个网站。
我不确定如何配置,这在IIS7.我看了但找不到它,如果我找到它我编辑这个答案。
编辑: 配置IIS7
- Josh
其他提示
对于某些人在 IIS 8
/ Windows 2012
1)在服务器管理器
中,转到 Manage,Add Roles and Features
,Next,Next(转到 Server Roles
),滚动到 Web Server(IIS)
,展开该行,然后展开 Web Server
,最后展开 Security
。确保已安装 IP和域限制。
2)在 IIS管理器
中,深入查看要保护的文件夹,然后左键单击选择它。在该文件夹的 Features View
中,选择 IP和域限制在操作
中选择编辑功能设置
。更改'访问未指定的客户端:'
到'Deny'
然后确定。
3)最后转到'Add Allow Entry'
在 Action
的菜单中。输入服务器的特定IP地址。
现在只允许来自您服务器的请求访问。或者共享该IP地址的任何服务器。因此,在一个小型网络中,办公室可以在该办公室的所有PC之间共享IP地址,因此所有这些PC都可以访问该文件夹。
最后但并非最不重要的是要记住,如果您的网络具有动态IP地址,那么如果该IP发生更改,您将博客管理员文件夹公开给现在正在使用该IP的任何人。此外,新IP地址上的每个人都将无法访问您的文件夹...
如果有人希望在命令行上执行此操作,这似乎适用于IIS 7 +
%windir%\system32\inetsrv\appcmd.exe set config "Default Web Site" -section:system.webServer/security/ipSecurity /+"[ipAddress='0',allowed='False']" /commit:apphost
%windir%\system32\inetsrv\appcmd.exe set config "Default Web Site" -section:system.webServer/security/ipSecurity /+"[ipAddress='127.0.0.1',allowed='True']" /commit:apphost
我最初想在web.config中执行此操作以简化分发,看起来以下内容可能有效:
<security>
<ipSecurity allowUnlisted="false"> <!-- this line blocks everybody, except those listed below -->
<clear/> <!-- removes all upstream restrictions -->
<add ipAddress="127.0.0.1" allowed="true"/> <!-- allow requests from the local machine -->
</ipSecurity>
</security>
但是因为你需要解锁中央IIS配置中的功能,所以没有优势直接使用第一个命令进行更改。
您也可以使用绑定而不是IP限制。如果编辑要限制访问的网站的绑定,则可以选择该站点可用的IP地址。如果您将IP地址设置为127.0.0.1,则该站点仅响应此IP地址,并且此IP地址当然仅在本地计算机上工作。
我已经使用IIS 8.5进行了测试。
如果未经授权的用户试图访问它,具体取决于您想要发生的事情。
您可以尝试将特定部分设置为虚拟目录,然后拒绝匿名用户查看。但是,系统会提示他们登录,如果他们可以登录,那么他们就可以看到它。
根据IIS MMC中的选项,您还可以让某个虚拟目录只能通过某些IP范围访问。您可以阻止除127.0.0.1之外的所有人。但是,我没有尝试过这个。
您可以授予或拒绝从某些IP到站点或文件夹的站点或文件夹的访问权限。在IIS中,转到相关站点或文件夹的属性。
(1)点击“Diectory Security”标签
(2)单击“IP地址和域名限制”下的“编辑”。帧。
(3)点击“拒绝访问” (这告诉IIS阻止除列出的IP之外的所有IP)
(4)点击“添加...”
(5)点击“单台计算机”
(6)输入127.0.0.1(localhost的IP)
请注意,最好在此处使用IP(如我所述)而不是域名,因为可以使用hosts文件轻松伪造域。
我同意使用IIS“目录安全性”的建议。阻止除127.0.0.1(localhost)以外的所有IP地址。
那就是说,我想知道这种要求远程用户的策略可能更多安全。使用标准IIS身份验证机制而不是在服务器计算机上管理Windows角色和权限会不会更安全(也更简单)?
您只需将此.NET添加到页面顶部即可。
string MyWebServerName = currentContext.Request.ServerVariables["SERVER_NAME"];
if ( MyWebServerName == "127.0.0.1" || MyWebServerName == "localhost" )
{
// the user is local
}
else
{
// the user is NOT local
}