让 SSHD 监听运行 SELinux 的 Centos 上的另一个端口

让 SSHD 监听运行 SELinux 的 Centos 上的另一个端口

我有一个 Centos VM,启用了 SELinux。我希望让 sshd 监听另一个端口 --- 比如说 993。我修改了 sshd_config 文件以监听另一个端口,但 SELinux 妨碍了我。我不想禁用 SELinux。我该如何告诉 SELinux 让 sshd 读取端口 993 上的 TCP 连接?

正确的命令是,semanage port -a -t ssh_port_t -p tcp 993但是我无法使用该命令,因为端口 993 已在另一个策略中使用:

[centos@timedb ~]$ semanage port -a -t ssh_port_t -p tcp 993
ValueError: SELinux policy is not managed or store cannot be accessed.
[centos@timedb ~]$

但是我无法删除策略中的该端口,因为它是基本策略的一部分:

[centos@timedb ~]$ sudo semanage port -l|grep 993
pop_port_t                     tcp      106, 109, 110, 143, 220, 993, 995, 1109, 10993
[centos@timedb ~]$ sudo semanage port -d -t pop_port_t -p tcp 993
ValueError: Port tcp/993 is defined in policy, cannot be deleted
[centos@timedb ~]$

我需要使用已定义的端口,因为我位于中间盒的上游,该中间盒仅允许分配给指定服务的端口上的连接,并且端口 22 被阻止。

答案1

使用semanage(8)来允许它。

# semanage port -a -t ssh_port_t -p tcp 993

相关内容