岁月绵长,人间静好

Hey guys, Here is GouGui's Blog !

CentOS7修改ssh默认端口问题总结

前言
长城宽带难道连ssh都有限制?之前一直好好的,今天起床后CRT就不能连服务器了,我以为我服务器挂了,但是邮件短信微信都没收到告警呀,结果网站能打开,我还以为CRT出问题了,马上用另一台电脑一试,还是无法连接,最后我用手机热点试了一下能连接上,好吧,长宽你可真牛,单单ssh端口通信出故障。。。
由于我服务器用的密钥管理,觉得相对比较安全,就没在第一时间修改ssh默认端口,那就趁此机会修改吧(毕竟总不能一直用手机热点连接服务器呀)
正文
修改 sshd_config 端口

取消 #Port 22 的注释,在下一行添加需要修改的新端口 Port 2222。(这里先不删除22端口是为了防止修改后新端口无法访问,造成无法用ssh连接服务器。)

修改保存sshd_config文件后重启sshd服务:

退出 ssh 会话后,再用新的端口连接:
好吧,想多了。。。对于CentOS7这一套修改端口的方法已经不能生效了。
打开SELinux端口
SELinux全称Security Enhanced Linux(安全强化Linux),是MAC(Mandatory Access Control,强制访问控制系统)的一个实现,目的在于明确的指明某个进程可以访问哪些资源(文件、网络端口等)。
对于 ssh,SELinux 默认只允许 22 端口,我们可以用SELinux管理配置工具semanage,来修改ssh可访问的端口。
如果没有安装semanage工具就先安装

为ssh添加新的允许端口

结果报错如下

原来是当SELINUX配置为禁用状态时,使用semanage会报错提示无法读取policy文件
修改/etc/selinux/config配置,启用SELinux:

注意:这里直接setenforce 0不能生效,必须要重启服务器
重启后查看SELinux状态

添加端口2222:

查看当前SELinux允许的端口

重启ssh服务

注意:semange不能禁用ssh的22端口:

ValueError: 在策略中定义了端口 tcp/22,无法删除。
在防火墙里开启2222端口或者关闭防火墙,再在云服务器安全组里开启TCP2222端口
退出ssh后,切换到坑爹的长宽,尝试连接新端口,终于成功登录了,现在可以做收尾工作了。
禁用22端口
删除ssh允许端口

用ss命令检查ssh监听的端口,没有22证明修改成功

防火墙移除22端口,安全组里删除22端口
其实ssh取消监听22端口,就已经配置好了,防火墙只不过是在ssh外多一层访问限制。如果要做的更好还可以将22端口的访问流量转向访问者本地。

点赞

发表评论

邮箱地址不会被公开。 必填项已用*标注