Ssh

sudo 的簡單多級身份驗證

  • August 21, 2011

我有一個啟用了基於密碼的 SSH 的 FreeBSD 伺服器。我想啟用sudo,但我不希望潛在的攻擊者遠離 root 訪問的一個密碼。我目前的解決方案是使用公鑰以 root 身份登錄(對 root 禁用遠端密碼身份驗證),而我的普通使用者不在輪子中,sudo也沒有安裝。

過去,我使用一次性密碼進行 sudo 訪問(我可以公開密鑰進入系統,但 sudo 需要 OTP,並且有 30 分鐘的超時時間讓我無需重新驗證所有時間)。然而,這是相當麻煩的,至少對於 OPIE/S/Key 來說是這樣。使用硬體令牌可能沒問題,但我目前沒有。

我一直在尋找可以讓我通過代理轉發使用 SSH 公鑰對 sudo 進行身份驗證的東西。 pam_sshFreeBSD 包含的似乎並沒有這樣做——它只是通過查看使用者是否可以解密伺服器上的私鑰來進行身份驗證。我找到了,但我在其他地方發現很少提及它。現在是 0.9,但我有點猶豫是否相信通往根目錄的程序的網關,我找不到太多人們實際使用的證據。pam_ssh_agent_auth

所以,我的問題基本上是2:

  1. pam_ssh_agent_auth在野外使用可靠嗎?
  2. 是否有另一個好的解決方案來啟用 sudo,同時仍然有超過登錄密碼的障礙?我曾想過擁有第二個具有 sudo 訪問權限且沒有密碼身份驗證的帳戶,但這似乎也有些麻煩。

您已經通過 OTP 解決了這個問題(更多安全性 = 更多箍),我無法評論 pam_ssh_agent_auth。但似乎您真正關心的不是 sudo,而是網路級訪問。換句話說,您似乎關心從一個或多個特定主機而不是特定係統帳戶授予使用者的權限。如果是這樣,請考慮在 SSH 守護程序前實施埠敲門方案,這樣 SSH 只能從特定 IP 和知道秘密敲門的人訪問。之後,來自已知主機的正常舊公鑰身份驗證就足夠了。如果攻擊者此時仍然可以獲得 shell 訪問權限,那麼無論如何您都可能被擊敗。

我能想到的唯一另一種情況是在受信任的主機上使用 ssh 代理,當你在不受信任的網路上時,你可以將你的連接反彈掉(因為你在 bsdworld,你甚至可以在您的主機正是這樣做的)。就我而言,攻擊者擁有 shell 訪問權限的任何盒子都完全被攻破了。他們是否獲得根信任完全沒有實際意義。你的努力最好花在防止第一次成功入侵上。

乾杯,-G

引用自:https://serverfault.com/questions/61796