【问题标题】:IIS 7.5 Restrict IPs on a Subdirectory, with Proxy detectionIIS 7.5 使用代理检测限制子目录上的 IP
【发布时间】:2016-09-19 19:16:27
【问题描述】:

我有一个旧的 IIS Web 服务器 (2008 R2),它托管了一些 WordPress 网站。我需要将对 WordPress(/wp-admin 目录)的登录功能的访问限制为仅几个已知的 IP 地址。使事情复杂化的事实是,该 Web 服务器位于 F5 负载平衡器后面,该负载平衡器覆盖了真实的客户端 IP(尽管我通过普通 XFF 标头获得了真实的 IP)。

据我了解,有 IP 地址和域限制 IIS 模块可以像我需要的那样允许子目录的黑名单/白名单,但它不够聪明,无法处理代理/负载均衡器客户端 IP 转换。然后是 Dynamic IP Restrictions IIS 模块,它足够智能,可以处理代理/负载平衡器客户端 IP 转换,但它无法处理在子目录上创建规则(仅网站级别的粒度)。

在 IIS 中是否有处理此类限制的已知方法?我确信我可以在防火墙或 L/B 上进行限制,但如果可能的话,我会尝试在 IIS 中完成。

【问题讨论】:

    标签: ip iis-7.5 whitelist


    【解决方案1】:

    看起来 URL 重写模块是满足此需求的一种相当直接的方法。类似下面的规则将完成限制网站下的某些 URL(例如,如果需要,使用的模式只能抓取某个目录)。

            <rule name="wordpress-login-restrictions" enabled="true" stopProcessing="true">
                    <match url="(^wp-admin)|(^wp-login.php)" />
                    <conditions logicalGrouping="MatchAll" trackAllCaptures="false">
                        <add input="{HTTP_X_FORWARDED_FOR}" pattern="(^55\.55\.555\.555$)" negate="true" />
                    </conditions>
                    <action type="CustomResponse" statusCode="404" subStatusCode="44" statusReason="File or directory not found" statusDescription="The resource you are looking for might have been removed, had its name changed, or is temporarily unavailable." />
            </rule>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-04-10
      • 1970-01-01
      • 2012-12-21
      • 1970-01-01
      • 2011-06-11
      • 1970-01-01
      • 2014-07-03
      • 1970-01-01
      相关资源
      最近更新 更多