
因为网站一直有用 cdn 加速也没有泄露过 ip,但是在群里发一下域名,别人一下子就给我服务器 ip 找出来,然后随手给我来一发 udpfloor,然后封 1 天黑洞,这就很烦。
然后找了一些资料才知道,用 Nginx 部署网站,开启 ssl 的情况,直接访问 https+ip 会暴露证书,间接的别人就能扫到域名=ip
当然最后我通过各种办法,暂时解决了
1 haojie06 2020-12-06 23:44:11 +08:00 默认放一个自签名的证书就好了,不然像是[censys]( https://censys.io/)这种网站的爬虫全网扫描,一下就暴露了。 |
2 cydian 2020-12-07 00:05:51 +08:00 via Android 如果是这样遍历查找,难道不慢么? |
3 chihiro2014 2020-12-07 00:22:17 +08:00 咦,学到了 |
4 ZRS 2020-12-07 00:43:57 +08:00 有全网证书嗅探爬虫的,一般的做法是自签一个 |
5 stille 2020-12-07 00:45:29 +08:00 via iPad nginx 配置好第一件事就是关闭 ip 空主机头,retune 444 ; 并给 ssl 配个自签证书。 |
6 miyuki 2020-12-07 08:27:28 +08:00 配个默认主机 conf,一张自签证书就 OK 了,然后再白名单 cdn 的回源段 |
7 lqzhgood 2020-12-07 11:22:40 +08:00 遍历全网 ip,得到 源站 ip + 证书,然后遍历全网域名得到 域名 + 证书, 然后证书匹配得到 源站 ip + 域名 这个意思? 这难度有点大吧 |
8 Aliencn 2020-12-07 11:44:55 +08:00 你第一个事情说的是别人通过了你的域名找到了你的源站 IP 。 第二个事情说的是通过 IP 获取到了 HTTPS 的证书域名。 这俩事情没啥关系吧。 |
9 wangxiaoaer 2020-12-07 12:06:36 +08:00 直接访问 https+ip 会暴露证书,间接的别人就能扫到域名=ip------------------ 没看懂,这俩 IP 不是同一个吧? |
10 momo1999 2020-12-07 13:07:14 +08:00 你们是不是对 cdn 有误解啊 |
11 no1xsyzy 2020-12-07 13:17:56 +08:00 @wangxiaoaer 简单地举例好了 $ curl https://39.156.69.79 -sv --output /dev/null 2>&1 | grep CN= * subject: C=CN; ST=Beijing; O=BeiJing Baidu Netcom Science Technology Co., Ltd; OU=service operation department; CN=www.baidu.cn ( OpenSSL 似乎也能做这事,但不太记得 OpenSL 的语法了) 我知道 IP,可以去探测这个 IP 上的证书。 那么只要我把 IPv4 空间全部探测一遍,我就知道某个没有防护此类信息泄漏的域名在哪个 IP 上 |
12 no1xsyzy 2020-12-07 13:20:23 +08:00 说实话,最稳的是 cloudflared ( Agro 反向隧道),你甚至不需要开放端口。 |
13 momo1999 2020-12-07 13:32:35 +08:00 我懂了,这个和 cdn 没关系。就是有人把所有 IP 扫了一遍,把证书记下来,下次别人直接去查就出来了。 |
16 ColoThor 2020-12-07 15:58:42 +08:00 所以服务器放一个证书,这样 cdn 和 直接访问就不是一个证书,就可以避免这个问题? |
17 julyclyde 2020-12-07 16:30:27 +08:00 lz 这个思路是颠倒因果了 确实,开启 SSL 的时候,直接访问过去,服务器会出示证书,证书里带了自己的域名 但是上面这个做法的前提是先要知道 IP 问题是如果已经知道了 IP 何必还 SSL 呢,直接 flood 你不就得了? |
18 ColoThor 2020-12-07 16:54:37 +08:00 @julyclyde #17 是这样的,现有情况是拥有全网的 ip 与 证书 对应信息,就像茫茫人海没有目标。之后知道域名,对比全网 ip 的证书,就找到了域名对应的 ip |
20 qsnow6 2020-12-07 17:01:37 +08:00 长知识了 |
22 ColoThor 2020-12-07 17:09:49 +08:00 @julyclyde #19 具体逻辑我也没搞懂。不知道 cdn 到服务器是 https,也就是全程加密是不是就没 lz 的问题了 |
23 imdong 2020-12-07 17:25:51 +08:00 看懂了,虽然知道会被扫描,但是没想过 https + ip 会暴露域名这个问题。 自签名了个 口吐芬芳 的证书....  |
27 opengps 2020-12-07 18:22:16 +08:00 via Android 说明问题出在了你 cdn 后端继续用了同一个证书? 这样的话或者不用证书,或者用单独的后端域名可解 |
28 40EaE5uJO3Xt1VVa 2020-12-07 18:31:04 +08:00 忽视是因为不知道.... 上 ssl 还都是宝塔或者 acme 代劳的,没想到还会有人扫证书。 证书自签,再套 cdn ? cdn 的证书用正确的,自己本机的用自签的?什么原理有没有大雕介绍一下 |
29 des 2020-12-07 18:44:27 +08:00 via iPhone 屏蔽非 cdn 的 ip 访问就好了,总有人扫确实很烦 |
30 lcdtyph 2020-12-07 19:09:20 +08:00 via iPhone @julyclyde 扫各大机房 ip 的 443 端口就好了,发送 clienthello,对方回复的 serverhello 中有 ssl 证书,证书里的 common name 有域名信息。这样就知道了这个 ip 的域名 |
31 lcdtyph 2020-12-07 19:12:41 +08:00 via iPhone @julyclyde 扫描一遍 ip 段就可以得到一个域名-ip 的多值映射表。然后以后想查某个域名对应的源站 ip 查这个表就行了 |
32 westoy 2020-12-07 19:22:23 +08:00 CDN 一般都有 IP 列表的, 你默认屏蔽然后针对 CDN IP 段 ipset 搞个白名单 |
33 no1xsyzy 2020-12-07 19:35:10 +08:00 @yanzhiling2001 可能是当直接访问 IP 时返回自己给自己 IP 自签的一个证书。 我觉得还是只给 CDN ip 白名单比较稳妥,其他 IP 过来直接 DROP,谁也不知道你开了 443 |
34 40EaE5uJO3Xt1VVa 2020-12-07 20:12:34 +08:00 @no1xsyzy OK 。知道了,这个可以。 |
35 xiaofeifei8 2020-12-07 20:39:20 +08:00 via Android 难道 cdn 的流量不是钱吗?最根本的问题没有解决掉啊,只要你有域名能访问,别人该打你还是打你,和知不知道 ip 没啥关系咋 |
36 superrichman 2020-12-07 20:42:28 +08:00 via iPhone |
37 imdong 2020-12-07 21:33:28 +08:00 另外,题主的描述是不对的。 不是 https 会暴露 IP,而是不正确配置 HTTPS 会导致服务器暴露网站域名。 |
38 40EaE5uJO3Xt1VVa 2020-12-07 21:42:14 +08:00 |
39 mdzz 2020-12-07 23:34:35 +08:00 @no1xsyzy 补充 OpenSSL 的: `openssl s_client -connect 39.156.69.79:443` |
40 weakish 2020-12-08 00:01:06 +08:00 @xiaofeifei8 主帖说的 udpfloor 是针对 IP 的攻击,不涉及域名。一般这类攻击不会针对 CDN 节点的 IP 。 |
41 lzhw 2020-12-08 00:17:17 +08:00 类似这种批量扫描全网 ip 得到对应默认证书域名以建立反查数据库的搞法也是黑灰产最爱干的,之前泄露的微博 5 亿手机号绑定数据和 QQ 8 亿手机号绑定数据其实就是黑灰产遍历全网手机号段批量喂给微博和 QQ 的“通讯录自动匹配好友”接口获取的,有了海量的手机号和对应的微博 uid/QQ 号数据,自然就可以通过微博 uid 和 QQ 号来反查绑定的手机号~ |
43 salmon5 2020-12-08 09:46:24 +08:00 |
44 lemonda 2020-12-09 20:00:57 +08:00 一个 IP 上有很多网站也可以扫出来么? 默认 https IP 返回的应该是按字母顺序排的第一个域名 |
45 Owenjia 2021-02-23 16:00:17 +08:00 全网扫描自己个人做是有点难,但现在有 censys/shodan,国内各大机关和安全公司搞得复制品也好多。 考虑下 1) 关空主机头 2)防火墙只允许 cdn ip 访问 3) cdn 与 源站之间使用 mTLS ? |