默認情況下,已知 SSH 協議偵聽端口 22。這很好,但出於安全原因,將默認端口更改為其他端口是個好主意。這大大降低了黑客使用 SSH 發起自動暴力攻擊的風險。本指南向您展示如何在 Linux 上將默認 SSH 端口更改為另一個端口。
先決條件
要開始使用,請確保您有一個 Linux 服務器實例。本指南使用 Ubuntu 20.04 服務器。
確保您還有一個 SSH 客戶端(例如 Putty)或客戶端 Linux 系統,以使用新端口建立與服務器的連接。
第 1 步:檢查 SSH 是否在默認端口上運行
首先,您需要確保 SSH 服務正在服務器上運行。為此,請運行以下命令:
$ sudo systemctl status ssh
輸出是確認 SSH 服務處於活動狀態。讓我們更進一步,確保它在默認端口上運行。運行以下 netstat 命令。
$ sudo netstat -pnltu | grep 22
第 2 步:選擇端口並配置 SSH
您可能知道,TCP 端口的範圍是從端口 0 到 65535。但是,端口 0 到 1024 被認為是為特殊服務指定的特權端口,例如 HTTP(端口 80)、FTP (21) 和 SMTP (25)。
選擇高於 1024 的端口,避免與特權端口衝突。在本例中,我們選擇將默認端口更改為端口 5466。修改以啟用此功能 /etc/ssh/sshd_config SSH 配置文件。
$ sudo vim /etc/ssh/sshd_config
在發現 #端口 22 如圖所示。
取消註釋並指定端口號。
在此之後,保存您的更改並退出配置文件。要保留更改,請重新啟動 SSH 服務。
$ sudo systemctl restart ssh
要驗證 SSH 是否正在偵聽新配置的端口,請運行以下命令:
$ sudo netstat -pnltu | grep 5466
第 3 步:在 UFW 防火牆中允許新的 SSH 端口
如果啟用了 UFW 防火牆,請務必打開配置的端口,如圖所示。
$ sudo ufw allow 5466/tcp
$ sudo ufw reload
對於 CentOS / RHEL,打開端口如下。
$ sudo firewall-cmd --add-port=5466/tcp --add-zone=public --permanent
$ sudo firewall-cmd --reload
此時,您可以遠程訪問服務器。這將在後面解釋。
第 4 步:使用新端口登錄
要登錄服務器,請轉到 SSH 客戶端。使用指定的端口號 -p 選項後跟 SSH 端口和遠程服務器 ID。
$ ssh -p 5466 [email protected]
可以想像,在提示輸入密碼後,您可以訪問遠程服務器。
結論是
本主題到此結束。為了增加安全性,請考慮對您的 SSH 公鑰/私鑰對使用 SSH 無密碼身份驗證。