Cloudflare 的反向代理
Posted
技术标签:
【中文标题】Cloudflare 的反向代理【英文标题】:Reverse Proxy of Cloudflare 【发布时间】:2016-04-11 08:53:47 【问题描述】:我几天前使用 CloudFlare 设置了 DNS 服务器。之后我发现 CloudFlare 提供了反向代理。在“off-the-orange”状态下,我可以通过 ssh 连接服务器,但在“橙色”状态下,它不是。
现在我知道我必须在“off-the-orange”中注册其他 A-Record,例如“ssh.domain.com”,然后我才能得到我想要的。但是我不确定它是否正确。
有没有其他方法可以通过其他协议连接服务器?
【问题讨论】:
【参考方案1】:不,没有其他方法,这正是 Cloudflare 期望您做的,请参阅:How do I SSH? 和 DDoS Prevention: Protecting The Origin。 Cloudflare 不提供没有 DDoS 保护的反向代理。
如果您只有一个域,则为实际服务器添加子域A记录,指向服务器IP。然后为受保护的网站添加 CNAME。 Cloudflare 使用 CNAME 扁平化,因此可以拥有像 my-domain.com -> actual.my-domain.com
这样的 CNAME。
该设置具有安全隐患:如果有人发现子域,它会暴露真实 IP 地址,攻击者可以绕过 Cloudflare 保护。
Cloudflare DNS 对它们的响应方式非常严格。他们不会泄漏任何东西,您必须明确知道域和记录类型才能获得答案。 IE。 dig
my-domain.com ANY
不会放弃任何东西,您必须要求记录类型:dig my-domain.com A
返回 Cloudflare 代理 IP。显然,他们也不回复AXFR request,因此从 Cloudflare DNS 获取实际 IP 的唯一方法是暴力破解。我感觉 Cloudflare 可能会检测并阻止此类尝试。
当然,您不想仅仅依靠默默无闻。如果 IP/子域被暴露,你可以做一些事情来保护你的服务器:
限制 ssh 连接 (ufw tutorial) 配置您的 HTTP 服务器以仅响应所需的主机名,即。my-domain.com
可能还有 www.my-domain.com
(nginx example)
另外,您可以拒绝来自Cloudflare Network 之外的 HTTP(s) 连接。
【讨论】:
OP 可能已经得到了他的答案,但我有笔记,所以我想我不妨发表一下。我不记得在任何地方看到过明确的答案。【参考方案2】:CloudFlare 仪表板的 DNS 选项卡上的“橙色云”图标表示发送到该地址的所有 HTTP/HTTPS 请求都将通过 CloudFlare 的反向代理系统转发。这意味着所有连接实际上都会访问 CloudFlare 的服务器,然后 CloudFlare 将“代理”连接并从您的网络服务器中提取页面。
当您通过 CloudFlare 代理连接时,不会在客户端和您的实际 Web 服务器之间创建直接连接。如果您有一个“A 记录”用于 HTTP 请求以外的目的,则需要创建一个没有“橙色云”图标的新记录。
如何创建新记录:
-
选择您要为其创建新记录的网站。
选择“DNS”标签。
选择您要创建的记录类型。
输入您要创建的子域或记录名称。
输入您希望将此记录指向的详细信息或 IP。
示例:
如果您创建一条新记录(如 sshdirect.example.com)并将其指向您服务器的 IP,并确保云图标为灰色。然后,您可以尝试连接到该主机名而不是标准主机名。
【讨论】:
谢谢,但我已经知道了。我的问题是“还有其他方法吗?”你能推荐一下吗? @SeongHyeonPark 您是否正在寻找一种方法来仍然能够以主机名的形式输入您的根域,但是否将其解析为与您的标准 A 记录不同的不同 IP?以上是关于Cloudflare 的反向代理的主要内容,如果未能解决你的问题,请参考以下文章