Cloudflare - IIS 请求过滤/UrlRewrite:如果自定义 headers (CF-Connecting-IP) 包含值(特定 IP)则允许请求
Cloudflare - IIS Request Filtering / UrlRewrite: Allow requests if a custom headers (CF-Connecting-IP) contains a value (Specific IP)
我有这样的情况,我只想在用户连接到 VPN 时限制对网站的访问。但问题是 cloudlfare 从不同的 IP 而不是实际的客户 IP 发送请求。经过搜索,我知道 cloudflare 在 CF-Connecting-IP
header 中发送客户 IP。
现在,我想使用它在 IIS 中过滤我的请求。我尝试了请求过滤和 URL 重写,但似乎无法正确配置它。
有知道怎么实现的请帮忙
谢谢
我使用 URL 重写规则找到它。
我做的是这样的:
- 添加新的空白规则。
- 在匹配 URL 部分
请求URL:匹配模式
使用:正则表达式
模式:
(.*)
- 在条件部分 -> 添加新规则 -> 输入:
{ALL_HTTP}
-> 检查输入字符串是否:与模式不匹配 -> 模式:HTTP_CF_CONNECTING_IP:\b(1\.2\.3\.4|ip2|ip3)\b
- 在操作部分 -> 操作类型:中止请求
应用此方法后,每个未经过身份验证的服务器都会收到 520 错误,当然您可以根据需要更改表达式。
希望这对某人有所帮助。
我有这样的情况,我只想在用户连接到 VPN 时限制对网站的访问。但问题是 cloudlfare 从不同的 IP 而不是实际的客户 IP 发送请求。经过搜索,我知道 cloudflare 在 CF-Connecting-IP
header 中发送客户 IP。
现在,我想使用它在 IIS 中过滤我的请求。我尝试了请求过滤和 URL 重写,但似乎无法正确配置它。
有知道怎么实现的请帮忙
谢谢
我使用 URL 重写规则找到它。
我做的是这样的:
- 添加新的空白规则。
- 在匹配 URL 部分
请求URL:匹配模式
使用:正则表达式
模式:
(.*)
- 在条件部分 -> 添加新规则 -> 输入:
{ALL_HTTP}
-> 检查输入字符串是否:与模式不匹配 -> 模式:HTTP_CF_CONNECTING_IP:\b(1\.2\.3\.4|ip2|ip3)\b
- 在操作部分 -> 操作类型:中止请求
应用此方法后,每个未经过身份验证的服务器都会收到 520 错误,当然您可以根据需要更改表达式。
希望这对某人有所帮助。