個人域名的安全實踐
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 站大佬們提出建議。