如何保護 SSH 伺服器的安全

如何保護 SSH 伺服器的安全

保護SSH連線的安全性可協助您保護 Linux 系統和資料。系統管理員和家庭用戶還需要保護面向互聯網的電腦。這裡有 10 種簡單的方法來幫助您保護SSH 伺服器

有關 SSH 安全性的一些基礎知識

SSH 代表安全外殼。 SSH 協定或軟體工具允許系統管理員和使用者使用該協定與遠端電腦建立安全連線。

SSH 協議是一種加密協議,旨在透過不安全的網路(例如 Internet)提供安全連接。 Linux 中的 SSH 是基於 OpenSSH 專案的便攜式版本所建構的。它以經典的客戶端-伺服器模型實現,其中 SSH 伺服器接受來自 SSH 客戶端的連接。客戶端用於連​​接到伺服器並將會話公開給遠端使用者。伺服器接受連線並啟動會話。

在預設配置中,SSH 伺服器將「偵聽」傳輸控制協定 (TCP) 連接埠 22 上的傳入連接。由於這是一個標準化且流行的端口,因此它是攻擊者威脅和惡意機器人的目標。

惡意行為者會啟動機器人來掃描IP 位址範圍以尋找開放連接埠。然後它會探測這些連接埠是否存在可利用的漏洞。認為我很安全,有很多比我更大更好的目標可供壞人瞄準,這是完全錯誤的。這些機器人不會根據任何標準選擇目標,它們只是尋找滲透系統的方法。

如果您不保護您的系統,您將成為受害者。

安全摩擦

安全摩擦點是指因安全要求而導致主要任務被阻止或延遲的任何情況。

當您實施安全措施時,安全摩擦會導致使用者和其他人(在任何層級)感到不適。剛接觸電腦系統的人可能會擔心每次登入大型主機時是否都需要輸入密碼。對他們來說,這也是一種安全摩擦。

引入安全措施通常會導致某些人產生某種形式的摩擦。企業主必須為這些措施付費。電腦使用者可能必須改變習慣或記住不同的身份驗證訊息,添加步驟才能成功連接。系統管理員將需要做額外的工作來實施和維護新的安全措施。

緊固和鎖定 Linux 或類 Unix 作業系統可以很快。這裡的安全措施是一組易於遵循的步驟,無需第三方應用程式和深度防火牆幹預即可提高電腦安全

使用 SSH 協定版本 2

2006年,SSH協定從版本1更新到版本2。這是一個重大升級。有許多變更和改進,特別是在加密和安全性方面,並且版本 2 不向後相容版本 1。要阻止來自版本 1 用戶端的連接,您可以指定電腦僅接受來自版本 2 的連接。

為此,請使用以下命令編輯 /etc/ssh/sshd_config 檔案:

sudo gedit /etc/ssh/sshd_config

如何保護 SSH 伺服器的安全

新增以下行:

Protocol 2

如何保護 SSH 伺服器的安全

並儲存文件,然後使用以下命令重新啟動 SSH 守護程式:

sudo systemctl restart sshd

如何保護 SSH 伺服器的安全

透過切換到另一台電腦並嘗試透過 SSH 連接到測試電腦來測試新設定的實際運作。我們將使用 -1(協定 1)選項強制 ssh 指令使用協定版本 1。

ssh -1 [email protected]

如何保護 SSH 伺服器的安全

連線請求被拒絕。確保您仍然可以連接到協定 2。我們將使用 -2(協定 2)進行測試。

ssh -2 [email protected]

如何保護 SSH 伺服器的安全

SSH 伺服器要求輸入密碼這一事實是一個積極信號,表明連接已建立並且您正在與伺服器互動。現代 SSH 用戶端將預設使用協定 2,只要客戶端是最新的,我們就不需要指定協定 2。

ssh [email protected]

如何保護 SSH 伺服器的安全

連線已被接受。

避開 22 號登機口

連接埠 22 是 SSH 連線的標準連接埠。如果使用不同的連接埠,則會為您的系統添加一些隱密安全性 (STO)。透過模糊性實現的安全永遠不應被視為真正的安全措施。事實上,一些更聰明的攻擊機器人會探測所有開放連接埠並決定它們正在執行什麼服務,而不是依賴簡單的連接埠搜尋清單並假設它們通常提供服務。但使用非標準連接埠可以幫助減少連接埠 22 上的不良流量。

若要設定非標準端口,請按上述方式編輯 SSH 設定檔。

如何保護 SSH 伺服器的安全

刪除連接埠行開頭的 #並將 22 替換為您選擇的號碼。儲存設定檔並重新啟動 SSH 守護程式。

在另一台電腦上,我們將使用 ssh 命令連接到伺服器。預設 ssh 指令使用連接埠 22:

ssh [email protected]

如何保護 SSH 伺服器的安全

連線被拒絕。重試並使用–p(連接埠)選項指定連接埠 470:

ssh -p 479 [email protected]

如何保護 SSH 伺服器的安全

連線已確認。

使用 TCP Wrappers 連線過濾器

