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

服务器被攻击,上了 CDN 但源站 IP 还是会被很快知道,求问可能是哪个环节出了问题?

  •  
  •   Benisme · 2021-10-03 15:20:18 +08:00 · 10953 次点击
    这是一个创建于 1180 天前的主题,其中的信息可能已经有所发展或是发生改变。
    我国内用的是阿里云的 CDN,境外用的是 Cloudflare 。

    我在网上搜相关信息,看到说用 https://ip 地址 是会暴露出源站 IP 的。但这不是也得先扫到这个 ip 才行吗?在我的理解里这应该至少需要一段时间。

    可是我服务器被攻击后换了 IP,第二天马上新 IP 也被攻击了。

    我本来想按照网上教程设置一下禁止 ip 用 https 访问,但一直设置不对,总是会连域名的 https 访问都失败。

    另外,我每次被攻击就会解除原来的 ip,那原来的 ip 就应该只是个单纯的 ip ?可依然能被对方攻击,实在不理解。都没有绑服务器,为什么还会被攻击?
    41 条回复    2023-08-14 18:19:40 +08:00
    crab
        1
    crab  
       2021-10-03 15:23:31 +08:00
    有找回密码通过邮件这类功能?
    Benisme
        2
    Benisme  
    OP
       2021-10-03 15:24:38 +08:00
    @crab 邮件用的是阿里云的服务,我自己试过应该查不出真实 ip
    Livid
        3
    Livid  
    MOD
       2021-10-03 15:26:23 +08:00   ❤️ 1
    源站上是否只允许 CDN 的回源 IP 地址段访问 443 接口?
    wooyuntest
        4
    wooyuntest  
       2021-10-03 15:27:29 +08:00
    有可能是 DNS 解析记录
    回忆一下换 IP 的时候 域名是否直接解析回源了?
    xenme
        5
    xenme  
       2021-10-03 15:27:54 +08:00 via iPhone
    源站有没有做白名单,只允许 cdn,另外就是是否通过域名等指向了源站被发现了
    Benisme
        6
    Benisme  
    OP
       2021-10-03 15:35:23 +08:00
    @Livid 暂时还没有设置这个

    @wooyuntest 我现在是这样,在域名的 DNS 里设置两个指向,一个是默认路线指向境内 CDN 的 CNAME,另一个是境外路线指向 cloudflare 。换 ip 的时候域名应该没有直接指向到真实 ip 过。

    @xenme 如上

    是不是有必要设置一下只允许 CDN 回源 IP 访问?
    Livid
        7
    Livid  
    MOD
       2021-10-03 15:36:30 +08:00   ❤️ 3
    @Benisme 现在的扫描器扫描整个 IPv4 地址空间,找出哪个 IP 上有哪些证书,用不了多长时间。
    Benisme
        8
    Benisme  
    OP
       2021-10-03 16:19:34 +08:00
    @Livid 懂了,我去弄一下。现在又换了一个 ip,看看能不能防住。
    谢谢各位
    windyskr
        9
    windyskr  
       2021-10-03 16:29:31 +08:00 via Android   ❤️ 2
    我也发现浏览器直接访问 https://ip,虽然显示不信任但是查看证书会显示这服务器上有的一个域名的证书,进而把域名和源站关联起来,https://censys.io/ 似乎就一直在这个。我也和你一样搜了半天却还不会正确设置。
    不过我似乎找到了一个曲线救国的方法:在 nginx 上加一个以这个服务器 ip 为域名的网站,配上一个任意自签名证书,再直接访问 https://ip 点击证书查看就不会泄露真实域名,不过网站没挨这种过打不知道实际是否有用。不过应该是有的,我设置后再 censys 就再也搜不到源站 ip 了。
    40EaE5uJO3Xt1VVa
        10
    40EaE5uJO3Xt1VVa  
       2021-10-03 16:58:20 +08:00
    要不就新建个 IP 站点,给 IP 自签一个证书
    Eleutherios
        11
    Eleutherios  
       2021-10-03 17:41:40 +08:00 via iPhone
    @windyskr 这个没用吧?我记得可以指定 ip,但是附带上 domain
    24owls
        12
    24owls  
       2021-10-03 17:44:19 +08:00
    服务器上可以强制使用 TLS SNI 来防止证书被扫描出来,没有 SNI 就无法建立 TLS 连接,全站都在 CDN 后面的话没有副作用,比如 haproxy 里面的 strict-sni 选项 http://cbonte.github.io/haproxy-dconv/2.3/configuration.html#5.1-strict-sni

    邮件服务器和 HTTP 服务器在一起的话,可以检查一下是否为邮件服务器设置过 reverse DNS
    Darkside
        13
    Darkside  
       2021-10-03 17:52:41 +08:00
    试试看源站只允许内网连接,然后再通过 Cloudflare Argo Tunnel 连出去,证书的问题让 Cloudflare 解决?

    这样应该可以保证不泄露源站 IP
    ZingLix
        14
    ZingLix  
       2021-10-03 18:29:05 +08:00   ❤️ 3
    @windyskr nginx 试试这个 `ssl_reject_handshake on; `? 应该是 1.19.4 后新加的,ip 访问直接拒绝 tls 握手就不会泄露证书了
    akira
        15
    akira  
       2021-10-03 18:54:38 +08:00
    如果 你没更换机房,同一个机房的 ip 就那么些,很容易就扫到了啦。
    上黑白名单吧,应该能有帮助
    Skmgo
        16
    Skmgo  
       2021-10-03 18:59:21 +08:00
    @Benisme 请看我的那个帖子, 你需要主机头加个假的证书, 或者空主机头.

    另外国内备案很恶心, 可以从备案查到 ip...
    Skmgo
        17
    Skmgo  
       2021-10-03 19:00:25 +08:00
    luckycat
        18
    luckycat  
       2021-10-03 19:40:15 +08:00
    现在攻击手段多的很,回头再给你来给假墙攻击,谁都架不住。

    解决手段:国内找警察报案
    LongLights
        19
    LongLights  
       2021-10-03 19:42:03 +08:00 via Android   ❤️ 1
    1. smtp 服务
    2.dns 历史解析
    3.源站 ip 没有 ssl

    以上是比较常见的几种情况
    ruixue
        20
    ruixue  
       2021-10-03 20:34:25 +08:00
    设置默认 ssl 证书能防止 censys 之类的全网扫描,但是不能防止针对你域名的定向攻击(就是专门加 host 再扫描),所以最稳妥的方法是#3 说的设置好防火墙,443 端口只允许 cdn 的回源 ip 段访问
    opengps
        21
    opengps  
       2021-10-03 21:19:34 +08:00
    源站通过白名单给 cdn 地址提供服务,隐蔽性可以好很多
    boaofCHIAN
        22
    boaofCHIAN  
       2021-10-03 21:33:23 +08:00
    还有一种可能是 ddos 击穿了
    ladypxy
        23
    ladypxy  
       2021-10-03 21:34:43 +08:00
    会给用户发送邮件么?邮件是很容易暴露源地址的
    eason1874
        24
    eason1874  
       2021-10-03 22:38:08 +08:00
    用的是云服务器吗?如果是云服务器,可以在安全组设置仅白名单访问,把阿里云 CDN 和 Cloudflare 的 IP 段放进白名单,这样就算对方知道 IP,流量也进不来
    alexmy
        25
    alexmy  
       2021-10-03 22:44:54 +08:00
    @eason1874 会进云服务器供应商的小黑屋吧,除非你买了它的高防。
    skiy
        26
    skiy  
       2021-10-03 23:03:26 +08:00
    被扫域名了吧?会不会是个别子域名有绑定了真实 IP ?
    eason1874
        27
    eason1874  
       2021-10-03 23:43:24 +08:00
    @alexmy 大流量到一定时间应该会进小黑屋。不过流量进不来,没有响应内容,坏人没办法确定这个 IP 有没有在用,顶多打一会儿吧。当然,同时也是要尽量隐藏 IP 的。
    illl
        28
    illl  
       2021-10-04 00:01:07 +08:00 via iPhone
    可以去拜读一下查找 cdn 真实 ip 地址的文章,现在很多空间搜索互联网资产的。比较稳妥的方法应该是换一个新 ip,然后服务器设置只接收 cdn 白名单的流量
    indev
        29
    indev  
       2021-10-04 00:15:10 +08:00
    先把服务器防火墙设置成只允许来自 CDN 的 IP 段访问 80 、443 端口吧,再看访问日志找攻击来源
    shiji
        30
    shiji  
       2021-10-04 07:56:29 +08:00
    "我在网上搜相关信息,看到说用 https://ip 地址 是会暴露出源站 IP 的。但这不是也得先扫到这个 ip 才行吗?在我的理解里这应该至少需要一段时间。"

    你看错了吧, 是 https://ip 能曝出默认的 ssl 域名。https://ip 本身就已经有 IP 了,还暴露啥

    “可是我服务器被攻击后换了 IP,第二天马上新 IP 也被攻击了。”
    每个运营商的 IP 总数是有限的,如果你没换运营商,没换区, 就更容易了。从头到尾再过一遍就好了。几个小时顶多了。

    “我本来想按照网上教程设置一下禁止 ip 用 https 访问,但一直设置不对,总是会连域名的 https 访问都失败。”
    可以告诉你设置的方法,楼上一些网友也说过了。 但是这个方案不能解决问题,所以没有讨论的必要。

    再扫 IP 的方法如下(随便举个例子):
    https://serverfault.com/questions/443949/how-to-test-a-https-url-with-a-given-ip-address
    这里 curl 可以覆盖 dns 请求按照指定的 IP 访问某域名。
    锁定你服务器运营商的 IP 段,用你的域名挨个 IP 试,如果能连上了,并且证书也对的话,就找到你新的 IP 了。

    解决方案只有一个,用防火墙 /iptables 只允许你的 cdn 们访问你的 443 端口。如果你还有别的服务需要用 443, 你就换成别的端口,反正你有 CDN 。
    windyskr
        31
    windyskr  
       2021-10-04 08:56:08 +08:00 via Android
    @Eleutherios #11 要是被定向扫这种不行,毕竟你要让给个域名让 cdn 回源。只能这样:
    1.cdn 回源的域名和挨打的真实域名不一样,是一个无法被猜测的域名,让攻击者想不到也扫不出来。
    2.和 #3 一样加白名单。
    chihiro2014
        32
    chihiro2014  
       2021-10-04 10:38:18 +08:00   ❤️ 1
    search.censys.io

    全 ip 扫描
    asdqwe876
        33
    asdqwe876  
       2021-10-04 16:47:54 +08:00 via Android
    我自己写的扫描器扫描大陆全网段只要半天
    cnhongwei
        34
    cnhongwei  
       2021-10-04 17:16:48 +08:00
    1. 设置默认所有的域名 return 444; 并配置一个自签名的和你域名无关的 SSL 证书。
    2. 设置真正域名的正常访问,并加以限制,如果是 cloudflare,可以设置 IP 白名单,或者设置需要客户端 SSL 证书。
    3. 隐藏 whois 信息,如果国内备案就没有办法隐藏备案信息了。
    aaa5838769
        35
    aaa5838769  
       2021-10-04 19:07:40 +08:00
    @asdqwe876 不是有现成的工具么。
    godmode
        36
    godmode  
       2021-10-04 20:05:47 +08:00
    web 程序是不是被挂马了,或是代码、或被植入可以获取 ip 的语句
    Privileges
        37
    Privileges  
       2021-10-04 23:50:46 +08:00
    dns 历史记录,rss 订阅或者可以向外发送邮件,像钟馗之眼和 fofa 这种全球采集的 ip 后,也是可以通过 http.body title 找到源站的
    ClarkAbe
        38
    ClarkAbe  
       2021-10-05 09:05:32 +08:00
    网页图标搜索, 建议源站仅 CDN 可访问
    vinsoncou
        39
    vinsoncou  
       2021-10-05 13:38:12 +08:00
    nginx 的 ssl_reject_handshake 可以防止证书信息泄露。
    yanqiyu
        40
    yanqiyu  
       2021-10-05 14:12:48 +08:00
    干脆用 cloudflare argo tunnel,源站不开端口
    idc906
        41
    idc906  
       2023-08-14 18:19:40 +08:00 via iPhone
    是换了新 ip 之后解析过域名吗,这个解析记录可以查到的,或者是被攻击的不是 DDOS ,打的 CC 攻击针对的域名,CC 攻击会 cpu 超载,也可以是把 cdn 防护节点打死了,那你业务肯定是停摆了,这方面有疑问可以与我交流,微 idc906
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5470 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 33ms · UTC 06:01 · PVG 14:01 · LAX 22:01 · JFK 01:01
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.