Varidata 新聞資訊
知識庫 | 問答 | 最新技術 | IDC 行業新聞
Varidata 官方博客

如何保護SSH連接埠免受掃描

發布日期:2026-07-13
SSH連接埠掃描防護方案示意圖,保障伺服器遠端存取安全

要防範SSH連接埠掃描與攻擊,需要建構完善的防護體系。首先可將SSH連接埠變更為非標準連接埠編號,透過防火牆阻擋非必要存取,僅允許受信任的IP位址連線,為服務設定金鑰認證,停用root帳號登入,並開啟雙因素驗證強化防護。透過以上措施,可有效提升安全性、降低安全風險。

防範SSH連接埠掃描

透過提升SSH服務的隱蔽性與存取門檻,可降低連接埠掃描帶來的風險。攻擊者通常使用自動化工具掃描網路中的開放連接埠,若採取措施隱藏或保護連接埠,將大幅提升這類工具發現伺服器的難度。以下是三種可立即導入的有效方案。

變更SSH連接埠

絕大多數攻擊者都會針對22連接埠探測SSH服務,將服務遷移至其他連接埠可規避大量自動化掃描。這項簡單的變更雖無法阻擋針對性的定向攻擊,但能阻擋絕大多數基礎連接埠掃描嘗試。

連接埠變更步驟:

  1. 開啟SSH設定檔。

    sudo nano /etc/ssh/sshd_config
  2. 找到 Port 22 該行,將 22 變更為 1024–65535 之間的其他連接埠編號。

  3. 儲存檔案並離開。

  4. 重新啟動SSH服務。

    sudo systemctl restart sshd
  5. 更新防火牆規則,開放新連接埠的流量。

  6. 使用新連接埠連線至伺服器。

    ssh -p [new_port] user@your_server_ip

變更連接埠並無法讓SSH完全隱身,但足以協助您規避絕大多數自動化連接埠掃描。

使用連接埠敲門機制

連接埠敲門(Port Knocking)可為服務額外增加一層防護。預設狀態下連接埠保持關閉,只有當您按照特定順序對一組連接埠發起連線嘗試後,伺服器才會為您開放SSH連接埠。

  • 連接埠敲門要求您依照指定順序,逐一嘗試連線一系列處於關閉狀態的連接埠。

  • 在完成正確的敲門序列前,目標連接埠始終保持關閉。

  • 一般掃描下攻擊者無法偵測到您的連接埠,因此無法發起攻擊。

連接埠敲門設定步驟:

  1. 安裝連接埠敲門工具,例如 knockd

    sudo apt-get install knockd
  2. 編輯 knockd 設定檔,預設路徑為 /etc/knockd.conf

  3. 設定自訂的秘密連接埠序列,以及觸發連接埠開放的執行指令。

  4. 啟動 knockd 服務。

    sudo systemctl start knockd
  5. 連線至伺服器前,透過連接埠敲門用戶端發送敲門序列。

部署SSH蜜罐

蜜罐會偽裝成真實的SSH服務來誘捕攻擊者,當有人嘗試連線時,蜜罐會記錄其所有操作行為。您可透過這些資訊辨識攻擊行為、掌握威脅動向。

SSH蜜罐部署步驟:

  1. 選擇蜜罐工具,例如 CowrieKippo

  2. 將蜜罐安裝在目前的伺服器或獨立設備上。

  3. 設定蜜罐監聽22連接埠,或其他您想要監控的連接埠。

  4. 將真實的SSH服務遷移至其他連接埠。

  5. 監控蜜罐日誌,排查可疑活動。

透過變更連接埠、使用連接埠敲門與部署蜜罐,可大幅提升攻擊者進行連接埠掃描的難度。這些措施有助於保護伺服器免受未經授權的存取,確保服務安全運作。

透過防火牆限制SSH存取

IP白名單開放機制

