INCOGNITO VPS
security 10 分鐘閱讀 更新 July 17, 2026

強化新 VPS

回答

強化新 VPS 約需二十分鐘:停用密碼與 root SSH 登入、啟用僅金鑰認證、設定 nftables 預設拒絕入站、啟用自動安全性更新,並安裝 fail2ban。這五個步驟能消除絕大多數的實際入侵。

實際入侵伺服器的因素

不是零時差漏洞。實際上是:對弱憑證的 SSH 密碼暴力破解、數月未修補的服務、暴露的管理後台配預設密碼,以及操作者安裝的應用程式漏洞。這清單無趣,且十五年未變。

以下清單按每步每分鐘能消除多少風險排序。照順序執行,失去耐心就停下——您仍已消除大部分風險。

步驟 1 — 僅限 SSH 金鑰

此單一變更即可完全消除最常見的攻擊。產生一把 Ed25519 金鑰,將公鑰上傳至伺服器,然後編輯 /etc/ssh/sshd_config,設定 PasswordAuthentication noPermitRootLogin prohibit-passwordKbdInteractiveAuthentication no

在關閉第一個終端機前,請在第二個終端機測試金鑰。將自己鎖在門外雖然難堪,且在可存取主控台的機器上完全可恢復——但還是請依正確順序操作。

第二步——預設拒絕的防火牆

在現代 Debian 與 Ubuntu 上使用 nftables,在 RHEL 衍生版本上使用 firewalld。預設拒絕入站,允許已建立與相關連線,允許您的 SSH 連接埠,允許工作負載實際需要的連接埠,其餘一律阻擋。

重要的紀律是「其餘一律阻擋」正是重點。一個在除錯期間加入寬鬆規則且從未移除的防火牆,等於沒有防火牆。

  • 預設政策:丟棄入站,接受出站
  • 接受已建立與相關連線
  • 接受 loopback
  • 接受 SSH 連接埠,最好加上速率限制
  • 接受工作負載連接埠,明確列出
  • 接受 ICMP echo——不要破壞路徑 MTU 探索

第三步——自動安全性更新

在 Debian 與 Ubuntu 上使用 unattended-upgrades,在 RHEL 衍生版本上使用 dnf-automatic,僅設定安全性更新。多數入侵是利用幾個月前就已修補的漏洞。

若您的工作負載可容忍,請在維護時段啟用自動重新開機。核心更新在重新開機前不會生效,而一部運行 400 天且有 11 個未處理核心 CVE 的伺服器,不是值得驕傲的事。

第四步——fail2ban,以及其實際價值的說明

在已停用密碼驗證的情況下,fail2ban 能阻止的實際入侵相對有限。它的真正價值在於大幅減少記錄雜訊,因為充滿數千筆失敗嘗試的記錄檔,不會有人閱讀;而沒人閱讀的記錄檔,正是真正的入侵能持續數週不被發現的原因。

預設的 sshd jail 已足夠。為您暴露在網際網路的其他服務加入 jail。

第五步——縮小攻擊面

執行 ss -tlnp,查看正在監聽的服務。在預設安裝中,這通常包含一些您不知道在運行且不需要的服務。請移除它們,而不是用防火牆擋住——未安裝的軟體沒有漏洞。

將僅需本機存取的服務綁定到 127.0.0.1,而非 0.0.0.0。一個在防火牆後方監聽所有介面的資料庫,距離公開只差一個錯誤設定。

可以略過的項目

變更 SSH 連接埠可減少記錄雜訊,但對針對性攻擊的防禦效果為零。若您喜歡,可以這樣做,但別將其視為安全性措施。連接埠敲門增加了脆弱性,卻只換來邊際效益。入侵偵測系統會產生警報,但在單一伺服器上,這些警報通常無人處理。

若您想在上述五個步驟之外再採取一項有意義的措施,那就是在不同司法管轄區進行加密的異地備份,並透過實際還原來測試。復原能力比多一層防禦更有價值。

FAQ

常見問題

01 變更 SSH 連接埠值得嗎?

為了減少記錄雜訊,值得。為了安全性,不值得——它能阻止機會主義掃描器,但對針對性攻擊的防禦效果為零。如果您喜歡更安靜的記錄,可以這樣做,但別將其視為控制措施。

02 如果使用 SSH 金鑰,還需要 fail2ban 嗎?

就直接安全性而言,幾乎不需要。但為了記錄衛生,需要——數千筆失敗嘗試會讓記錄無法閱讀,而沒人閱讀的記錄正是真正的入侵得以隱藏的原因。

03 我應該啟用自動重新開機嗎?

若工作負載可容忍,應該,在維護時段啟用。核心修補在重新開機前不會生效。長時間運行卻有未處理的核心 CVE,是負債,不是成就。

相關

55 秒部署

選擇管轄區。以加密貨幣付款。一分鐘內上手。

無需註冊帳戶、無需 Email 驗證、無需輸入信用卡。