Linux

潛在被劫持的 SSH 會話和 SSH 最佳實踐

  • April 3, 2017

我現在有點害怕。我正在通過 SSH 連接到我最近委託的遠端伺服器。我以root身份執行此操作。我已經安裝了fail2ban,並且在日誌中有大量被禁止的IP。

上次登錄時,我注意到我的終端真的很慢,然後我的網際網路連接中斷了。當我在大約 5 分鐘後重新購買它時,我重新登錄伺服器並做了一個“誰”並意識到有兩個 root 使用者登錄。我原以為如果我的連接終止了上次會話的程序停在伺服器上?

當我第一次斷開連接時,連接以“寫入失敗:管道損壞”結束。我終止了與另一個根的 bash 會話。我對 ssh 安全性不太了解,但是會話會被劫持嗎?有沒有辦法檢查這個?我需要通過 ssh 繼續登錄我應該採取哪些預防措施?如果我以某種方式通過代理訪問我的伺服器(就像一個處於中間攻擊的人),他們會劫持我的 ssh 會話嗎?

root 登錄可能是曾經是你的懸空 shell 會話。您的伺服器也可能因為所有嘗試登錄而受到 dDOS 攻擊。

鎖定 SSH。不允許 root 登錄,那些試圖暴力破解這台機器的請求將立即失敗(佔用更少的資源)。以普通使用者身份登錄並通過 提升權限sudo,無論如何您都應該這樣做。還將 SSH 登錄限制在客戶端 IP 列表中,這樣討厭的機器甚至無法嘗試登錄。

使用 SSH 密鑰而不是密碼進行使用者登錄。它們更容易處理,並且可以通過密碼保護自己,以防您不小心將私鑰洩露到錯誤的位置(讓您有時間更換它們並使舊密鑰失效)。正如評論中提到的@EEAA,如果您希望限制客戶端僅使用密鑰而不是密碼和密鑰,則還必須禁用基於密碼的身份驗證。

如果蒙古氏族繼續攻擊你的城牆,也許將 SSH 移動到不同的高埠(正如@AustinBurke 指出的那樣,在 1024 以下 - 以便使用特權埠)而不是 22。如果這樣,這將減少該埠上的流量對你來說是個問題(而且大多數機器人都不是很優雅,所以他們只會嘗試 22)。它不會阻止嘗試埠 22 甚至掃描您的機器以查看正在偵聽 SSH 的埠,並且在大多數情況下是不必要的不​​便。但這可能會有所幫助。

其他人可能能夠提供更多提示,但對於面向公眾的 SSH 伺服器來說,這些都是非常通用的安全措施。

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