V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
takefancy
V2EX  ›  程序员

怎么彻底隐藏源站 IP,不被扫到?

  •  
  •   takefancy · 2023-12-27 12:22:41 +08:00 · 4987 次点击
    这是一个创建于 366 天前的主题,其中的信息可能已经有所发展或是发生改变。

    域名套的 CF,后端已经配置了 nginx 防火墙,怎么不被扫到源站 IP 造成泄露呢?

    请教下大佬

    23 条回复    2023-12-28 00:33:48 +08:00
    daimaosix
        1
    daimaosix  
       2023-12-27 12:34:52 +08:00
    套了 CF ,通过查询域名的历史解析 IP 可以查到,如果裸奔的时间短可能不会查到,但是一般扫会扫 IP 段,禁止通过 IP 访问 nginx ,彻底不让源站 IP 泄露不太行
    lichao
        2
    lichao  
       2023-12-27 12:37:00 +08:00
    源站防火墙开启 ip 白名单,白名单只包括 cf 的 ip
    leaflxh
        3
    leaflxh  
       2023-12-27 12:38:58 +08:00
    server {
    listen 80 default_server;
    listen [::]:80 default_server;
    server_name _;
    location / {
    return 444;
    }
    }

    server {
    #sudo openssl req -x509 -nodes -days 36500 -newkey rsa:2048 -keyout /etc/ssl/private/nginx-selfsigned.key -out /etc/ssl/certs/nginx-selfsigned.crt
    listen 443 ssl default_server;
    listen [::]:443 ssl default_server;
    server_name _;

    ssl_certificate /etc/ssl/certs/nginx-selfsigned.crt;
    ssl_certificate_key /etc/ssl/private/nginx-selfsigned.key;

    location / {
    return 444;
    }
    }

    server {
    listen 80;
    server_name example.com
    1.example.com
    2.example.com;

    return 301 https://$host$request_uri;
    }
    dzdh
        4
    dzdh  
       2023-12-27 12:40:17 +08:00
    leaflxh
        5
    leaflxh  
       2023-12-27 12:40:34 +08:00
    已经扫到了没办法的,比如 censys.io 这种傻逼

    换 IP ,或者等他一段时间扫描不到无法被主动搜索到
    XiLingHost
        6
    XiLingHost  
       2023-12-27 12:41:05 +08:00
    https://www.cloudflare.com/zh-cn/ips/
    除了这几个段的 IP ,其他全部 drop 掉就行了
    drupal
        7
    drupal  
       2023-12-27 12:44:37 +08:00
    套 CF ,关闭 ICMP 。
    leaflxh
        8
    leaflxh  
       2023-12-27 12:44:43 +08:00
    最好还是直接防火墙只允许 cf 的 IP 入站
    MFWT
        9
    MFWT  
       2023-12-27 12:53:31 +08:00
    nginx 对于 80 返回 444 (直接切断连接),443 选择 ssl_reject_handshake
    IP 白名单,只允许 CF 的 IP 访问
    感觉不放心的话可以配合 CF 的 Argo Tunnel 使用,直接不暴露端口到公网
    secpool
        10
    secpool  
       2023-12-27 14:02:39 +08:00
    现在每天全球扫描的机器多的很,会扫整个公网网段的
    kujou
        11
    kujou  
       2023-12-27 14:05:41 +08:00
    天天被扫,习惯就好。
    asm
        12
    asm  
       2023-12-27 14:24:44 +08:00
    怎么可能不会被扫描到,每天几万家安全公司的扫描器(还不带恶意代码扫描),怎么会错过。
    现在好多 cloudflare 的 ip ,我扫后,端口全开,可都是假的,也就是啥都没扫出来。可以套用一下。
    daisyfloor
        13
    daisyfloor  
       2023-12-27 14:50:33 +08:00
    以 Caddy 为例

    你可以使用以下的方法:

    在你的 Caddyfile 中,添加一个 trusted_proxies 的选项,把 cloudflare 的 ip 段都列出来,例如:
    {
    trusted_proxies 103.21.244.0/22 103.22.200.0/22 103.31.4.0/22 104.16.0.0/13 104.24.0.0/14 108.162.192.0/18 131.0.72.0/22 141.101.64.0/18 162.158.0.0/15 172.64.0.0/13 173.245.48.0/20 188.114.96.0/20 190.93.240.0/20 197.234.240.0/22 198.41.128.0/17
    }

    然后,在你的网站的配置中,使用 remote_ip 匹配器,来检查请求的 ip 是否在 trusted_proxies 中,如果不在,就返回 403 错误,例如:
    example.com {
    @not_cloudflare {
    not remote_ip trusted_proxies
    }
    respond @not_cloudflare 403
    # 其他正常的配置
    }

    这样,你就可以实现你想要的功能。
    renfei
        14
    renfei  
       2023-12-27 15:59:44 +08:00
    防火墙上关闭全部端口,使用 cloudflare tunnel 接入 cf
    Mulch1406
        15
    Mulch1406  
       2023-12-27 16:03:58 +08:00
    同问国内主机的解决方案
    cdlnls
        16
    cdlnls  
       2023-12-27 16:15:00 +08:00
    云服务商的安全组里面设置个白名单,只允许 cf 的 IP 段访问。就算泄漏也不怕。
    gam2046
        17
    gam2046  
       2023-12-27 16:20:45 +08:00   ❤️ 1
    cloudflare tunnel 即可解决,无需开端口。

    除非 cloudflare 内鬼,不然就是耶稣来了也白扯。

    我现在就都是这么搞的,最主要还省事,配置证书啥的都省了。
    expy
        18
    expy  
       2023-12-27 16:31:31 +08:00
    dns 历史记录,直接扫 ip 段搜索网站内容,扫 ip 段检查证书对应的域名。
    LnTrx
        19
    LnTrx  
       2023-12-27 16:38:41 +08:00
    禁止 IPv4 入站,纯 IPv6 入站,且不出现在任何解析中
    cnhongwei
        20
    cnhongwei  
       2023-12-27 18:02:12 +08:00
    不开 80 端口,只开 443 。
    cnhongwei
        21
    cnhongwei  
       2023-12-27 18:05:42 +08:00
    不开 80 端口,只开 443 。
    nginx 默认站点设置如下:
    server {
    listen 443 ssl default_server;
    ssl_reject_handshake on;
    }
    这样防止取 ssl 证书判断你的域名。正式站点可以过滤 ip ,可以设置 cloudflare 客户端证书验证。这样扫描到你的服务器时候,没有办法探测你的域名,所以也就没有办法来搞你,如果通过 ssl 证书已经把你的 ip 和域名对应了,只能换个 ip 。
    chocotan
        22
    chocotan  
       2023-12-27 18:53:10 +08:00
    先和 cf 要托管提供商,然后扫这个提供商的所有 ip ,80 、443 端口能通就说明在这个 ip 上
    我有几个网站就是被这么投诉的,然后被服务器提供商要求整改
    yianing
        23
    yianing  
       2023-12-28 00:33:48 +08:00
    tunnel, 不开端口扫到了也没用
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5411 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 32ms · UTC 08:39 · PVG 16:39 · LAX 00:39 · JFK 03:39
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.