如何通过SELinux和Firewalld设置SSH
在Fedora系统中,如果仅修改防火墙规则无法实现SSH端口更改,当系统启用SELinux时还必须同步修改策略允许新端口。以下是经过实践验证的完整配置指南。
semanage工具介绍
根据man手册说明:semanage用于配置SELinux策略元素,无需修改或重新编译策略源。它可管理Linux用户名到SELinux用户标识的映射,以及网络端口、接口、节点等对象的安全上下文映射。
安装必要工具
通过以下命令查询和安装semanage所属包:
|
|
查看现有端口策略
执行以下命令列出当前SELinux策略允许的端口:
|
|
添加新端口到SELinux策略
在修改sshd_config前,先将新端口添加到策略中(示例使用52022端口):
|
|
再次查看端口列表应显示:ssh_port_t tcp 52022, 22
配置防火墙规则
添加永久性防火墙规则(使用–permanent参数确保重启后生效):
|
|
如需临时测试可不加permanent参数。
修改SSH配置并重启服务
- 编辑配置文件:
vi /etc/ssh/sshd_config
- 重启服务:
systemctl restart sshd
- 验证状态:
systemctl status sshd
应显示"Server listening on X.X.X.X port 52022"
通过以上步骤即可实现在SELinux和Firewalld双重保护下的SSH端口修改。