域名劫持防護實戰
這一章把所有安全措施整合成一個可執行的行動清單。
完整安全防護架構
graph TD
ACCOUNT[注冊商帳號安全]
DOMAIN[域名本身保護]
DNS[DNS 記錄安全]
MONITOR[持續監控]
ACCOUNT --> A1[強密碼 + 密碼管理器]
ACCOUNT --> A2[雙因素認證 2FA]
ACCOUNT --> A3[唯一 Email 地址]
DOMAIN --> D1[Domain Lock 啟用]
DOMAIN --> D2[WHOIS 隱私保護]
DOMAIN --> D3[自動續費]
DOMAIN --> D4[DNSSEC]
DNS --> N1[Cloudflare 代理隱藏源 IP]
DNS --> N2[最少公開的 DNS 記錄]
DNS --> N3[CAA 記錄限制 SSL 簽發]
MONITOR --> M1[SecurityTrails 歷史記錄]
MONITOR --> M2[Google Alerts 品牌監控]
MONITOR --> M3[UptimeRobot 可用性監控]
操作清單:帳號安全
立即執行:
- [ ] 在密碼管理器中為注冊商帳號創建一個獨特的強密碼(20 位以上)
- [ ] 在注冊商開啟雙因素認證(優先使用 Authenticator App,而非 SMS)
- [ ] 確認注冊商帳號關聯的 Email 也有 2FA
- [ ] 記錄:帳號用戶名、密碼位置、2FA 備份碼(存放在安全位置)
操作清單:域名保護
立即執行:
- [ ] 確認 Domain Lock 已開啟(Namecheap: 域名管理 → Registrar Lock = Active)
- [ ] 開啟 WHOIS 隱私保護(WhoisGuard / Privacy Protection)
- [ ] 確認自動續費已設置且付款方式有效
- [ ] 確認域名到期日(設置日曆提醒,到期前 60/30 天)
- [ ] 考慮啟用 DNSSEC(Cloudflare 一鍵操作)
操作清單:DNS 記錄安全
立即執行:
- [ ] 把 DNS 管理遷移到 Cloudflare(免費且更安全)
- [ ] 審查所有 DNS 記錄,刪除不需要的記錄
- [ ] 為主網站和 www 子域名開啟 Cloudflare 代理(橙色雲朵)
- [ ] 確認 Email 相關記錄只有郵件服務器需要(
mail子域名可以不用代理) - [ ] 添加 CAA 記錄,限制只有你使用的 CA 能簽發憑證:
CAA @ 0 issue "letsencrypt.org" CAA @ 0 issuewild "letsencrypt.org"
監控:如何發現你的域名被攻擊
工具一:UptimeRobot(免費)
監控你的網站可用性。如果 DNS 被劫持,網站通常無法訪問,立刻收到通知。
設置 5 分鐘一次的監控,Email + 手機推送通知。
工具二:SecurityTrails 或 DNSHistory
定期查看你的域名 DNS 歷史記錄,發現異常變更。
工具三:Google Alerts
創建品牌名稱的 Google Alerts,發現惡意網站使用你的品牌名稱。
工具四:Have I Been Pwned
前往 haveibeenpwned.com,輸入你的注冊商帳號 Email,確認是否出現在已知的數據洩露中。
如果懷疑 DNS 被劫持
緊急診斷步驟:
# 步驟一:查詢你的域名,對比 IP 是否正確
dig A yourdomain.com @8.8.8.8 ← 用 Google DNS
dig A yourdomain.com @1.1.1.1 ← 用 Cloudflare DNS
# 如果兩個結果不同,或與你期望的 IP 不同,可能有問題
# 步驟二:查詢 NS 記錄,確認 Name Server 沒有被修改
dig NS yourdomain.com @8.8.8.8
# 步驟三:用 dnsleak 測試工具
# dnsleaktest.com
發現問題後立即: 1. 立刻登入注冊商帳號(確認能登入) 2. 查看帳號活動日誌(有沒有未授權的登入) 3. 更改密碼 4. 聯繫注冊商技術支持
年度 DNS 安全審查清單
每年做一次完整審查:
- [ ] 審查所有 DNS 記錄(刪除過時的記錄)
- [ ] 審查 App 和服務對注冊商帳號的授權
- [ ] 確認 DNSSEC 正常運行
- [ ] 確認 SSL 憑證自動更新正常
- [ ] 確認 SPF/DKIM/DMARC 設置仍然正確
- [ ] 確認備用域名(拼寫錯誤版本)已注冊且續費
下一章:故障排查——出問題時如何快速定位並修復。