如何在 Linux 中更改 SSH 埠?


簡介

安全外殼 (SSH) 是一種協議,它在 Linux 系統中透過不安全的網路提供安全的通道。它通常用於遠端登入、檔案傳輸以及安全地在遠端機器上執行命令。SSH 是 Linux 系統管理員、開發人員以及遠端訪問其機器的使用者的重要工具。

檢查當前 SSH 埠

在繼續更改 SSH 埠之前,瞭解當前使用的埠號非常重要。預設情況下,SSH 服務偵聽埠 22。

但是,這是一個眾所周知的埠,並且經常成為攻擊者的目標。因此,建議將此預設埠號更改為非標準埠號。

使用命令“sshd -T | Grep Port”檢查當前埠

要檢查您的 SSH 服務當前偵聽哪個埠號,您可以在 Linux 終端中使用以下命令:

sshd -T | grep port 

此命令將顯示如下輸出:

port 22 addressfamily any 

listenaddress 0.0.0.0:22 listenaddress [::]:22 

輸出含義的解釋

上面的輸出顯示 SSH 服務當前正在埠 22 上偵聽 IPv4 和 IPv6 連線(由“listenaddress 0.0.0.0:22”和“listenaddress [::]:22”指示)。“grep”命令過濾掉除包含“port”一詞的所有文字行。第一行(“port 22”)向我們顯示伺服器的預設 SSH 偵聽埠號為 22。

如果您的系統管理員已將其標準值“22”更改為預設 SSH 埠,您將在此輸出中看到該新值而不是“22”。記下此資訊在為基於 Linux 的系統選擇新的非標準埠號時將非常有用。

選擇新的埠號

選擇新埠號的指南

檢查當前 SSH 埠後,下一步是選擇一個新的埠號。務必選擇一個隨機埠號,該埠號不會被 Linux 系統上的其他服務常用。這將有助於防止攻擊者輕鬆找到並利用您的 SSH 服務。

網際網路號碼分配機構 (IANA) 建議將 49152 到 65535 之間的埠號用於私有或臨時埠。此埠範圍保留用於動態或私有用途,不應由任何註冊服務使用。

所選的新埠號也應該易於記憶,以免以後忘記。確保所選埠號符合組織中實施的任何安全策略。

常用備用埠

雖然可以選擇許多可用的埠,但有些埠已成為預設 SSH 埠 (22) 的更受歡迎的替代品。其中一個替代埠是埠 2222,由於易於記憶並在 ISP 和防火牆中註冊,因此隨著時間的推移而越來越受歡迎。另一個常用的替代埠是埠 443,HTTPS 流量使用該埠。

由於大多數防火牆允許 HTTPS 流量無檢查地透過,因此使用此備用 SSH 埠可以幫助避免網路管理員的檢測,否則這些管理員可能會阻止使用非標準埠。其他常用的備用埠包括 992、2020 和 8080。

但是,需要注意的是,雖然這些是更改 Linux 系統中 SSH 埠的不錯選擇,但它們在攻擊者中仍然廣為人知,這些攻擊者可能會在嘗試找到易受攻擊的系統時掃描這些埠。因此,建議您選擇唯一的未使用的較高範圍埠(如前面提到的 49152-65535 之間的埠),以獲得最大的安全優勢。

編輯 SSH 配置檔案

選擇新的埠號後,下一步是編輯 sshd_config 檔案。此配置檔案確定 SSH 伺服器的行為方式,並允許您自定義其設定。

要訪問該檔案,請在 Linux 機器上開啟任何文字編輯器,然後導航到 /etc/ssh/sshd_config。您可以使用任何喜歡的文字編輯器,但在命令列環境中,nano 和 vim 是常用的編輯器。

$ sudo vim /etc/ssh/sshd_config

使用文字編輯器修改 sshd_config 檔案

在您選擇的文字編輯器中開啟 sshd_config 檔案,找到顯示“#Port 22”的行。“#”符號用於註釋掉行,因此請將其從此行中刪除,並將“22”更改為您選擇的埠號。

#Port 22

Port 22

透過按 Ctrl + O 或使用編輯器的“儲存”功能儲存對 sshd_config 檔案所做的更改。然後透過按 Ctrl + X 退出編輯器。

需要進行的更改說明

在配置檔案中需要進行的唯一更改是修改前面提到的“Port”設定。除非您知道自己在做什麼,否則不要進行任何其他更改,因為它們可能會影響 SSH 功能。

值得注意的是,如果您出於安全原因更改 SSH 埠號,建議您還透過在此同一配置檔案中設定“PermitRootLogin no”來停用透過 SSH 的 root 登入。透過使用新的埠號和其他推薦的安全設定修改此配置檔案,您可以顯著降低對不安全埠的攻擊的脆弱性,同時仍允許透過另一個安全通道進行授權訪問。

重新啟動 SSH 服務

編輯 sshd_config 檔案後,是時候重新啟動 SSH 服務以應用更改了。您可以在終端上使用以下命令執行此操作:

systemctl restart sshd

此命令將停止然後重新啟動 SSH 服務,並使用新的配置。如果在此階段遇到任何錯誤,可能是由於配置檔案存在問題。

使用命令列檢查新埠是否正常工作

要檢查新埠是否正常工作,可以使用以下命令:

ssh -p [new_port_number] [username]@[ip_address]

將“[new_port_number]”替換為您選擇的埠號,“[username]”替換為您的使用者名稱,“[ip_address]”替換為伺服器的 IP 地址。如果一切配置正確,您應該能夠使用新埠上的 SSH 連線到伺服器。需要注意的是,更改預設 SSH 埠並不能使您的系統完全安全。

但是,它確實透過使攻擊者更難以透過常用埠攻擊您的系統來增加額外的安全層。始終建議實施多層安全措施以保護儲存在伺服器上的敏感資訊。

結論

更改預設 SSH 埠是您可以採取以保護 Linux 系統安全的重要步驟。透過使用非標準埠,您可以使攻擊者更難以找到您的伺服器並對其發起攻擊。雖然這不是萬無一失的解決方案,不應是採取的唯一安全措施,但它是保護系統安全的重要步驟。

還必須記住,僅更改 SSH 埠並不能使您的系統完全安全。您還應該啟用其他安全措施,例如配置防火牆、停用 root 登入以及使用基於金鑰的身份驗證。

透過遵循本文中概述的步驟,您可以輕鬆更改 Linux 系統上的預設 SSH 埠並提高其整體安全性。請注意安全!

更新於:2023年8月24日

384 次檢視

開啟你的職業生涯

透過完成課程獲得認證

開始學習
廣告