个人域名的安全实践

本文分享个人域名使用过程中的安全实践经验,包括扫描攻击分析、域名保护策略、常见攻击手段以及边缘安全服务的选择等内容。

前言

在互联网时代,网络攻击已成为常态。每天都有无数的自动化工具在扫描互联网上的每一个角落,寻找可能的漏洞。很多人认为只有大型企业才会成为攻击目标,但实际上,由于攻击成本的降低和工具的普及,任何暴露在互联网上的服务都可能成为攻击对象。

真实案例分析

扫描攻击实例

我部署在 Cloudflare 上的一个小型展示网站,虽然只有两个有效 URL:

但仍然持续遭受扫描攻击。

一开始其它的 URL 全部返回404, 上线当天就有香港主机开始扫, 源 IP 天天换, 但大部分是香港的. 由于有些用户是香港 IP 访问, 也不能直接 ban 地区.

以上这些 URL 全都是怀有各种目的的尝试, 我的 worker 只处理//logs-collector, 这些契而不舍的尝试基本上都是为了寻找漏洞.

但这样扫占用 CF 免费请求数, 污染我的日志, 也不是什么好事。

后边把所有其它请求都返回200, 加上Host on Cloudflare Worker, don't waste your time

这样被扫的稍微少了点, 当然我不知道是否有因果关系。

如果是运行在自己主机上的服务, 天天被这样扫, 而服务一直不做安全更新, 迟早有被扫到漏洞的一天。

对攻击者来说, 就是每天定时不停的尝试, 能攻破一个是一个, 基本都是自动化的, 设备和时间成本都不高。

安全威胁分析

攻击者特点

  • 跨境作案普遍,降低追责可能
  • 自动化工具广泛使用,包括 Nmap、Masscan 等端口扫描工具
  • 持续性攻击,成本低廉
  • 肉鸡资源充足,IP 地址频繁变化
  • 攻击时间通常选择在深夜或节假日

常见攻击方式

  1. 端口扫描
    • 批量扫描开放端口
    • 识别常用服务(SSH、RDP、MySQL 等)
  2. 漏洞扫描
    • 扫描已知漏洞的老旧软件
    • 通过路径特征和文件名特征识别
  3. 自行构造输入, 通过输入验证漏洞

安全实践

使用 VPN 而非反向代理

大部分人都不会及时的升级软件, 最好是不要暴露自己的域名, 扫描既可以构造 postfix, 也可以构造 prefix, 各种子域名一顿试。

比如子域名重灾区:

  • nas.example.com
  • home.example.com
  • dev.example.com
  • test.example.com
  • blog.example.com
  • work.example.com
  • webdav.example.com
  • frp.example.com
  • proxy.example.com

这些是随手写的, 要自动化攻击肯定是搞一个子域名字典, 自动化测试。

可以搭一个局域网的 DNS 服务器, 比如AdguardHome, 在上边配置域名解析, 内网设备都固定 IP 访问。

DDNS 也可以用AdguardHome的 API 实现. 由于是局域网, 域名可以自己随便挑.

使用边缘安全服务

赛博佛祖Cloudflare就不多说了, 在个人折腾者找到真正有商业价值的项目之前, 它肯定一直都是免费的。

国内的的就是阿里云ESA, 两个我都在用, 阿里云的免费用 3 个月, 正常是一个根域名 10 元一个月限 50G 流量, 在 CF 全免费面前我就不多做介绍了。

安全服务普遍比较贵, 不做保护的话, 被攻击了损失很大, 如果付费保护就是每天看着直接的"损失"。

边缘安全服务算是一种保险, 非常廉价, 性价比超高的安全服务, 典型的让专业的人做专业的事。

边缘安全主要目的是隐藏自己的真实 IP, 用户访问边缘节点, 边缘节点计算决策是否回源访问真实 IP。

它的本质就是一个前置的反向代理, 集成了缓存, WAF, CDN, DDoS 防护等功能. 由于用户到服务中间插入第三者, 因此它有一定的概率会造成用户体验下降。

CF 和 ESA 我都在用, 总结来说就是让体验最好的一部分用户体验略微下降, 但是让更多地区的用户体验提升了. 整体来说仍然是非常值得.

总结

如果只是自用服务优先使用 VPN, tailscale或者zerotier都是不错的选择, 需要 DNS 服务可以在内网搭AdGuardHome, 公网可以用AdGuardPrivate.

如果是公开的, 给大众访问的服务, 最好是套一个Cloudflare, 在意大陆的访问速度的就用阿里 ESA

这种安全实践仅供参考, 非常欢迎 V 站大佬们提出建议。