
Home server 一公開就俾 bots 掃:上線前要做嘅 8 項保安檢查
由公開端口到登入紀錄,自架服務開放前逐項執好
「幾分鐘俾人搵到」講緊咩
XDA 作者話,home server 公開後幾分鐘內已經見到 bots 掃描,呢個速度唔算離譜。Masscan 官方資料寫明,單一部機喺特定硬件同頻寬條件下,每秒發出 1,000 萬個封包,可以五分鐘內掃過成個 IPv4 位址空間。Sophos 2019 年擺放嘅雲端 honeypot,最快上線 52 秒就收到攻擊嘗試。不過要分清楚:掃到 IP、撞登入頁同成功入侵係三件事。原文係作者個人觀察,Sophos 測試又係特登引人埋身嘅雲端 honeypot,兩者都唔代表每部家用 NAS 會喺同一時間內俾人攻破。

圖片:Cloudflare
HTTPS 會加密連線,唔會幫你隱形
有 domain 同 HTTPS 當然係正確做法,但公開憑證通常會寫入 Certificate Transparency 紀錄。Let’s Encrypt 講明,佢簽發嘅憑證全部都會提交到 CT log,外界可以監察憑證簽發;掃描工具同樣可以由新出現嘅 hostname 搵到服務。就算唔用 domain,IPv4 全網掃描一樣會搵到公開端口。安全設定要喺 DNS、憑證同 port forwarding 生效前完成,唔好諗住先開出去、之後得閒再執。
1:先列清楚邊啲服務真係要公開
第一步係由 router、NAS、防火牆同 Docker 設定逐個檢查公開端口,連舊有 port forwarding 規則都要睇。相簿或者公開網站可以經 reverse proxy 開放 443,但 NAS 管理介面、Home Assistant 後台、SSH、SMB、資料庫同 Docker API,通常冇理由直接面向全網。防火牆維持 default deny,關閉用唔着嘅 UPnP 同 NAT-PMP,亦要確認 app 冇自行打開入口。CISA 嘅建議同樣係先盤點公開資產,再移除冇實際用途嘅入口。
2:登入保護要頂得住撞密碼
公開服務唔可以保留預設帳戶同密碼,每個帳戶都要用獨立、隨機密碼,交畀密碼管理器保存;產品支援 passkey 就優先用,至少亦要開 MFA。管理員帳戶最好同日常帳戶分開,停用冇用嘅帳戶,再限制邊啲人有管理權限。SSH 應該用 key,關閉密碼登入同 root 遙距登入。改走 port 22 可以令紀錄少啲垃圾,但掃描器會掃晒其他端口,改 port 本身算唔上身份驗證保護。
3:更新要喺上線前做,之後繼續追
OS、NAS 韌體、reverse proxy、container image、外掛同公開 app 都要先升到受支援版本,唔再收保安更新嘅套件就要換走。自動檢查更新值得開,但涉及資料格式或者大版本升級時,最好先有可還原備份同測試安排,免得更新失手拖垮服務。公開入口愈少,追漏洞嘅範圍亦愈細;開住一堆「遲啲可能用」嘅服務,只會平白多幾套軟件要睇住。
4:Fail2Ban 同 CrowdSec 係減壓工具
Fail2Ban 會讀 SSH、Apache 等服務嘅紀錄,當同一 IP 多次登入失敗,就改防火牆規則暫時封鎖。官方亦直接提醒,佢只可以減慢錯誤登入嘗試,救唔到弱密碼。CrowdSec 會分析紀錄同攻擊模式,亦可以用社群情報;但裝好偵測引擎未代表已經封鎖流量,仲要配合對應嘅 remediation component。兩者揀邊套,要睇你用緊咩 reverse proxy、紀錄格式同維護能力,唔使為堆工具而兩套一齊裝。
5:保留存取紀錄,先知防線有冇做緊嘢
Reverse proxy、登入系統、SSH、防火牆同關鍵 app 嘅存取紀錄都要保留一段合理時間,亦要確認時間、來源 IP、帳戶、結果同 user agent 等欄位真係有寫低。平時要留意密集嘅 401/403、同一帳戶由多個來源撞入、突然新增管理員、異常下載量同陌生 outbound 連線。GeoIP block 可以減少雜訊,但攻擊者用 VPS 或住宅代理就繞得過,唔應該當成身份驗證替代品。
6:私人服務搬入 VPN 或零信任存取
只係自己或屋企人用嘅管理介面,較穩陣做法係收返入私人連線。Tailscale 呢類 WireGuard overlay 會用 NAT traversal 建立連線,多數情況唔使手動開公開端口;Cloudflare Tunnel 就由屋企 server 主動向外建立 tunnel,唔使新增 inbound 防火牆規則,再用 Access 喺前面檢查身份。要留意,Tunnel 自己唔會自動將公開 app 變成私人 app,仍然要設定 Access policy、MFA、最小權限同安全嘅管理帳戶。
7:公開服務要隔離,備份亦唔好長期掛載
確實要公開嘅 app,最好放喺獨立 container、VM 或 VLAN,限制佢可以接觸邊啲內部服務同資料夾。Reverse proxy 只轉發指定 hostname 同路徑,管理頁另設私人入口;container 唔好用 privileged mode,亦唔好隨手掛入 Docker socket。備份要有離線或不可變副本,兼且定期試還原。咁就算公開 app 出事,攻擊者都冇咁容易由相簿一路摸入 NAS 管理頁同全部備份。
8:由外面再驗一次
設定完成後,用流動數據或屋企以外嘅連線檢查公開 domain,再用 Shodan、Censys 或可信 port scanner 睇自己個 public IP 顯示咗咩服務。呢個結果未必即時更新,所以仲要直接檢查 router 同防火牆規則。最實際嘅上線次序係:先更新同備份,跟住縮端口、鎖登入、開紀錄,最後先公開 DNS 同憑證。Home server 長期見到掃描好正常,真正值得追嘅係有冇多咗入口、登入保護有冇失效,同軟件有冇停收更新。
參考來源
- XDA Developers — Bots found my home server in minutes - here’s how I kept them out — original report
- CISA Internet Exposure Reduction Guidance — 核實盤點公開資產、移除多餘入口、更新、MFA 同監察等建議
- Cybercriminals Attack Cloud Server Honeypot Within 52 Seconds — 核實 honeypot 上線 52 秒收到攻擊嘗試嘅背景數據同測試範圍
- MASSCAN: Mass IP port scanner — 核實五分鐘內掃描 IPv4 位址空間嘅工具能力同前設
- Certificate Transparency Logs — 解釋公開 TLS 憑證點解可以經 CT log 俾人發現
- Fail2Ban 官方程式庫 — 核實 Fail2Ban 讀取紀錄、封鎖重複登入失敗來源同本身限制
- CrowdSec Security Engine — 核實 CrowdSec 嘅紀錄分析、社群情報同 remediation 架構
- Cloudflare Tunnel 官方文件 — 核實 outbound-only tunnel 毋須開 inbound port 嘅運作方式
本文根據原文及公開資料整理;資料有出入時,以原文及官方資料為準。







