Openssh 安全最佳實踐


安全外殼協議或 SSH 是一種加密的網路協議,在 OSI 模型的第 7 層執行,允許遠端登入和其他網路服務透過不安全的網路安全地執行。

OpenSSH 是使用 SSH 協議進行遠端登入的主要連線工具。它加密所有流量以消除竊聽、連線劫持和其他攻擊。此外,OpenSSH 還提供大量安全隧道功能、多種身份驗證方法和複雜的配置選項。本文介紹了保護您的 SSH 伺服器設定的重要任務。

使用強密碼

密碼是由字元組成的字串,人們可以使用它來登入並訪問檔案、程式和其他資源。密碼有助於確保只有獲得授權的人才能訪問伺服器。密碼可以由字母、數字、符號和空格組成。它應該易於記憶且對您來說是唯一的,但對其他人來說不容易猜測。不要使用 `admin123` 或 `admin` 等。

更改 SSH 預設埠

SSH 管理的預設埠是 22,您應該更改它,使其更難以察覺您的伺服器正在執行 SSH 管理。SSH 配置檔案位於 /etc/sshd/ 目錄中,您必須編輯配置檔案 /etc/ssh/sshd_config。要編輯 sshd_config 檔案,請使用以下命令:

$ nano /etc/ssh/sshd_config

搜尋“Port”行,命令列應如下所示:

Port 22

將其更改為您喜歡的埠號,例如,我們使用埠號 1337,如下所示:

Port 1337

請選擇尚未在伺服器上使用的埠。要獲取當前正在使用的埠列表,請使用以下命令:

$ netstat -ntap

始終使用 protocol2

SSH 有兩個協議版本,舊的協議 1 不安全,新的協議 2 安全。因此,我們應該始終使用 protocol2,因為它具有強大的密碼完整性檢查。

停用 root 登入

您應該停用 root 使用者的直接登入,因為針對 root 超級使用者的名稱有很多暴力攻擊。或者,使用者應該從命令列登入 root 使用者。要停用 root 登入,請在 ** /etc/ssh/sshd_config ** 檔案中使用以下行。

PermitRootLogin no

限制使用者

您應該新增一個新使用者以登入您的伺服器。假設您已建立使用者 tutorialspoint 和 linux 以登入您的伺服器,那麼您可以在 ** /etc/ssh/sshd_config ** 檔案中新增新行。

AllowUsers ruiko mikoto

使用基於金鑰的身份驗證

我們強烈推薦此選項來保護 openSSH,而不是使用基於密碼的身份驗證。首先,您必須在本地計算機上建立一個公鑰-私鑰對,如下所示:

$ssh-keygen -t rsa -b 4096

示例輸出應如下所示:

Generating public/private rsa key pair.
Enter file in which to save the key (/home/linux/.ssh/id_rsa):
Created directory '/home/linux/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/linux/.ssh/id_rsa.
Your public key has been saved in /home/linux/.ssh/id_rsa.pub.
The key fingerprint is:
4a:a1:22:b4:e8:79:12:19:1e:a0:30:ee:93:db:cd:a1 linux@linux
The key's randomart image is:
+--[ RSA 4096]----+
|+                |
|=.               |
|.= .             |
|= * . .          |
|oO. ... S        |
|..*.+...         |
| = E o.          |
| o               |
|                 |
+-----------------+

它將在 ~/.ssh/ 目錄中建立 2 個檔案,**id_rsa** 作為私鑰,**id_rsa.pub** 作為公鑰。如果提示輸入密碼,您可以將其留空或鍵入您的密碼。建議使用密碼保護您的金鑰。現在使用 **ssh-copy-id** 命令將公鑰 **id_rsa.pub** 上傳到您的伺服器,如下所示:

$ssh-copy-id -i ~/.ssh/id_rsa.pub user@serverip

它將您的公鑰寫入伺服器中的 ~/.ssh/authorized_keys/ 檔案。現在開啟 ** /etc/ssh/sshd_config ** 檔案並取消註釋以下行。

AuthorizedKeysFile %h/.ssh/authorized_keys

現在使用以下命令重新啟動您的 ssh 伺服器:

$sudo systemctl restart sshd

最後,使用以下命令連線到您的伺服器:

$ssh -p '4422' 'user@serverIP'

恭喜!現在,您瞭解了“OpenSSH 安全最佳實踐”。我們將在下一篇文章中學習更多關於這些命令型別的知識。繼續關注!

更新於:2019年10月18日

242 次瀏覽

啟動您的 職業生涯

透過完成課程獲得認證

開始
廣告