news 2026/5/1 7:13:11

安全加固后SSH无法远程登陆的主要原因

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
安全加固后SSH无法远程登陆的主要原因

一、发现问题

事情起因:
同事反馈ESXI中的A虚拟机(Centos)无法ssh远程了(远程端口在虚拟机创建时就被修改为了10022),但前段时间都还可以正常登录。

初步排查:
A虚拟机可以被ping通,但是telnet 10022端口显示超时。
因此初步判断是防火墙拦截问题。

二、排查经过和解决办法

1、查看虚拟机内防火墙,发现是关闭状态。
尝试重启没用,看报错也无法看出什么,如下图

因此journalctl -xe进一步查看报错,如下图

这里显示我们报错的原因跟selinux目前策略有关,根据过完经历,大概明白是因为SELinux做安全加固是,使用了targeted策略导致。

2、查看selinux发现是正常运行,targeted策略不允许未经授权的程序访问网络端口,除非这些端口已经被明确地添加到 SELinux 的策略中。

解决办法(有2种,但本篇文章只写了最简单的一种):
将10022添加到策略中:
相关命令及解释如下图

上图命令可以查看SELinux在targeted策略下,允许的协议类型及对应的端口号;

semanage port -a -t http_port_t -p tcp8080-a 表示添加。 -t 后面跟的是类型(在这个例子中是 http_port_t,这是专门为 HTTP 服务预留的类型)。 -p 指定协议(在这个例子中是 tcp)。8080是你要开放的端口号。

再次重启ssh,就可以正常启动成功了,如下图

3、再次用其他主机尝试telnet A主机的10022端口,发现还是超时。反思后想起来,Centos的防火墙,除了firewall还有iptables,如下图

将1002端口在iptables中配置为允许,如下图

添加成功后查看iptables全部策略,可以看到添加成功

4、问题解决。

三、总结

在重要机关单位和大型企业中,安全加固是必不可少了,因此将selinux设置为target策略、将许多重要服务的默认端口修改(比如ssh端口修改为10022)、将防火墙打开都是必须的。
但相应带来的问题就是,许多重要服务的默认端口被修改后,运维人员必须要注意修改相应的selinux策略和防火墙规则。
本篇文章最初的起因就是,不熟悉运维流程的虚拟机使用者在进行相应的安全加固操作后,并未做完整的加固流程。

教训:
修改默认端口、修改selinux策略、封禁和开放重要端口往往都是配套的。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!