如何使用Cloudflare Argo隧道保护源站?
不要让别人绕过Cloudflare保护并滥用您的源服务器!
Cloudflare是一个受欢迎的CDN和安全平台,为从小型到企业级的数百万个网站提供支持。当您为您的网站实施Cloudflare时,所有流量都将得到安全和加速。但是这仅适用于使用域名访问站点的情况。如果有人找出实际的服务器IP(源)并滥用它呢?
查找Cloudflare背后站点的服务器IP并不难。您可以在explained here和here找到如何做到这一点。您看,仅仅实施CDN和基于云的WAF是不够的。您还应考虑保护来源。
那么,解决方案是什么?
Argo Tunnel – Cloudflare提供的一种智能解决方案,用于保护源服务器免受直接攻击。
这是一个您需要在服务器上安装的守护程序,它在服务器与Cloudflare网络之间创建了一个加密隧道。零复杂的ACL/IP表配置。
好消息是,您不需要在PRO或更高的套餐下。即使您在免费套餐下也可以开始使用。您只需支付Argo订阅费用,价格从每月5美元起。
让我们开始安装和设置。
安装Cloudflare守护程序
- 使用root或sudo特权登录源服务器
- 下载最新的稳定包。我使用的是Ubuntu,因此其他操作系统的.deb文件,请查看official download page。
wget https://bin.equinox.io/c/VdrWdbjqyF/cloudflared-stable-linux-amd64.deb
- 安装下载的包
dpkg -i cloudflared-stable-linux-amd64.deb
- 让我们验证版本以确保已安装
root@gf-prod:~# cloudflared --version
cloudflared version 2020.2.0 (built 2020-02-07-1653 UTC)
root@gf-prod:~#
太棒了!
验证守护程序
下一步是使用守护程序对Cloudflare进行身份验证。运行以下命令
cloudflared tunnel login
- 它会提示您使用以下URL登录到Cloudflare并授权该站点。
root@gf-prod:~# cloudflared tunnel login
Please open the following URL and log in with your Cloudflare account:
https://dash.cloudflare.com/argotunnel?callback=https%3A%2F%2Flogin.argotunnel.com%XXXXX-XXX-XXXXXX%3B
Leave cloudflared running to download the cert automatically.
INFO[0030] Waiting for login...
INFO[0060] Waiting for login...
INFO[0090] Waiting for login...
INFO[0120] Waiting for login...
You have successfully logged in.
If you wish to copy your credentials to a server, they have been saved to:
/root/.cloudflared/cert.pem
root@gf-prod:~#
- 授权后,您应该看到类似于此的内容。
启动隧道
让我们开始下面的隧道。
cloudflared tunnel --hostname [HOSTNAME] http://localhost:80
例如: