SSH 代表 Secure Shell,它有助於網絡服務的安全操作,例如 Telnet 服務器、文件傳輸和其他與不安全或安全網絡上的服務器相關的操作。

默認 SSH 配置不足以強化 SSH 隧道。需要配置其他設置以獲得完全的安全性。在本文中,學習 11 種保護 ssh 服務器的方法。

禁用通過 SSH 服務器的 root 登錄

root 用戶可以訪問服務器上的所有服務,因此最好不要冒險讓您的系統允許遠程 root 登錄。如果您的密碼在使用暴力攻擊或其他黑客工具時被洩露,則可能是密碼太弱了。因此,最佳做法是禁用遠程 root 登錄並堅持使用普通用戶。

要禁用遠程 root 登錄,請打開 sshd_config 文件。

$ sudo vim /etc/ssh/sshd_config

然後將“PermitRootLogin”設置為否。

禁用 ssh root 用戶的登錄。

禁用空密碼

一些 Linux 發行版創建沒有密碼的用戶,因此允許使用空白密碼進行遠程訪問的 ssh 連接可能很容易。因此,要禁用此服務,您必須在 sshd_config 文件中將“PermitEmptyPasswords”設置為 no。

PermitEmptyPasswords no

禁用空密碼登錄。

在整個 SSH 協議中使用基於公鑰的身份驗證。

強烈建議使用基於公鑰的身份驗證,因為 SSH 服務器支持各種身份驗證過程。黑客嘗試了多種方法,包括使用各種黑客工具破解密碼的蠻力攻擊。為防止這種情況,請使用基於公鑰的身份驗證。

首先,您需要使用 ssh-keygen 命令生成公鑰和私鑰。要生成密鑰,請運行以下命令:在此過程中,系統會詢問您在哪裡生成 ssh 密鑰。按 Enter 繼續使用默認值。然後將提示您輸入一個密碼短語,該密碼短語使用由特殊字符、字母和數字組成的強密碼引用您的 ssh 密鑰密碼短語。設置好密碼後,會在你家目錄下的 .ssh 目錄下生成 ssh 密鑰。

$ ssh-keygen -t rsa

生成 ssh 密鑰對。

在上傳您的公鑰之前,請確保您在遠程服務器上有一個 .ssh 目錄。如果未在您的主目錄中創建,請使用以下命令將您的公共 ssh 密鑰上傳到您的服務器。

$ cat .ssh/id_rsa.pub | ssh [email protected] 'cat >> .ssh/authorized_keys'

將您的公鑰上傳到您的服務器。

您現在可以使用您的公鑰通過 ssh 協議以 ubuntu 用戶身份登錄。

基於公鑰的身份驗證。

禁用基於密碼的 SSH 登錄驗證

強烈建議使用 ssh 公鑰身份驗證遠程訪問服務器,因為如果您不使用強密碼,暴力攻擊可能會暴露密碼。 要從 SSH 服務器禁用密碼驗證,請將“PasswordAuthentication”值設置為 no。

沒有密碼確認

更改 SSH 默認端口 22。

默認情況下,SSH 在系統上的端口 22 上運行。 更改 SSH 標準端口可能會通過避免打開端口的異常流量來增加額外的安全層。所以改變端口並不容易。 打開 sshd_config 文件並在端口部分設置所需的未使用端口號。以下示例將端口設置為 454。

更改 ssh 的默認端口。

使用 SSH 限制用戶登錄訪問。

SSH 服務器允許所有用戶遠程訪問服務器,但您可以覆蓋默認設置並僅允許或拒絕特定用戶通過 SSH 協議進行遠程訪問。輕鬆遠程訪問所有系統用戶登錄信息為黑客獲取訪問您系統的潛在途徑創造了條件。

要允許特定用戶通過 SSH 登錄,請將以下行添加到 sshd_config:

AllowUsers user1 user2 ubuntu

同樣,您可以通過添加以下代碼行來限制某些用戶並允許其他用戶通過 SSH 訪問:

DenyUsers root user3 user4

增強對 SSH 用戶/密鑰的強密碼的使用。

人們經常使用簡單的密碼登錄,例如 123456、something123 等,因此易於記憶。這就是暴力攻擊完美工作的原因。因為它試圖根據字典檢查密碼。因此,為避免這種情況,請使用包含特殊字符、大小寫字母、數字的密碼,並且密碼長度必須至少為 8 個字符。

配置空閒超時間隔

用戶經常讓 SSH 連接長時間處於空閒狀態,因此如果有人劫持 SSH 會話並試圖在沒有用戶當前在場的情況下做他們想做的事,那麼風險很高。因此,您可以在一段時間不活動後設置登錄會話超時,這樣當您的會話超時時,您將不得不再次登錄。要設置空閒超時,您需要在 sshd_config 文件中設置“ClientAliveInterval”值。下面的示例將超時值設置為 360(6 分鐘)。

客戶端存活時間間隔 360

使用 SSH 協議 2

SSH 有兩種協議變體:SSH 協議 1 和 SSH 協議 2。協議 1 是系統默認設置,不如協議 2 安全,後者應用批量加密、穩健算法和密碼檢查。要切換到協議 2,您需要將以下行添加到 sshd_config 文件中:

協議 2

使用 ssh 協議 2。

配置密碼嘗試限制

您可以限制 ssh 登錄的密碼嘗試次數,以便在有限的嘗試次數後斷開連接,從而為您的系統增加額外的安全層,防止機器人攻擊。為此,您需要設置“MaxAuthTries”指令值。在此示例中,我們將限制設置為 4。

最大身份驗證嘗試次數 3

限制 ssh 登錄嘗試。

禁用隧道和端口轉發

如果您不使用隧道和端口轉發服務,我們建議禁用它們,因為黑客可以使用它們來滲透您的系統。要實現這一點,請將以下指令值設置為 no :

AllowAgentForwarding 否

AllowTcpForwarding 否

無證隧道

最後,一旦一切設置完畢,不要忘記重新啟動 ssh 服務器以應用更改。

$ sudo systemctl restart ssh

結論是

在本文中,您學習了一些強化 SSH 服務器的常用方法,這些方法可以幫助您避免各種安全風險。希望你喜歡這篇文章。