僅允許受信任的IP位址連線,可顯著提升安全層級。在防火牆中設定僅接受指定IP的連線請求,等同於對其他所有位址關閉存取入口,能在攻擊者到達登入驗證階段前就阻擋絕大多數攻擊。

IP白名單機制可大幅減少SSH暴力破解嘗試。攻擊者通常會掃描大範圍的位址區段,但只要其IP不在白名單內,防火牆就會直接阻擋,進而降低未經授權存取的風險,為伺服器提供更可靠的防護。

SSH存取IP白名單設定步驟:

  1. 確認受信任的IP位址,例如辦公網路或家用網路的對外IP。

  2. 在防火牆中新增規則,僅允許這些IP的流量通過。

  3. 測試連線,確認仍可正常存取伺服器。

  4. 若受信任IP有所變動,請及時更新白名單列表。

小提醒:若您經常出差或使用動態IP,可考慮透過VPN連入固定位址後再連線伺服器。

阻擋未經授權的存取

在防火牆層級阻擋未經授權的存取,可提供高強度的安全防護,在攻擊者嘗試猜測密碼或金鑰之前就將其阻擋在外。目前眾多企業皆採用此方案防範非預期連線。

下表展示了阻擋SSH未經授權存取對安全成效的提升效果:

方案說明

防護成效

透過防火牆阻擋SSH與RDP通訊

未發生針對伺服器管理連接埠的未經授權攻擊事件。

採用Safous特權遠端存取方案實現安全連入

穩定運作超過一年,未發生任何未經授權的攻擊。

可將防火牆設定為丟棄白名單以外的所有流量,此方案能讓伺服器對絕大多數攻擊者近乎隱身,有效保護資料安全、降低資料外洩風險。

透過身分驗證強化SSH存取安全

停用root帳號登入

應停用root帳號登入,以防範暴力破解攻擊。攻擊者常將root帳號做為攻擊目標,因為該帳號擁有伺服器最高控制權限。停用root登入後,攻擊者必須同時猜中有效使用者名稱與密碼,攻擊難度大幅提升。

  • 停用root登入可避免帳號遭到直接鎖定攻擊。

  • 使用者必須使用一般帳號登入,提升攻擊複雜度。

  • 攻擊者若需取得高權限,必須進行權限提升操作,額外增加一層安全屏障。

在伺服器上安全停用root登入的操作方式:

  • 執行 sudo chmod 600 /etc/ssh/sshd_config,為SSH設定檔設定正確的權限。

  • 執行 sudo sed -i "s/#PermitRootLogin yes/PermitRootLogin no/" /etc/ssh/sshd_config 更新設定值。

完成變更後,重新啟動SSH服務使設定生效。

強制啟用金鑰認證

相較於密碼認證,金鑰認證能為SSH提供更強的安全保障。您可產生一組公開金鑰與私密金鑰,妥善保管私密金鑰並將公開金鑰上傳至伺服器。即便攻擊者得知使用者名稱,沒有私密金鑰也無法登入系統。

強制啟用金鑰認證的步驟:

  1. 使用 ssh-keygen 產生金鑰對。

  2. 透過 ssh-copy-id user@server 將公開金鑰複製到伺服器。

  3. 編輯 /etc/ssh/sshd_config,將 PasswordAuthentication 設定值改為 no

  4. 重新啟動SSH服務。

所有帳號皆應使用金鑰認證,此方式可阻擋絕大多數暴力破解攻擊,確保存取安全。

開啟雙因素驗證(2FA)

啟用雙因素驗證(又稱多因素驗證/MFA)可額外增加一層防護。開啟2FA後,登入必須同時驗證「所知資訊」(密碼或金鑰)與「所持物品」(驗證碼或驗證裝置)。

  • 2FA在密碼或SSH金鑰之外,增加了額外的驗證環節。

  • 即便攻擊者取得您的金鑰,仍需通過第二重驗證才能登入。

  • 此方案可有效抵禦多種憑證竊取攻擊。

驗證方式

說明

時間型一次性密碼(TOTP)

產生登入驗證碼,需搭配密碼管理員或身分驗證器App使用。

U2F / WebAuthn 硬體驗證裝置

登入時需實體碰觸裝置以完成安全驗證。

您可依自身需求選擇2FA方案,兩種方式皆能大幅降低攻擊成功的機率。

禁止空白密碼登入

允許SSH帳號使用空白密碼存在重大安全疑慮,會讓系統極易遭受未經授權的存取與暴力破解攻擊。安全規範強烈建議停用空白密碼,以提升系統安全性。

禁止空白密碼的操作方式:

  • 使用Vim開啟 /etc/ssh/sshd_config 檔案。

  • 找到 PermitEmptyPasswords 設定值所在行。

  • 取消該行註解,並將值設為 no。

這項簡單操作可彌補重大安全漏洞,確保系統維持高強度的防護等級。

強化SSH加密能力

需採用高強度加密演算法確保SSH連線安全。攻擊者常嘗試破解弱加密演算法,使用強加密可大幅提升資料竊聽與憑證竊取的難度。應定期檢查設定,確保始終使用最適合的加密方案。

使用高強度加密演算法與訊息驗證碼

加密演算法(Cipher)與訊息驗證碼(MAC)共同保障傳輸資料安全:加密演算法會對資料進行加密處理,防止內容被竊取讀取;訊息驗證碼則負責校驗資料完整性,避免資料在網路傳輸過程中遭到竄改。兩者皆應選用目前強度最高的選項。

可在SSH設定檔中設定相關選項。開啟 /etc/ssh/sshd_config,新增或更新以下設定行:

Ciphers aes256-ctr,aes192-ctr,aes128-ctr
MACs hmac-sha2-256,hmac-sha2-512

儲存檔案後重新啟動服務,確保每次SSH連線皆採用高強度加密。

小提醒:每次系統重大更新後都應複查加密設定,產業可能會推出新的加密標準,需持續維護加密強度。

設定SSH登入橫幅訊息

登入橫幅會在使用者登入前顯示提示資訊,可用於告知使用者安全規範,或向攻擊者明示SSH存取處於監控狀態。明確的橫幅雖無法提升加密強度,但能清楚規範存取規則,對部分攻擊具有嚇阻效果。

設定登入橫幅的步驟:

  1. 建立存放橫幅內容的文字檔,例如 /etc/ssh/sshd_banner

  2. 在設定檔中新增以下行:

    Banner /etc/ssh/sshd_banner
  3. 重新啟動SSH服務。

規範的登入橫幅除了能提醒使用者遵守存取規則,也能展現您對於加密安全與SSH防護的重視。

SSH安全監控與更新維護

開啟SSH日誌記錄

需開啟SSH服務的日誌功能,追蹤所有嘗試存取伺服器的行為。日誌記錄可擷取關鍵安全事件,協助儘早發現異常。開啟日誌後,您可以:

  • 記錄所有登入嘗試,包含成功與失敗的登入。

  • 追蹤可疑行為,例如重複性的密碼猜測動作。

  • 為異常事件設定告警,以便快速回應處置。

  • 透過排查未經授權的操作,辨識入侵嘗試。

  • 透過封鎖IP或更新設定,快速回應安全事件。

確認設定檔中的相關設定正確,即可啟用日誌功能。多數系統預設開啟SSH活動日誌,但仍建議檢查並調整設定,以獲得更完善的安全防護。

監控可疑活動

應定期檢視日誌,透過風險徵兆提前攔截攻擊、避免損失。重點監控項目包含:

  • 驗證日誌:記錄所有登入嘗試的來源資訊。

  • 存取日誌:排查異常或非預期的連線行為。

  • 指令歷史:核查是否有人執行了高風險指令。

