前言
默認情況下, SSH 偵聽端口 22 。 更改默認 SSH 端口可以降低被自動攻擊的風險,從而為服務器增加額外的安全層。
和更改默認端口相比,將防火墻配置為僅允許從特定主機訪問端口 22 則更加簡單和安全。
本教程介紹如何更改 Linux 中的默認 SSH 端口。我們還將向您展示如何配置防火墻以允許訪問新的 SSH 端口。
選擇新的端口號
在 Linux 中,低于 1024 的端口號保留用于眾所周知的服務,并且只能由 root 綁定。雖然您可以使用 1-1024 范圍內的端口進行 SSH 服務,但為了避免將來出現端口分配問題,建議選擇 1024 以上的端口。
在此示例中,將 SSH 端口更改為 5522 ,當然您可以選擇任何您喜歡的端口。
調整防火墻
在更改 SSH 端口之前,首先需要調整防火墻以允許新 SSH 端口上的流量。
如果您使用的是 Ubuntu 的默認防火墻配置工具 UFW , 請運行以下命令來打開新的 SSH 端口:
sudo ufw allow 5522/tcp
在 CentOS 中,默認的防火墻管理工具是 FirewallD 。要打開新端口,請運行以下命令:
sudo firewall-cmd --permanent --zone=public --add-port=5522/tcp
sudo firewall-cmd --reload
CentOS 用戶還需要調整 SELinux 規則以允許新的SSH端口:
sudo semanage port -a -t ssh_port_t -p tcp 5522
如果您使用 iptables 作為防火墻,則以下命令將打開新的 SSH 端口:
sudo iptables -A INPUT -p tcp --dport 22 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
編輯 SSH 配置
使用文本編輯器打開 SSH 配置文件 /etc/ssh/sshd_config :
Port 5522
修改 SSH 配置文件時要格外小心。不正確的配置可能導致 SSH 服務無法啟動。
完成后保存文件并重新啟動 SSH 服務以應用更改:
sudo systemctl restart ssh
在 CentOS 中, ssh 服務命名為 sshd :
sudo systemctl restart sshd
要驗證 SSH 守護程序是否正在偵聽新端口 5522 ,請鍵入:
ss -an | grep 5522
使用新的 SSH 端口
現在您已經更改了要登錄遠程的計算機 SSH 端口,您需要在登錄時指定新端口。
使用 -p <port_number> 選項指定端口:
總結
通過以上方式,就可以修改我們的SSH端口,但是一般情況下不進行修改,SSH本身很安全,但如果在復雜網絡環境中,有此需求,就可以考慮。