V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
renfei
V2EX  ›  Cloudflare

套 Cloudflare 如何保护好源 IP 地址?

  •  
  •   renfei · 2023-04-17 18:08:03 +08:00 · 4262 次点击
    这是一个创建于 619 天前的主题,其中的信息可能已经有所发展或是发生改变。

    套 Cloudflare 如何保护好源 IP 地址?

    V2 的大神们,萌新请教。

    目前,我是在防火墙上设置白名单,只允许 Cloudflare 的访问,这样是否就足够安全了?

    还需要什么其他的手段或注意事项吗?正确的姿势是什么呢?

    第 1 条附言  ·  2023-04-18 17:15:41 +08:00

    感谢大佬们的指导,我也找到了官方的指导手册:https://developers.cloudflare.com/fundamentals/get-started/task-guides/origin-health/free/

    • 使用新 IP 地址
    • 检查邮件等其他可能泄露 IP 的服务
    • 防火墙上设置白名单(中等安全)
    • Cloudflare Tunnel(非常安全)加密所有流量并防止任何入站连接到您的来源
    10 条回复    2023-05-11 03:22:48 +08:00
    ovoo
        1
    ovoo  
       2023-04-17 18:18:11 +08:00   ❤️ 3
    抛砖引玉:证书会被全网扫 IP 的引擎扫到,所以需要设置默认站点的证书,不能和 cloudflare 解析的域名一样。
    0o0O0o0O0o
        2
    0o0O0o0O0o  
       2023-04-17 18:33:32 +08:00
    1. 因素太多,历史解析、证书等,chatgpt 应该能告诉你更多
    2. 我认为官方也不觉得这种操作足够安全 https://blog.cloudflare.com/cloudflare-aegis/
    0o0O0o0O0o
        3
    0o0O0o0O0o  
       2023-04-17 18:36:15 +08:00
    分享下我用于 vaultwarden 的免费方案供参考和指正:

    AWS EC2 和国外一些 VPS 会给你默认分配一个 public dns ,相当于一个域名,这是公开不可隐藏的;
    配置 AWS 的防火墙、EC2 自身的 iptables 、Nginx ,仅允许 cloudflare ips ;
    在 Cloudflare workers 里中转请求到 public dns ,并且在 worker 里给这个请求添加一个秘密的 header ;
    Cloudflare 上在 page rules 将一个无法爆破的路径设定到这个 worker ;
    EC2 上 Nginx 用这个 header 鉴权通过,请求才会 proxy pass 到 vaultwarden ;
    Nginx 除了鉴权通过,别的都伪造成 404 之类的相同响应防止猜测。

    个人觉得这样不需要在 Cloudflare 直接解析到 EC2 ,可以防止各种已知或者未知的 bypass 方式,并且也不像 cloudflared tunnel 那样依赖 VPS 的稳定性。
    Lentin
        4
    Lentin  
       2023-04-17 21:39:10 +08:00   ❤️ 2
    端口全关,用 cloudflare tunnel 映射出去 (手动狗头
    ZE3kr
        5
    ZE3kr  
       2023-04-17 22:02:25 +08:00 via iPhone
    干脆不要 IPv4 了,来个随机的 IPv6 ,看谁能全网扫到。此外需要注意机器不要去请求别人的 API 啥的,不然也会暴露 IP
    hronro
        6
    hronro  
       2023-04-17 22:18:21 +08:00
    @Lentin #4

    手动狗头是什么意思?我目前就这么用的,暂时没发现有什么问题
    Aoang
        7
    Aoang  
       2023-04-18 08:24:12 +08:00 via iPhone
    @hronro 遇到过一个问题,在机子上部署了 GitLab/ES/Runner 三大件,每当 Runner 起多了,cloudflared 就……,日志显示网络断开,得调整它的调度优先级才能解决这个问题
    renfei
        8
    renfei  
    OP
       2023-04-18 10:07:01 +08:00
    感谢上方大佬的建议,我试用了一下 Cloudflare Tunnel 隧道,似乎不太适合我。

    因为我是通过 CNAME 接入 SaaS 的,所以在设置零信任的 Cloudflare Tunnel 隧道时,查询不到我的域名。

    目前我只能通过四层防火墙来给 Cloudflare ips 设置白名单的方式。
    mmdsun
        9
    mmdsun  
       2023-04-18 12:34:38 +08:00 via iPhone
    我之前套 cf 也被 CC 了,都不知道是怎么看到我 IP 的,现在想起来可能是解析历史记录。
    ayconanw
        10
    ayconanw  
       2023-05-11 03:22:48 +08:00
    最好的方法是,服务器防火墙开白名单,只允许 cf 的 ip 段
    cf 的 ip 段他们自己有维护一个列表
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3216 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 12:36 · PVG 20:36 · LAX 04:36 · JFK 07:36
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.