我们有一个运行IIS的网络服务器。我们想运行一个共享博客或其他东西来跟踪信息。由于安全问题,我们希望该部分只能从localhost中查看,因此人们必须远程使用它。
那么,为了重复我的问题,网站的一部分只能从localhost查看吗?
答案 0 :(得分:23)
对于某人在IIS 8
/ Windows 2012
1)在Server Manager
中,转到Manage, Add Roles and Features
,然后转到下一步(转到Server Roles
),向下滚动到Web Server (IIS)
,展开该行,然后展开{{ 1}},最后展开Web Server
。确保已安装 IP和域限制。
2)在Security
中,向下钻取到要保护的文件夹,然后左键单击选择它。在该文件夹的IIS Manager
中,选择 IP和域限制在Features View
中选择Actions
。将Edit Feature Settings
更改为'Access for unspecified clients:'
然后确定。
3)最后转到'Deny'
的{{1}}菜单中。输入服务器的特定IP地址。
现在只允许来自您服务器的请求访问。或者共享该IP地址的任何服务器。因此,在一个小型网络中,办公室可以在该办公室的所有PC之间共享IP地址,因此所有这些PC都可以访问该文件夹。
最后但并非最不重要的是要记住,如果您的网络具有动态IP地址,那么如果该IP发生更改,您将博客管理员文件夹公开给现在正在使用该IP的任何人。此外,新IP地址上的每个人都将无法访问您的文件夹...
答案 1 :(得分:5)
在IIS6中,您可以调出Web的属性,然后单击目录安全性选项卡。单击选项卡中间的按钮以编辑IP和域限制。在此选项卡上将所有计算机设置为拒绝,然后为要允许访问此站点的IP添加例外。
我不知道如何在IIS7上配置它。我看了但是找不到它,如果我找到了,我会编辑这个答案。
答案 2 :(得分:3)
如果有人希望在命令行上执行此操作,这似乎适用于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配置中的功能,所以没有优势直接使用第一个命令进行更改。
答案 3 :(得分:3)
您也可以使用绑定而不是IP限制。如果编辑要限制访问的网站的绑定,则可以选择该站点可用的IP地址。如果您将IP地址设置为127.0.0.1,则该站点仅响应此IP地址,并且此IP地址当然仅在本地计算机上工作。
我已使用IIS 8.5对此进行了测试。
答案 4 :(得分:0)
如果未经授权的用户试图访问它,具体取决于您想要发生的事情。
您可以尝试将特定部分设置为虚拟目录,然后拒绝匿名用户查看。但是,系统会提示他们登录,如果他们可以登录,那么他们就可以看到它。
答案 5 :(得分:0)
根据IIS MMC中的选项,您还可以让某个虚拟目录只能通过某些IP范围访问。您可以阻止除127.0.0.1之外的所有人。但是,我没有尝试过这个。
答案 6 :(得分:0)
您可以授予或拒绝从某些IP到站点或文件夹的站点或文件夹的访问权限。在IIS中,转到相关站点或文件夹的属性。
(1)点击“Diectory Security”选项卡
(2)单击“IP地址和域名限制”框下的“编辑”。
(3)单击“拒绝访问”(这告诉IIS阻止除列出的IP之外的所有IP)
(4)点击“添加...”
(5)点击“单台电脑”
(6)输入127.0.0.1(localhost的IP)
请注意,最好在此处使用IP(如我所述)而不是域名,因为可以使用hosts文件轻松伪造域。
答案 7 :(得分:0)
我同意使用IIS“目录安全性”阻止除127.0.0.1(localhost)之外的所有IP地址的建议。
那就是说,我想知道这种要求远程用户的策略可能更多安全。使用标准IIS身份验证机制而不是在服务器计算机上管理Windows角色和权限会不会更安全(也更简单)?
答案 8 :(得分:0)
如https://stackoverflow.com/a/39870955/2279059中的建议,可以将站点的绑定配置为仅在回送接口上侦听。这使得该站点无法通过网络访问,而不必使用IP地址限制。
要同时支持IPv4和IPv6,请添加两个绑定,一个绑定用于127.0.0.1
,一个绑定用于[::1]
,并将主机名设置为*
,因此IP地址或{{1} },如屏幕截图所示,可以用来访问它:
要以编程方式添加“本地”网站,您可以使用:
localhost
答案 9 :(得分:-1)
您只需将此.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
}