- 1、关闭 SELinux
- 2、添加自定义 ssh 端口
- 3、添加防火墙规则
- 4、测试连接
1、关闭 SELinux
首先需要确认你的系统中的 SELinux 是否开启了,如果开启了需要关闭才能够修改端口否则无效。因为笔者之前用的 vultr 家的 VPS 默认并没有带 SELinux 所以就没有注意到这个问题,之后迁移到 linode 之后才意识到。
检测的方法是使用命令sestatus
,如果你出现了与下图一样SELInux status: enable
的话就需要先去关闭 SELinux 才可以进行之后的步骤。
如果你出现的是下图,SELInux status: disabled
的话可以省略该步骤。
这里我们直接将 SELinux 彻底关闭,禁止其开启机动。我们直接编辑/etc/selinux/config
文件
vim /etc/selinux/config
将该文件里面的SELINUX=enforcing
改成SELINUX=disabled
之后我们reboot
重启系统即可。
2、添加自定义 ssh 端口
我们打开配置文件
vim /etc/ssh/sshd_config
之后找到#Port 22
这行,将#
注释取消掉,然后再在下面添加一个新的端口,随便起,但是不超过 65535,推荐高于 10000,因为一万以下的很多都是系统或者其它插件使用的端口,以免造成冲突。笔者以端口23333
为例。
之后按 ESC,:wq
保存。
请注意第一次的时候请务必将 Port 22 取消注释,如果你没有这么做,结果新的端口还没有成功连上你就要悲剧了=、=其实也不算很悲剧,你可以去 VPS 运营商提供的控制台那里改回来就好了。╮(╯_╰)╭
还有就是 Port 需要注意大小写,Linux 系统严格区分大小写。
保存后重启 SSH 即可:
systemctl restart sshd.service
3、添加防火墙规则
这里笔者将 CentOS7 中的 firewalld 防火墙替换成了 iptables,所以这里以 iptables 为例。
编辑配置文件:
vim /etc/sysconfig/iptables
添加下面这条到 22 端口那条的下面,注意修改端口为你设定的端口
-A INPUT -p tcp -m state --state NEW -m tcp --dport 23333 -j ACCEPT
之后重启防火墙
systemctl restart iptables.service
4、测试连接
上述全都做完之后,使用新的 SSH 端口号进行连接,若连接成功,则再次编辑/etc/ssh/sshd_config
文件将里面的Port 22
加上#
注释掉,然后使用systemctl restart sshd.service
重启 SSH 服务即可。
参考资料:
本文章笔记版本地址:http://ccdd6ec5.wiz03.com/share/s/3cTmX51TMQ-b2QTact03UPg83zqXkK2tUA6l24IMZy2hmZfe