TCP Wrappers 是一個易於理解的存取控制清單。它允許您根據連線請求的特徵(例如 IP 位址或主機名稱)拒絕和允許連線。 TCP 包裝器應與正確配置的防火牆一起使用,而不是代替它。

TCP Wrappers 預先安裝在Ubuntu 18.04 LTS電腦上。它必須安裝在 Manjaro 18.10 和 Fedora 30 上。

若要在 Fedora 上安裝,請使用下列命令:

sudo yum install tcp_wrappers

如何保護 SSH 伺服器的安全

若要在 Manjaro 上安裝,請使用下列命令:

sudo pacman -Syu tcp-wrappers

如何保護 SSH 伺服器的安全

包含兩個文件,一個文件保存允許列表,一個文件保存拒絕列表。使用以下命令編輯拒絕清單:

sudo gedit /etc/hosts.deny

如何保護 SSH 伺服器的安全

上面的命令將開啟 gedit 編輯器,其中檔案拒絕載入。

如何保護 SSH 伺服器的安全

您需要新增以下行:

ALL : ALL

並儲存文件。該行將阻止所有未經授權的存取。現在,我們需要向您想要接受的連線授予權限。為此,您需要編輯權限檔案:

sudo gedit /etc/hosts.allow

如何保護 SSH 伺服器的安全

上面的命令將開啟 gedit 編輯器,其中包含可下載的檔案。

如何保護 SSH 伺服器的安全

我們新增了 SSH 守護程式名稱、SSHD 以及允許建立連線的電腦的 IP 位址。儲存檔案並查看限制和權限是否有效。

首先,您將嘗試從主機上未包含的電腦進行連線。allow 檔案:

如何保護 SSH 伺服器的安全

連線被拒絕。我們將嘗試從 IP 位址為 192.168.4.23 的電腦進行連線:

如何保護 SSH 伺服器的安全

連線已接受。

這裡的例子只允許一台機器連接。 TCP 包裝器非常靈活,它支援主機名稱、通配符和子網路遮罩來接受來自 IP 位址範圍的連線。

拒絕無密碼的連線請求

雖然不太好,但 Linux 系統管理員可以建立沒有密碼的使用者帳戶。這意味著從此帳戶進行遠端連線不需要密碼。這些連線將被接受,但不會經過身份驗證。

SSH 的預設設定接受沒有密碼的連線請求。我們可以輕鬆更改它並確保所有這些連接都經過身份驗證。

您需要編輯 SSH 設定檔。

如何保護 SSH 伺服器的安全

在檔案中向下捲動,直到看到#PermitEmptyPasswords no的行。刪除行開頭的 # 並儲存檔案。重新啟動 SSH 守護程式。

使用 SSH 金鑰代替密碼

SSH 金鑰提供了一種登入 SSH 伺服器的安全性方法。密碼可能被破解、猜測或暴力破解。 SSH 金鑰不易受到此類攻擊。

產生 SSH 金鑰時,您將建立一個金鑰對。一個是公鑰,一個是私鑰。公鑰安裝在您要連接的伺服器上。私鑰安全地保存在您的電腦上。

SSH 金鑰允許在沒有密碼的情況下建立連接,這比使用密碼驗證的連接更安全。

發出連線請求時,遠端電腦使用公鑰的副本會建立傳送回電腦的加密訊息。由於它是用公鑰加密的,因此電腦可以用私鑰解密它。

然後,電腦從訊息中提取一些訊息,對其進行加密,然後將其發送回伺服器。如果伺服器可以使用公鑰的副本對其進行解密。如果訊息中的資訊與伺服器發送給您的資訊匹配,則連線將得到確認。

此處,使用者使用 SSH 金鑰與 192.168.4.11 處的伺服器建立連線。請注意,系統不會提示他們輸入密碼。

ssh [email protected]

如何保護 SSH 伺服器的安全

完全禁用密碼驗證

如果您使用 SSH 金鑰,則可以完全停用密碼驗證。我們需要編輯 SSH 設定檔。

如何保護 SSH 伺服器的安全

向下捲動文件,直到看到以#PasswordAuthentication yes開頭的行。刪除行開頭的#,將 yes 更改為 no 並儲存檔案。重新啟動 SSH 守護程式。

禁用 X11 轉發

X11 轉送允許遠端使用者透過 SSH 會話從您的伺服器運行圖形應用程序,但很容易被不良行為者利用。最好透過編輯 SSH 設定檔將其關閉。

如何保護 SSH 伺服器的安全

向下捲動文件,直到看到行#X11Forwarding no,刪除該行開頭的#並儲存文件。重新啟動 SSH 守護程式。

設定空閒超時值

如果與電腦建立 SSH 連線且該電腦在一段時間內沒有任何活動,則可能會帶來安全風險。

因此,您應該設定超時限制。如果在時限內沒有任何活動,SSH 連線將會被中斷。我們再次需要編輯 SSH 設定檔。

如何保護 SSH 伺服器的安全

向下捲動文件,直到看到以#ClientAliveInterval 0開頭的行。刪除行開頭的 #,將數字 0 變更為您想要的值。通常人們將其設定為300秒,即5分鐘。儲存檔案並重新啟動 SSH 守護程式。

