centos selinux如何提高安全性
导读:提升 CentOS 上 SELinux 安全性的实用清单 一 基础加固 将 SELinux 设为强制模式并持久化:编辑 /etc/selinux/config,设置 SELINUX=enforcing;如需临时切换可用 setenforc...
提升 CentOS 上 SELinux 安全性的实用清单
一 基础加固
- 将 SELinux 设为强制模式并持久化:编辑 /etc/selinux/config,设置 SELINUX=enforcing;如需临时切换可用 setenforce 1/0,当前状态用 getenforce 查看。处于 Permissive 仅记录不阻断,便于排障;Disabled 完全关闭,需重启且不利于安全。
- 保持默认策略为 targeted,仅对关键网络服务实施强制访问控制,降低策略复杂度与维护成本。
- 安装管理工具(按需):policycoreutils-python-utils、setools-console、semanage、restorecon 等,用于策略查询、端口与上下文管理。
- 定期更新系统与 SELinux 策略包,及时获得漏洞修复与策略改进。
二 正确配置与最小权限
- 管理文件与目录上下文:用 ls -Z 查看上下文;用 semanage fcontext -a -t “/path(/.*)?” 持久化类型,随后 restorecon -Rv /path 应用;临时修正可用 chcon。示例:为 Web 目录设置 httpd_sys_content_t 以便 httpd 读取。
- 管理端口类型:用 semanage port -a -t < port_type> -p tcp 将服务绑定到合规端口类型,避免非标准端口引发访问异常。示例:将 80/tcp 加入 http_port_t。
- 使用布尔值精细控制功能:用 getsebool -a | grep 查看,用 setsebool -P =1 持久开启(加 -P 写入策略,重启不丢失)。示例:允许 httpd 发起网络连接 setsebool -P httpd_can_network_connect=1。
- 故障排查思路:遇到“访问被拒”先确认是 DAC(文件权限)还是 SELinux(AVC 拒绝);用 ausearch -m avc -ts recent 或查看 /var/log/audit/audit.log 定位被拒主体、客体与操作,再决定是调整上下文、布尔值还是定制策略模块。
三 典型场景示例
- Web 服务读取自定义目录:将 /web 标记为 httpd_sys_content_t,使 httpd 可读取但不可写(如需写入再评估更严格的类型与权限)。命令示例:
semanage fcontext -a -t httpd_sys_content_t “/web(/.*)?”
restorecon -Rv /web - FTP 服务文件可见与匿名写入:
- 文件从 /root 移动到 /var/ftp 后可能继承 admin_home_t,导致客户端不可见;将文件改为 public_content_t 即可:chcon -t public_content_t /var/ftp/yourfile 或 restorecon。
- 允许匿名上传:开启布尔值 allow_ftpd_anon_write 与(按需)allow_ftpd_full_access,并确保目录拥有正确类型与权限(如 /var/ftp/pub 归属 ftp)。
四 与防火墙和其他安全机制协同
- 与防火墙分层防御:用 firewalld/iptables 限制入站端口与服务,仅暴露必要端口;SELinux 在进程/资源层面做强制访问控制,二者互补。
- 最小权限运行:避免以 root 运行不必要的服务或脚本,结合 systemd 服务单元限制权限与能力(CapabilityBoundingSet、ProtectKernelTunables 等),减少被攻破后的横向移动空间。
- 日志与监控:集中采集 /var/log/audit/audit.log 与系统日志,对 AVC 拒绝建立告警与审计;必要时引入 ELK 等做可视化与长期留存。
五 常见误区与建议
- 不要直接 chcon 覆盖系统默认上下文,优先使用 semanage fcontext + restorecon 持久化,避免策略刷新后被重置。
- 避免长期停留在 Permissive 或随意改为 Disabled;前者会弱化防护,后者需要重启且不利于取证与合规。
- 谨慎开启宽泛布尔值(如 allow_ftpd_full_access),优先采用最小权限的组合(精确类型 + 必要布尔 + 目录权限)。
- 变更前在测试环境验证,变更后在 audit.log 回溯确认无异常拒绝;为关键业务准备回滚方案(如策略模块备份、快照)。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: centos selinux如何提高安全性
本文地址: https://pptw.com/jishu/776620.html
