默認情況下,已知 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 無密碼身份驗證。