如何在SELinux和Firewalld环境下配置SSH服务

本文详细介绍了在Fedora系统中如何通过semanage工具修改SELinux策略,配合firewalld防火墙规则实现SSH端口变更的全过程,包含具体命令示例和注意事项。

如何在SELinux和Firewalld环境下配置SSH服务

在Fedora系统中,若需更改SSH端口,仅修改防火墙规则是不够的。如果启用了SELinux,还必须调整策略以允许新端口。以下是完整配置指南:

1. 认识semanage工具

semanage用于配置SELinux策略元素而无需重新编译策略源。根据手册说明,它能管理:

  • Linux用户名到SELinux用户的映射
  • 网络端口/接口/节点的安全上下文映射
  • 文件上下文映射

2. 安装必要组件

通过yum/dnf安装提供semanage的工具包:

1
dnf install policycoreutils-python-utils

3. 查看当前SELinux端口策略

1
semanage port --list

4. 添加新SSH端口到策略

将TCP 52022端口加入SSH允许列表:

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

验证添加结果应显示:

1
ssh_port_t tcp 52022, 22

5. 配置firewalld防火墙

添加永久规则(–permanent参数确保重启后生效):

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

6. 修改SSH配置文件

编辑sshd_config文件:

1
vi /etc/ssh/sshd_config

修改Port参数为52022

7. 重启服务

1
2
systemctl restart sshd
systemctl status sshd

成功状态应显示:

1
2
23:13:57 host.com systemd[1]: Started OpenSSH server daemon.
23:13:57 host.com sshd[795]: Server listening on X.X.X.X port 52022.
comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计