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

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

  •  
  •   Benisme · 58 天前 · 5173 次点击
    这是一个创建于 58 天前的主题,其中的信息可能已经有所发展或是发生改变。
    我国内用的是阿里云的 CDN,境外用的是 Cloudflare 。

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

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

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

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

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

    @xenme 如上

    是不是有必要设置一下只允许 CDN 回源 IP 访问?
    Livid
        7
    Livid   V2EX Moderator   58 天前   ❤️ 3
    @Benisme 现在的扫描器扫描整个 IPv4 地址空间,找出哪个 IP 上有哪些证书,用不了多长时间。
    Benisme
        8
    Benisme   58 天前
    @Livid 懂了,我去弄一下。现在又换了一个 ip,看看能不能防住。
    谢谢各位
    windyskr
        9
    windyskr   58 天前 via Android   ❤️ 2
    我也发现浏览器直接访问 https://ip,虽然显示不信任但是查看证书会显示这服务器上有的一个域名的证书,进而把域名和源站关联起来,https://censys.io/ 似乎就一直在这个。我也和你一样搜了半天却还不会正确设置。
    不过我似乎找到了一个曲线救国的方法:在 nginx 上加一个以这个服务器 ip 为域名的网站,配上一个任意自签名证书,再直接访问 https://ip 点击证书查看就不会泄露真实域名,不过网站没挨这种过打不知道实际是否有用。不过应该是有的,我设置后再 censys 就再也搜不到源站 ip 了。
    yanzhiling2001
        10
    yanzhiling2001   58 天前
    要不就新建个 IP 站点,给 IP 自签一个证书
    Eleutherios
        11
    Eleutherios   58 天前 via iPhone
    @windyskr 这个没用吧?我记得可以指定 ip,但是附带上 domain
    24owls
        12
    24owls   58 天前
    服务器上可以强制使用 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   58 天前
    试试看源站只允许内网连接,然后再通过 Cloudflare Argo Tunnel 连出去,证书的问题让 Cloudflare 解决?

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

    另外国内备案很恶心, 可以从备案查到 ip...
    Skmgo
        17
    Skmgo   58 天前
    luckycat
        18
    luckycat   58 天前
    现在攻击手段多的很,回头再给你来给假墙攻击,谁都架不住。

    解决手段:国内找警察报案
    LongLights
        19
    LongLights   58 天前 via Android   ❤️ 1
    1. smtp 服务
    2.dns 历史解析
    3.源站 ip 没有 ssl

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

    全 ip 扫描
    asdqwe876
        33
    asdqwe876   57 天前 via Android
    我自己写的扫描器扫描大陆全网段只要半天
    cnhongwei
        34
    cnhongwei   57 天前
    1. 设置默认所有的域名 return 444; 并配置一个自签名的和你域名无关的 SSL 证书。
    2. 设置真正域名的正常访问,并加以限制,如果是 cloudflare,可以设置 IP 白名单,或者设置需要客户端 SSL 证书。
    3. 隐藏 whois 信息,如果国内备案就没有办法隐藏备案信息了。
    aaa5838769
        35
    aaa5838769   57 天前
    @asdqwe876 不是有现成的工具么。
    godmode
        36
    godmode   57 天前
    web 程序是不是被挂马了,或是代码、或被植入可以获取 ip 的语句
    Privileges
        37
    Privileges   57 天前
    dns 历史记录,rss 订阅或者可以向外发送邮件,像钟馗之眼和 fofa 这种全球采集的 ip 后,也是可以通过 http.body title 找到源站的
    ClarkAbe
        38
    ClarkAbe   57 天前
    网页图标搜索, 建议源站仅 CDN 可访问
    vinsoncou
        39
    vinsoncou   56 天前
    nginx 的 ssl_reject_handshake 可以防止证书信息泄露。
    yanqiyu
        40
    yanqiyu   56 天前
    干脆用 cloudflare argo tunnel,源站不开端口
    关于   ·   帮助文档   ·   API   ·   FAQ   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   3039 人在线   最高记录 5497   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 04:17 · PVG 12:17 · LAX 20:17 · JFK 23:17
    ♥ Do have faith in what you're doing.