仅限 Apache 2.4 白名单 Cloudflare

Posted

技术标签:

【中文标题】仅限 Apache 2.4 白名单 Cloudflare【英文标题】:Apache 2.4 Whitelist Cloudflare only 【发布时间】:2017-02-14 13:02:37 【问题描述】:

我一直在努力让它适用于 Apache 2.4

我手动安装了 Apache 2.4、php 5.6、mysql 和 MySqli。 (因为我只用过MySqli,所以我没有遇到过mysql的问题)

我曾尝试仅将 cloudflare 列入白名单以访问我的网站,但我没有任何运气,而且由于他们的 IP 列表并不能完全满足我的需求,我无法将它们列入白名单。

我知道我不应该只将 cloudflare 列入白名单,但我不小心将 IP 分享给了某人,然后他们将其传播开来,我不希望他们直接使用该 ip,我希望他们使用 cloudflare。

我已尝试将 cloudflare 列入白名单,但没有奏效:

<Directory "C:/Apache24/htdocs/test"> Options Indexes FollowSymLinks MultiViews AllowOverride all Require all denied Allow from 103.21.*.* Allow from 103.31.*.* Allow from 103.22.*.* Allow from 104.16.*.* Allow from 108.162.*.* Allow from 131.0.*.* Allow from 141.101.*.* Allow from 162.158.*.* Allow from 172.64.*.* Allow from 173.245.*.* Allow from 188.114.*.* Allow from 190.93.*.* Allow from 197.234.*.* Allow from 198.41.*.* Allow from 199.27.*.* </Directory>

我还没有完全理解从 2.2 到 2.4 的跳跃。有人可以帮帮我吗?

【问题讨论】:

【参考方案1】:

如果您安装了 Mod_Cloudflare Apache 扩展,您只需将以下内容添加到您的 Apache 配置中,所有非 Cloudflare 流量都将被禁止:

DenyAllButCloudFlare

进一步阅读:

Logging Real Visitor IP Addresses: mod_cloudflare for Apache httpd

【讨论】:

我如何为 Debian 8 Jesse 32 位获得这个? 在此处查看 Debian 说明:cloudflare.com/technical-resources/#mod_cloudflare 它只存在于 32 位,但这不是问题吗? 那里列出了 64 位二进制文​​件,但也有使用 Apache 本身运行 apxs 或 apxs2 命令自行构建模块的说明。【参考方案2】:

虽然我不能 100% 确定这个答案是否适合您的问题,但我会分享它以防其他人想要不同的解决方案。

Cloudflare 在HTTP_CF_CONNECTING_IP 中传递一个真实的 ip。所以我们可以设置重写(使用 mod_rewrite)。所以我们不需要将cloudflare的ips列入白名单,接受所有ip并检查HTTP_CF_CONNECTING_IP。如果没有匹配,我们拒绝。所以wordpress conf中的配置如下。该示例显示任何不以 17.133.218 开头的真实 IP 都被拒绝访问。

    <Directory /var/www/wordpress>
            Options -Indexes
       <IfModule mod_rewrite.c>
            RewriteEngine On
            RewriteBase /
            RewriteCond %REQUEST_FILENAME !-f
            RewriteCond %REQUEST_FILENAME !-d
            RewriteRule . /index.php [L]
    
            RewriteCond %HTTP:CF-CONNECTING-IP !^17\.133\.218\.
            RewriteRule $ /maintenance [R=302,L]
       </IfModule>
    </Directory>

【讨论】:

以上是关于仅限 Apache 2.4 白名单 Cloudflare的主要内容,如果未能解决你的问题,请参考以下文章

Apache Pig 如何在加载功能中加入白名单或黑名单?

使用 Apache 将 CORS 列入白名单

403 禁止,仅限 CakePHP - PHP-FPM - Apache 2.4 和 mod_proxy_fcgi

ini 使用Apache保护特定位置仅允许一系列IP(和/或域)[白名单IP]

一道面试题引发的思考第一篇-文件上传白名单绕过

一道面试题引发的思考第一篇-文件上传白名单绕过