SELinux与Firewalld环境下SSH端口配置指南

本文详细讲解在Fedora系统中如何同时配置SELinux策略和Firewalld防火墙规则来修改SSH服务端口。包含semanage工具的使用方法、端口策略添加、防火墙规则配置以及服务重启验证等完整操作流程。

如何通过SELinux和Firewalld设置SSH

在Fedora系统中,如果仅修改防火墙规则无法实现SSH端口更改,当系统启用SELinux时还必须同步修改策略允许新端口。以下是经过实践验证的完整配置指南。

semanage工具介绍

根据man手册说明:semanage用于配置SELinux策略元素,无需修改或重新编译策略源。它可管理Linux用户名到SELinux用户标识的映射,以及网络端口、接口、节点等对象的安全上下文映射。

安装必要工具

通过以下命令查询和安装semanage所属包:

1
2
dnf provides semanage
dnf install policycoreutils-python-utils

查看现有端口策略

执行以下命令列出当前SELinux策略允许的端口:

1
semanage port --list

添加新端口到SELinux策略

在修改sshd_config前,先将新端口添加到策略中(示例使用52022端口):

1
semanage port -a -t ssh_port_t -p tcp 52022

再次查看端口列表应显示:ssh_port_t tcp 52022, 22

配置防火墙规则

添加永久性防火墙规则(使用–permanent参数确保重启后生效):

1
firewall-cmd --permanent --zone=public --add-port=52022/tcp

如需临时测试可不加permanent参数。

修改SSH配置并重启服务

  1. 编辑配置文件:vi /etc/ssh/sshd_config
  2. 重启服务:systemctl restart sshd
  3. 验证状态:systemctl status sshd 应显示"Server listening on X.X.X.X port 52022"

通过以上步骤即可实现在SELinux和Firewalld双重保护下的SSH端口修改。

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计