設定密碼輸入次數限制

定義確認次數限制有助於防止密碼猜測和暴力攻擊。在指定次數的身份驗證請求後,使用者將中斷與 SSH 伺服器的連線。預設情況下,密碼嘗試次數沒有限制,但您可以在 SSH 設定檔中進行編輯。

如何保護 SSH 伺服器的安全

向下捲動文件,直到看到以#MaxAuthTries 0開頭的行。刪除行開頭的 # 會將數字變更為所需的值。您可以將其設為 3。進行更改時儲存檔案並重新啟動 SSH 守護程序。

您可以透過嘗試連接並輸入錯誤的密碼來測試這一點。

如何保護 SSH 伺服器的安全

請注意,MaxAuthTries 數量大於允許使用者的嘗試次數。兩次嘗試失敗後,您將斷開連接,這意味著 MaxAuthTries 設定為 3。

禁用 root 登入

建議您不要以root身分登錄,只需在Linux上以普通使用者身分使用sudo來執行需要root權限的操作。您也不應該允許 root 登入 SSH 伺服器。僅允許普通用戶連線。如果他們需要執行管理層級的任務,也可以使用 sudo。如果必須允許 root 使用者登錄,您可以強制他們使用 SSH 金鑰。

編輯設定檔以停用 root 登入。

如何保護 SSH 伺服器的安全

向下捲動文件,直到看到以#PermitRootLogin Prevent-password開頭的行,刪除該行開頭的 #。

  • 如果要阻止root登錄,請將prohibit-password替換為no。
  • 如果您允許 root 登入但強制使用 SSH 金鑰,請保持禁止密碼不變。

儲存變更並重新啟動 SSH 守護程式。

最後一步

當然,如果您不需要在電腦上執行 SSH,請使用以下命令將其關閉:

sudo systemctl stop sshd
sudo systemctl disable sshd

祝您成功!


什麼是惡意軟體 HackTool:Win32/Keygen?如何去除?

什麼是惡意軟體 HackTool:Win32/Keygen?如何去除?

您是否掃描過您的設備並發現它感染了 HackTool:Win32/Keygen?在您使用破解或金鑰產生器啟動進階軟體後,Windows Defender 可能會自動警告您有關此惡意軟體的存在。

在 Windows 10 上建立備份和還原點(Restore Point)的說明

在 Windows 10 上建立備份和還原點(Restore Point)的說明

探索如何在Windows 10上建立和管理還原點,這是一項有效的系統保護功能,可以讓您快速還原系統至先前狀態。

在 Windows 10 中開啟裝置管理員的 15 種方法

在 Windows 10 中開啟裝置管理員的 15 種方法

您可以使用以下 15 種方法輕鬆在 Windows 10 中開啟<strong>裝置管理員</strong>,包括使用命令、捷徑和搜尋。

Windows「顯示桌面」的 10 種超快速方法

Windows「顯示桌面」的 10 種超快速方法

很多人不知道如何快速顯示桌面,只好將各個視窗一一最小化。這種方法對於用戶來說非常耗時且令人沮喪。因此,本文將向您介紹Windows中快速顯示桌面的十種超快速方法。

如何使用 Windows Repair 修復 Windows 錯誤

如何使用 Windows Repair 修復 Windows 錯誤

Windows Repair 是一款有效的 Windows 錯誤修復工具,幫助使用者修復與 Internet Explorer、Windows Update 和其他重要程式相關的錯誤。

如何在 Windows 10 中開啟資料夾選項或檔案總管選項

如何在 Windows 10 中開啟資料夾選項或檔案總管選項

您可以使用檔案總管選項來變更檔案和資料夾的工作方式並控制顯示。掌握如何在 Windows 10 中開啟資料夾選項的多種方法。

有關在 Windows 10 上刪除使用者帳戶的 5 種方法的說明

有關在 Windows 10 上刪除使用者帳戶的 5 種方法的說明

刪除不使用的使用者帳戶可以顯著釋放記憶體空間,並讓您的電腦運行得更流暢。了解如何刪除 Windows 10 使用者帳戶的最佳方法。

如何使用Bootsect /nt60將VBC更新為BOOTMGR

如何使用Bootsect /nt60將VBC更新為BOOTMGR

使用 bootsect 命令能夠輕鬆修復磁碟區引導程式碼錯誤,確保系統正常啟動,避免 hal.dll 錯誤及其他啟動問題。

Windows 11 中的存檔應用程式功能是什麼?應該啟用還是停用它?

Windows 11 中的存檔應用程式功能是什麼?應該啟用還是停用它?

存檔應用程式是一項功能,可以自動卸載您很少使用的應用程序,同時保留其關聯的檔案和設定。了解如何有效利用 Windows 11 中的存檔應用程式功能。

如何在 Windows 10 上為 BlueStacks 5 啟用虛擬化 (VT)

如何在 Windows 10 上為 BlueStacks 5 啟用虛擬化 (VT)

要啟用虛擬化,您必須先進入 BIOS 並從 BIOS 設定中啟用虛擬化,這將顯著提升在 BlueStacks 5 上的效能和遊戲體驗。