子域名越开越多,泛解析到底该不该用?
泛解析到底是个啥?一句话讲明白:它是DNS里用星号做通配符的解析方式——加一条星号记录,任何子域名都指向同一个IP。访问a.example.com、b.example.com、随便什么.example.com,统统到同一台服务器。它的好处显而易见:不用为新开的每个子域名手动加解析记录,批量开站、多租户系统、给每个用户分配独立子域的场景,配置一次全部搞定。这是它存在的正当理由——就像大楼的总闸,开一次,整栋楼的灯都通电,省去逐层逐间拉线的功夫。
什么时候你真的需要它?三种典型场景:多用户平台要给每个用户一个独立子域名;内部系统按团队或环境批量开子域;测试环境频繁创建销毁临时子域。这些场景的共同点是:子域名的产生在你的系统管控之内,有清单、有生命周期。反过来,如果你的网站就一个www加几个固定子域,根本用不到泛解析——老老实实一条条加解析记录,反而清爽安全。工具的先进性从来不是使用它的理由,需求才是。
风险到底藏在哪?第一层风险是恶意子域名滥用:泛解析开着,任何子域名都能解析到你的服务器,一旦服务器配置不当(比如默认站点接收所有请求),别人拿一个你没注册过的子域名也能挂上内容,域名白名单、访问控制、速率限制都是针对这个问题的防护手段。第二层风险更隐蔽:安全人员做子域名枚举时,泛解析会让「哪些子域名真实存在」这个问题失去答案——所有子域名都「存在」,真实资产反而藏不住了,攻防两端对这一点的利用都很成熟。第三层是证书问题:泛解析配合泛证书才完整,只开解析不开泛证书,一堆子域名全是证书告警,访客的浏览器先把红色警告挂出来,体验和信任双输。
决定要用,怎么管住它?四条纪律:其一,服务器端设默认拒绝——Web服务器上,没在配置里声明的子域名一律返回拒绝,不给泛解析留默认入口;其二,上白名单机制,哪些子域名允许提供服务由配置说了算,而不是星号说了算;其三,泛解析与泛证书同进同退,解析范围和证书覆盖范围保持一致;其四,定期审计DNS记录和访问日志,发现陌生子域名流量立即追查。管住这四条,泛解析的收益才能安全兑现。
子域名多了,还有更优雅的管理方式如果需求是「不同团队各自管各自的子域名」,其实有比泛解析更合适的工具:子域授权。DNS标准允许为子域名单独指定NS记录——把abc.example.com的解析权下放给另一组NS服务器,团队自治、权限解耦,主域管理员只管授权不管细节。大型组织里,子域授权比一条通配符到底的管理方式干净得多。
一个决策口诀业务可控开泛解析,业务不可控就别开;开了必配默认拒绝和泛证书;子域名要自治,用子域授权不用通配符。三条念熟,这个问题的答案就清晰了。泛解析不背锅,背锅的从来是不设防的使用方式。