對于linux服務器而言,其默認的遠程訪問端口為22。但是,出于安全方面的考慮,一般都會修改該端口。下面我來簡答介紹一下如何修改Linux服務器默認的遠程訪問端口。
對于默認端口而言,其相關的配置位于/etc/ssh/sshd_config配置文件中,我們可以通過如下命令來進行編輯:
vi /etc/ssh/sshd_config
接著找到Port參數,并將其值修改為自己設定的端口即可,如下所示:
修改完畢后進行保存,接著執行如下命令重啟sshd服務即可:
systemctl restart sshd
或
service sshd restart
不過,有時候會重啟sshd服務失敗,此時可以通過下面的兩個命令來查看對應的日志信息:
systemctl status sshd
journalctl -xe
通過查看日志,發現報了如下所示的錯誤信息:
通過查詢相關資料后發現,重啟sshd失敗的原因在于修改之后的端口被selinux進行了限制。因為selinux會對服務的一些特殊權限進行限制,當然也包括外部對某個端口的訪問。解決的辦法有兩個,要么直接關閉selinux,要么就在selinux中為sshd新增指定的端口。
對于直接關閉而言,該方案簡單而有效。具體的做法大家可以參考我之前的一篇文章:在CentOS7上禁用或關閉selinux的方法。但是,這會使得系統的安全性有所降低,因此在生產環境中要避免。
對于新增sshd指定端口而言,雖然實現麻煩,但勝在保障了安全。下面我來簡單介紹一下如何在selinux中新增sshd的指定端口。
首先需要執行如下命令來安裝一個工具:
yum -y install policycoreutils-Python
安裝完畢后執行如下命令來查看selinux中對sshd設置的默認端口:
semanage port -l|grep ssh
執行結果如下所示:
從結果可知,selinux確實對sshd進行了限制,也就是限制其端口只能為22。此時我們可以執行如下命令來新增一個端口,如:10086:
semanage port -a -t ssh_port_t -p tcp 10086
執行完畢后,再次使用之前的命令查詢sshd對應的端口,查詢結果如下所示:
最后執行如下的命令讓防火墻放行該端口即可:
# 防火墻放行端口
firewall-cmd --add-port=10086/tcp --permanent
# 重新加載防火墻配置
firewall-cmd --reload
當然,如果需要知曉更詳細地關于防火墻的操作,可以參考我的另一篇文章:Linux系統中配置防火墻放行某個端口。
到此,Linux服務器遠程訪問端口就已經修改完畢。