个人域名的安全实践
Categories:
前言
在互联网时代,网络攻击已成为常态。每天都有无数的自动化工具在扫描互联网上的每一个角落,寻找可能的漏洞。很多人认为只有大型企业才会成为攻击目标,但实际上,由于攻击成本的降低和工具的普及,任何暴露在互联网上的服务都可能成为攻击对象。
真实案例分析
扫描攻击实例
我部署在 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 地址频繁变化
- 攻击时间通常选择在深夜或节假日
常见攻击方式
- 端口扫描
- 批量扫描开放端口
- 识别常用服务(SSH、RDP、MySQL 等)
- 漏洞扫描
- 扫描已知漏洞的老旧软件
- 通过路径特征和文件名特征识别
- 自行构造输入, 通过输入验证漏洞
安全实践
使用 VPN 而非反向代理
大部分人都不会及时的升级软件, 最好是不要暴露自己的域名, 扫描既可以构造 postfix, 也可以构造 prefix, 各种子域名一顿试。
比如子域名重灾区:
nas
.example.comhome
.example.comdev
.example.comtest
.example.comblog
.example.comwork
.example.comwebdav
.example.comfrp
.example.comproxy
.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 站大佬们提出建议。