使用 IT 設定管理器

使用 IT 設定管理器

正如許多用戶所知,我為個人、工作和志工組織運行了大量 Debian 伺服器。我最近看到很多關於超級用戶和 IT 安全的帖子,內容涉及停用密碼以及僅使用基於金鑰的身份驗證。

root我對我的個人伺服器、我的工作筆記型電腦以及我大部分時間在工作之外使用的電腦的所有存取都使用基於金鑰的身份驗證。然而,要訪問任何不使用 WinSCP 的伺服器(我保存了密鑰,至少對於我的 Windows PC),我以我的標準用戶帳戶登錄,然後su使用很長的密碼登錄到 root。

在我不出於工作目的管理的伺服器上,我將這些金鑰保留在這三個位置,主要用於進行備份。我使用非常強的密碼(在我看來),並且僅PermitRootLogin withoutpassword(我喜歡配置文件讓我在句子中使用它們!)。當我從其他地方登入時,我使用帶有強密碼的常規帳戶,因為我沒有地方可以存放鑰匙,如果我需要從新設備正常登錄,我也沒有地方可以存放鑰匙

我認為這有兩種可能的解決方案:

  1. 將金鑰以純文字形式儲存或加密在遠端位置,從而停用我的伺服器的所有基於密碼的身份驗證方法。如果是這樣,我怎樣才能安全地將它們存放在哪裡以及如何防止它們損壞可能受到損害?
  2. 使用強大的普通用戶密碼,並每 90 天更改一次。我確信這是一個很好的做法,但我的記憶力真的很糟糕。我確信無論如何我都會繼續使用相同的密碼,這純粹是出於習慣,這破壞了這樣做的全部意義。

我真的很想使用方法 1,但我不知道對於如此多的伺服器來說最佳實踐是什麼,而且其中許多伺服器使用不同的密碼只是為了開始從新位置登入。例如,我經常使用手機透過隧道回家,或檢查遠端站點的服務狀態。

答案1

經驗和研究都顯示最安全的密碼是長度大而不複雜,這對於那些記憶力很差的人來說確實很糟糕(包括我!)。因此,在我看來,在管理大量伺服器時,使用基於金鑰的身份驗證是正確的方法。

同時,任何涉及安全和遠端儲存同一句話通常會刺耳。我不是說任何偏遠的地方可能不安全,但你無法知道它是否真的不安全。另一方面,從實用性上來說,你會有將 SSH 金鑰儲存在遠端位置。

因此,將這些成分混合在一起,我有兩個建議:

使用 IT 設定管理器

例如:Puppet、Chef 伺服器或類似伺服器。

您提到您有一個個人伺服器。大概這就是最不糟糕託管中央配置伺服器的地方。您可以建立一個模組,以加密形式保存您的 SSH 金鑰,並允許您的個人電腦、工作筆記型電腦和潛在的新裝置部署它。

我們用廚師服務員來執行這些任務。它有一個稱為數據袋的功能,其中非常有趣的一種稱為加密資料包它確實允許您儲存所有密碼、SSH 密鑰和任何敏感資料。

廚師建築

無論您選擇哪個組態管理器,您都可以使用它在兩台伺服器上部署金鑰個人電腦。

這種方法有一個很大的優點:如果您的私鑰因任何更改而洩露,您可以在一個地方更改它,它將部署在所有伺服器和客戶端上,而不會浪費任何時間。

但它有一個缺點。如果您打算從行動裝置(例如手機、平板電腦等)存取您的伺服器,您可能不會有Chef|Puppet|將您最喜歡的設定處理程序伺服器放在這裡那裡的客戶。

有關這些的更多資訊:

使用加密的本機檔案管理器

有些軟體可以加密您的金鑰,無論它們是密碼、SSH 金鑰還是銀行資料。這有一個明顯的缺點:為了保護您的密碼,您需要一個密碼(並且您可能需要一個非常好的密碼)。無論如何,如果您喜歡這種方法,您可以將加密金鑰保存到隨身碟中並隨身攜帶。

這還有另一個潛在的缺點:您可能會丟失您的筆式驅動器,有人可能會偷走它......在這種情況下,它是仍然加密,但您可能需要喝幾杯咖啡來更改所有 Debian 伺服器和用戶端上的 SSH 金鑰,這可能會讓您認為方法 1 更具可擴展性。

無論如何,我只知道一種足夠安全的軟體來儲存您的所有金鑰(順便說一句:您可以使用密碼(如上所述)、金鑰檔案或兩者來保護您的密碼檔案)。

如果您喜歡這種方法,您可能想看看保持通行證

相關內容