若發現重複的失敗登入記錄或未知使用者,應立即展開調查,儘早處置可避免問題擴大。

維持SSH版本更新

必須維持軟體版本為最新狀態,版本更新會修復安全漏洞並新增功能。攻擊者常針對舊版本發起攻擊,因為舊版本存在已知的安全缺陷。應定期檢查更新並儘速安裝升級。

可透過系統套件管理員執行更新,範例如下:

sudo apt-get update
sudo apt-get upgrade openssh-server

更新完成後,複查設定檔確保設定值依然正確有效。維持版本更新可讓伺服器免於新型威脅的侵害。

SSH存取安全最佳實務

定期安全稽核

需定期執行安全稽核,確保營運環境安全。稽核可發現系統弱點,在被攻擊者利用前完成修復。應遵循規範流程,全面核查設定值與使用者活動。

下表列出了完整SSH安全稽核的核心步驟:

步驟

說明

1

啟用金鑰認證,提升安全等級。

2

停用root登入,防範未經授權的存取。

3

強制使用高強度加密,保護傳輸中資料。

4

維持系統更新,降低漏洞風險。

5

導入多因素驗證,額外強化防護。

6

開啟日誌與監控,追蹤存取與變更。

7

落實存取控制,限制使用者權限。

8

為SSH金鑰設定密碼,保護私密金鑰安全。

也應做好閒置連線管理,在設定檔中設定 ClientAliveIntervalClientAliveCountMax 參數,自動中斷非活動連線,降低未經授權存取的風險。

小提醒:建議每季安排一次安全稽核,透過複查日誌與設定發現異常活動。

定期核查使用者帳號

必須定期核查使用者帳號,維持SSH高安全等級。及時移除不再需要存取權限的帳號,核查權限設定,確保使用者僅擁有必要的權限。

整理所有擁有SSH存取權限的使用者清單,排查具有弱密碼或未設定金鑰的帳號,並立即修正或停用相關帳號。

  • 清理非活躍使用者。

  • 限制各帳號的權限範圍。

  • 所有使用者強制使用金鑰認證。

  • 排查空白密碼帳號並完成修正。

遵循以上實務可提升SSH安全等級。將定期稽核與帳號核查相結合,是產業公認的最佳實務,能有效保護伺服器免於各類威脅。

透過變更預設連接埠、設定防火牆、採用強身分驗證,可有效保護SSH連接埠安全。請定期複查設定、更新安全工具,保持對可疑活動的警覺。

  • 變更服務連接埠

  • 僅開放受信任IP

  • 強制啟用金鑰認證

  • 監控日誌並更新軟體

常見問題

遠端存取伺服器最安全的方式為何?

建議使用搭配金鑰認證的SSH方式,此方案具備極高的安全性。請始終妥善保管私密金鑰,切勿向他人洩漏。

多久需要更新一次SSH設定?

建議每隔數個月複查一次設定,關注最新的安全更新與產業最佳實務,依需求調整設定以持續保障安全。

可以在公用Wi-Fi環境下使用SSH嗎?

可以在公用Wi-Fi下使用SSH,但連線前請務必驗證伺服器指紋,採用強驗證方式,避免使用root帳號登入。

發現可疑的SSH登入嘗試該如何處理?

需立即回應:透過防火牆封鎖可疑IP位址,修改帳號密碼,並全面排查日誌,確認是否存在其他風險跡象。

如何判斷SSH連接埠是否正遭到掃描?

可檢視伺服器日誌,檢查是否存在針對SSH連接埠的重複連線嘗試。大量失敗登入記錄或未知IP位址的存取,通常代表連接埠正遭到掃描。

您的免費試用從這裡開始!
聯繫我們的團隊申請實體主機服務!
註冊成為會員,尊享專屬禮遇!
您的免費試用從這裡開始!
聯繫我們的團隊申請實體主機服務!
註冊成為會員,尊享專屬禮遇!
Telegram Teams