眾所周知,SSH 協議默認偵聽端口 22。這很好,但出於安全原因,將默認端口更改為其他端口是個好主意。這大大降低了黑客使用 SSH 發起自動化暴力攻擊的風險。本指南展示瞭如何將默認 SSH 端口更改為 Linux 上的另一個端口。
先決條件
首先,請確保您有一個 Linux 服務器實例。本指南使用 Ubuntu 20.04 服務器。
也有一個 SSH 客戶端(例如 Putty)或一個客戶端 Linux 系統來使用新端口建立到服務器的連接。
第 1 步:檢查 SSH 是否在默認端口上運行
首先,我們需要確保 SSH 服務在服務器上運行。為此,請運行以下命令:
$ sudo systemctl status ssh
輸出是確認 SSH 服務處於活動狀態。讓我們更進一步,確保它在默認端口上運行。運行網絡統計命令:
$ 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 無密碼身份驗證。