跳至正文

SSH 安全強化

SSH 安全性會依 Host 登入記錄、失敗次數、地區與 CIDR 規則維護封鎖清單。它保護的是 Host SSH 入口,不是 fn-knock 的 HTTP 身分驗證,也不能取代 SSH Key、停用弱密碼登入與系統更新。

此功能需要讀取 Host SSH Log 並管理防火牆。目前只有飛牛 fnOS 原生 FPK 提供完整功能;OpenWrt 在 Runtime 中明確停用,Docker、通用 Linux、群暉 DSM 7 SPK 與 Windows x86_64 也不提供完整功能。頁面顯示「目前環境無法使用」時,應在 Host 或上游防火牆設定 SSH 防護。

啟用前請保留可用的本機 Console 或可信任網路復原方式,避免封鎖目前的管理出口。

功能開關與頁面入口

  1. 系統設定 → 功能 中啟用「SSH 安全性」選單。
  2. 開啟 SSH 安全性,確認摘要中的可用狀態、偵測到的 SSH 連接埠、允許 CIDR 數量與有效封鎖數量。
  3. 展開「SSH 安全性設定」並儲存規則;儲存成功後會立即套用。SSH 連接埠或 Host 防火牆狀態改變時,再執行「同步防火牆」重建規則。

功能選單開關會控制頁面與後台功能是否啟用;設定卡片中的「啟用 SSH 安全性」則決定是否依 Log、地區與臨界值執行防護。儲存設定時,允許 CIDR 與有效封鎖會立即下發至偵測到的 SSH 連接埠;「同步防火牆」用於在連接埠、規則鏈或其他防火牆狀態改變後重新下發。

設定欄位

欄位預設值與範圍作用
啟用 SSH 安全性預設關閉監聽 SSH 登入 Log,並依臨界值或來源範圍維護封鎖
時間窗預設 10 分鐘,1~1440 分鐘統計同一來源在此時間窗內的失敗次數
失敗臨界值預設 5 次,1~1000 次達到臨界值後加入封鎖清單
封鎖時間預設 1 天,數值 1~365單位可選分鐘、小時或天;到期後自動解除
允許存取 SSH 的地區預設空白空白時不限制地區;非空白時只允許所選地區、自訂 CIDR 與內建本機來源
自訂 CIDR預設空白,每行一筆補上非標準 VPN、辦公室公網出口或其他固定 IPv4/IPv6 網段

地區可依省、市與電信業者選擇。依中國電信、聯通或移動細分 CIDR,需要 CIDR 位址資料庫 0.1.3 或更新版本。無法載入地區清單時,不要送出未經核對的限制範圍,可先只使用固定 CIDR。

內建本機來源包括 loopback、RFC 1918 私有網路、IPv4 鏈路本機、Tailscale 使用的 100.64.0.0/10,以及 IPv6 ULA/鏈路本機位址。這些來源不受地區或失敗次數封鎖,因此 Tailscale 存取仍應由 Tailnet ACL 控制。Headscale、WireGuard、ZeroTier 等若使用其他位址池,需將實際來源網段加入自訂 CIDR。

頁面會驗證自訂 CIDR;只要有格式錯誤就無法儲存。加入地區限制前,應先將目前的可信任出口與備援管理網路加入自訂 CIDR。

同步與清除防火牆

「同步防火牆」會重新偵測 SSH 連接埠,並將目前允許的 CIDR 與有效封鎖寫入 fn-knock 管理的防火牆規則。成功提示會顯示:

  • 下發的允許 CIDR 數量;
  • 重新同步的有效封鎖數量;
  • 偵測到並套用規則的 SSH 連接埠。

SSH 服務變更連接埠、系統防火牆重新載入,或規則狀態與頁面不一致時,應再次執行同步。

「清除 SSH 防火牆」會刪除 FN-KNOCK-SSH Rule Chain,並將目前有效封鎖標記為已解除。已儲存的地區、CIDR、臨界值與時間設定不會刪除;後續再次同步時,會依已儲存設定重新建立規則。

登入 Log

「登入 Log」分頁支援搜尋 IP、使用者或原始 Log,也可依全部、成功、失敗篩選。每筆記錄包括:

  • 時間與登入結果;
  • 使用者名稱,以及失敗時的無效使用者標記;
  • 來源 IP 與地理位置;
  • 驗證方式與 SSH 連接埠;
  • 供搜尋與疑難排解使用的原始 Log 資訊。

如果頁面長期沒有記錄,請先確認部署平台支援此功能、SSH 服務正在寫入系統 Log,並檢查 fn-knock 服務是否具備讀取 Log 的權限。

封鎖清單

「封鎖清單」會顯示來源 IP、地理位置、封鎖時間、到期時間、原因、失敗次數與當時的臨界值。封鎖原因包括:

  • 來源不在允許地區或自訂 CIDR 中;
  • 時間窗內的登入失敗次數達到臨界值。

頁面支援搜尋、分頁、單筆解除與批次解除。解除操作會將 IP 從此功能管理的防火牆規則中移除;若同一來源之後再次違反規則,仍會重新遭到封鎖。

建議設定順序

  1. 維持地區限制為空白,只設定較寬鬆的失敗臨界值與封鎖時間。
  2. 儲存後,分別從可信任網路與測試網路驗證 SSH 登入。
  3. 查看登入 Log 是否正確識別使用者、來源 IP、驗證方式與連接埠。
  4. 將固定 VPN、辦公室出口與備援網路加入自訂 CIDR。
  5. 再加入地區限制並儲存,分別從允許與不允許的來源驗證一次。
  6. 確認封鎖、到期解除、手動解除與再次觸發都符合預期。

地區與 CIDR 只能輔助判斷。行動網路、企業出口與 VPN 的地理位置可能變動;對管理入口而言,SSH Key、停用密碼登入、最小允許 CIDR、獨立 VPN 通道與上游防火牆限制更可靠。

常見問題

儲存後規則狀態與頁面不一致

執行「同步防火牆」,並核對成功提示中的 SSH 連接埠。若 Host 上有其他防火牆管理程式覆寫規則,應在其重新載入後再次同步。

管理出口遭誤封鎖

請優先從本機 Console 進入系統,在封鎖清單中解除對應 IP;無法進入頁面時,可清除 FN-KNOCK-SSH Rule Chain 或停用此功能,再補上可信任 CIDR 後重新同步。

地區與實際位置不一致

檢查 IP 地理位置服務與 CIDR 位址資料庫版本。Proxy、VPN、CGNAT 與電信業者的 IP 調度,都可能使來源地理位置與實際位置不同。

QQ 群組:1081609274