对于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/ target=_blank class=infotextkey>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服务器远程访问端口就已经修改完毕。