个人域名安全实践:从扫描攻击到防护策略
Categories:
前言
在互联网时代, 域名安全已成为每个互联网使用者必须关注的问题. 每天都有无数的自动化工具在扫描互联网上的每一个角落, 寻找可能的漏洞. 很多人认为只有大型企业才会成为攻击目标, 但实际上, 由于攻击成本的降低和工具的普及, 任何暴露在互联网上的服务都可能成为攻击对象. 域名安全不仅关乎个人隐私和数据保护, 更是维护网络服务稳定运行的基础. 随着网络安全威胁的不断演变, 建立完整的域名安全防护体系变得越来越重要, 这也是我们持续关注和分享安全实践经验的原因.
真实案例分析
扫描攻击实例
我部署在 Cloudflare 上的一个小型展示网站, 虽然只有两个有效 URL:

但仍然持续遭受扫描攻击。
网站上线之初, 其他 URL 全部返回 404, 当天就有香港主机开始扫描, 源 IP 天天更换, 但大部分来自香港. 由于部分用户来自香港 IP, 无法直接屏蔽该地区. 这个案例说明了网络攻击的自动化和持续性特征, 也提醒我们需要建立系统的域名安全防护策略.

以上这些 URL 全都是怀有各种目的的尝试, 我的 worker 只处理 / 和 /logs-collector, 这些坚持不懈的尝试基本上都是为了寻找漏洞. 这些攻击尝试不仅消耗了 Cloudflare 的免费请求数额, 还污染了日志数据, 对系统监控造成了干扰.
但这样扫占用 CF 免费请求数, 污染我的日志, 也不是什么好事。
后来我将所有其他请求都返回 200, 并加上提示信息 Host on Cloudflare Worker, don't waste your time.

