SSH 指的是一種安全外殼,它有助於網絡服務的安全操作,例如 telnet 服務器、文件傳輸以及其他與不安全或安全網絡上的服務器相關的操作。

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

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

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

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

$ sudo vim /etc/ssh/sshd_config

然後將“PermitRootLogin”設置為 no

禁用 sshroot 用戶登錄。

禁用空密碼

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

PermitEmptyPasswords no

禁用空白密碼登錄。

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

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

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

$ ssh-keygen -t rsa

生成 ssh 密鑰對。

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

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

將公鑰上傳到服務器。

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

基於公鑰的身份驗證。

使用密碼禁用 SSH 登錄身份驗證

如果不使用強密碼,暴力攻擊可以暴露它們,所以強烈建議使用 ssh 公鑰認證來遠程訪問服務器。 要從 SSH 服務器禁用密碼驗證,請將 Password Authentication 值設置為“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分鐘。

ClientAliveInterval 360

使用 SSH 協議 2

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

協議 2

使用 ssh 協議 2。

配置密碼試用限制

您可以限制 ssh 登錄密碼嘗試的次數,這將斷開您的連接並進一步提高您對系統的 bot 攻擊的安全性。為此,您需要設置“MaxAuthTries”指令值。在此示例中,我們將限制設置為 4 次。

MaxAuthTries 3

限制 ssh 登錄嘗試。

禁用隧道和端口轉發

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

AllowAgentForwarding 否

AllowTcpForwarding 否

無證隧道

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

$ sudo systemctl restart ssh

結論是

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