修改后扫描量有所减少, 虽然不能确定因果关系, 但这种做法确实传达了明确的信号.
如果是运行在自己主机上的服务, 天天被这样扫描, 而服务又不及时进行安全更新, 迟早会被扫描到漏洞并遭到入侵. 这就是为什么我们强调域名安全的重要性, 它不仅关乎单次攻击的成功与否, 更关乎长期的系统安全态势.
对攻击者来说, 这种攻击就是每天定时不停地尝试, 能攻破一个就是一个, 基本都是自动化的, 设备和时间成本都不高. 这也解释了为什么网络攻击如此普遍, 因为对攻击者而言, 这是一个低成本、高回报的活动.
安全威胁分析
攻击者特点
跨境作案是网络攻击的常见特征, 攻击者通过在不同地区部署攻击设施来降低被追责的可能. 自动化工具的广泛使用使得攻击成本大幅降低, 像 Nmap 和 Masscan 这样的端口扫描工具已经成为攻击者的标配. 攻击通常具有持续性, 而且成本极为低廉. 攻击者拥有充足的肉鸡资源, 可以频繁更换 IP 地址来绕过封锁. 攻击时间通常选择在深夜或节假日, 此时监控和响应可能较为薄弱.
常见攻击方式
端口扫描是攻击者的第一步, 他们会批量扫描开放端口, 识别常用服务如 SSH、RDP、MySQL 等. 漏洞扫描则是针对已知漏洞的老旧软件进行探测, 通过路径特征和文件名特征来识别潜在的攻击面. 此外, 攻击者还会自行构造各种输入, 尝试通过输入验证漏洞来获取系统权限.
安全实践
域名安全防护需要根据服务类型采取不同的策略. 对于自用服务和公开服务, 应该采用完全不同的保护方案.
flowchart TD
A[域名服务部署] e1@--> B{服务类型判断}
B e2@-->|自用服务| C[选择 VPN 方案]
B e3@-->|公开服务| D[选择边缘安全服务]
C e4@--> E[搭建内网 DNS]
C e5@--> F[部署 Tailscale 或 ZeroTier]
C e6@--> G[配置内网固定 IP 访问]
D e7@--> H[选择 Cloudflare]
D e8@--> I[选择 阿里云 ESA]
D e9@--> J[配置 WAF 和 DDoS 防护]
E e10@--> K[服务完全隐藏]
F e11@--> K
G e12@--> K
H e13@--> L[真实 IP 隐藏]
I e14@--> L
J e15@--> L
classDef start fill:#E3F2FD,stroke:#1565C0,stroke-width:1px,color:#0D47A1;
classDef decision fill:#FFF8E1,stroke:#EF6C00,stroke-width:1px,color:#E65100;
classDef action fill:#E8F5E9,stroke:#2E7D32,stroke-width:1px,color:#1B5E20;
classDef result fill:#F3E5F5,stroke:#6A1B9A,stroke-width:1px,color:#4A148C;
classDef animate stroke:#EF6C00,stroke-width:2px,stroke-dasharray: 9\,5,stroke-dashoffset: 900,animation: dash 25s linear infinite;
class A start;
class B decision;
class e1,e2,e3,e4,e5,e6,e7,e8,e9,e10,e11,e12,e13,e14,e15 animate;
class C,D,E,F,G,H,I,J action;
class K,L result;
使用 VPN 而非反向代理
大部分人都不会及时升级软件, 最好的策略是不暴露自己的域名. 扫描攻击既可以构造前缀, 也可以构造后缀, 各种子域名都会被尝试. 子域名扫描的重灾区包括 nas、home、dev、test、blog、work、webdav、frp、proxy 等. 要实现自动化攻击, 攻击者会准备一个子域名字典, 进行自动化测试. 这些常见名称会被优先扫描, 因此避免使用这些显而易见的子域名名称是一个基本的防护措施.
对于自用服务, 推荐使用 VPN 技术替代反向代理, 这样可以将服务完全隐藏在内网中. 可以搭建一个局域网的 DNS 服务器, 比如 AdGuard Home, 在上面配置域名解析, 让内网设备都通过固定 IP 访问. AdGuard Home 不仅提供了 DNS 服务, 还具备广告拦截和家长控制功能, 是家庭网络环境下的理想选择. DDNS 也可以使用 AdGuard Home 的 API 实现, 由于是局域网环境, 域名可以自己随意选择, 不受公网域名规则的限制. 这种方式的优势在于服务完全不暴露在公网上, 自然避免了扫描攻击的风险.
使用边缘安全服务
对于必须公网访问的服务, 边缘安全服务是最好的选择. Cloudflare 提供了全球领先的边缘安全服务, 在个人开发者找到真正有商业价值的项目之前, 其免费版已经完全够用. 国内的阿里云 ESA 也是一个不错的选择, 新用户可以免费试用 3 个月, 正常付费是一个根域名每月 10 元, 限制 50GB 流量. 在 Cloudflare 全免费的服务面前, ESA 的主要优势在于中国大陆地区的访问速度更优.
安全服务普遍价格较高, 但不做保护的话, 一旦被攻击损失可能更大. 如果付费保护, 就是每天看着直接的固定支出. 边缘安全服务算是一种保险, 非常廉价且性价比极高, 典型的让专业的人做专业的事.
边缘安全服务的主要目的是隐藏自己的真实 IP, 用户访问边缘节点, 边缘节点计算决策是否回源访问真实 IP. 它的本质就是一个前置的反向代理, 集成了缓存、WAF、CDN、DDoS 防护等功能. 由于用户到服务中间插入了第三者, 因此它有一定的概率会造成用户体验下降. Cloudflare 和 ESA 我都在使用, 总结来说就是让体验最好的一部分用户体验略微下降, 但是让更多地区的用户体验提升了. 整体来说仍然是非常值得的投资.
总结
域名安全是一个系统工程, 需要根据服务类型采取不同的保护策略. 对于自用服务, 优先使用 VPN 方案, Tailscale 和 ZeroTier 都是成熟可靠的选择. 如果需要 DNS 服务, 可以在内网搭建 AdGuard Home, 它提供了完整的 DNS 解决方案, 包括广告拦截和家长控制功能. 对于公网访问需求, 可以使用 AdGuard Private 来提供加密的 DNS 解析服务.
对于公开服务, 需要给大众访问的服务, 最好是套一层边缘安全服务. Cloudflare 提供了全球领先的免费安全防护, 适合大多数个人开发者. 如果特别在意中国大陆地区的访问速度, 可以选择阿里云 ESA, 它在国内的节点分布更广, 能够提供更好的本地化体验.
无论选择哪种方案, 关键是要建立起域名安全的意识, 主动采取防护措施, 而不是被动等待攻击发生. 网络安全没有银弹, 适合自己的才是最好的.