centos selinux如何备份和还原
导读:CentOS SELinux 备份与还原实用指南 一、备份清单与命令 建议按以下清单逐项备份,覆盖策略配置、布尔值、文件上下文、自定义模块与审计线索,便于完整还原。 操作前准备:安装管理工具(如未安装)并确认 SELinux 状态。...
CentOS SELinux 备份与还原实用指南
一、备份清单与命令
- 建议按以下清单逐项备份,覆盖策略配置、布尔值、文件上下文、自定义模块与审计线索,便于完整还原。
- 操作前准备:安装管理工具(如未安装)并确认 SELinux 状态。
| 备份项 | 关键命令 | 保存内容说明 |
|---|---|---|
| 配置文件 | sudo cp /etc/selinux/config /backup/selinux-config-$(date +%F).bak | 模式与策略类型(如 SELINUX=enforcing/permissive/disabled、SELINUXTYPE=targeted) |
| 布尔值 | getsebool -a > /backup/selinux-booleans-$(date +%F).txt | 各服务的布尔开关状态,便于逐条恢复 |
| 文件上下文规则 | semanage fcontext -l > /backup/selinux-fcontext-$(date +%F).txt | 路径到类型的映射规则(如 /var/www(/.*)? → httpd_sys_content_t) |
| 当前文件上下文快照 | find / -xdev -type f -exec ls -Z { } ; > /backup/file-contexts-f-$(date +%F).txt & & find / -xdev -type d -exec ls -Zd { } ; > > /backup/file-contexts-d-$(date +%F).txt | 现有文件/目录的实际 安全上下文,用于核对与排查 |
| 自定义策略模块 | semodule -l | grep -v ^Module |
| 审计线索 | sudo ausearch -m avc -ts recent > /backup/selinux-avc-recent-$(date +%F).log | 便于用 audit2allow 生成最小权限模块 |
| 策略包清单 | rpm -ql selinux-policy-targeted > /backup/selinux-policy-files-$(date +%F).txt | 参考:确认策略包安装文件清单(包名因版本可能为 selinux-policy-targeted 等) |
- 安装工具提示(如命令不存在):yum/dnf 安装 policycoreutils-python-utils(提供 semanage、semodule 等)。以上命令覆盖配置、布尔值、fcontext、模块与审计日志等关键项,适合迁移与灾备。
二、还原步骤
- 还原顺序建议:先恢复配置与策略,再恢复文件上下文,最后处理自定义模块与审计线索。
-
- 恢复配置文件
- sudo cp /backup/selinux-config-*.bak /etc/selinux/config
- 如需变更生效:setenforce 0/1 临时切换模式;或重启系统(涉及 disabled ↔ enforcing 切换时必须重启)。
-
- 恢复布尔值
- 逐行读取备份并恢复:while read b; do setsebool “${ b%=} " "${ b#=} ”; done < /backup/selinux-booleans-*.txt
-
- 恢复文件上下文规则
- 逐条恢复 fcontext:while read line; do [[ “$line” =~ ^/ ]] & & semanage fcontext -a -t “${ line##* } ” "${ line%% } "; done < /backup/selinux-fcontext-.txt
- 应用上下文:restorecon -Rv /(或仅对变更路径执行)
-
- 恢复自定义策略模块
- semodule -i /backup/module-*.pp
-
- 核对与排查
- sestatus 查看模式与策略;ausearch -m avc -ts recent 检查是否仍有拒绝;必要时用 audit2allow 生成最小模块再导入。
-
- 系统无法启动或大量文件上下文异常
- 进入救援/单用户模式,创建 /.autorelabel 并重启,触发全量重新标记(仅在必要时使用)。
三、整系统迁移与镜像场景
- 使用 tar 打包并保留 SELinux 属性
- 排除虚拟/临时文件系统:tar --numeric-owner --selinux --xattrs -czvpPf /backup/full-$(date +%F).tar.gz -X /root/exclude.txt /
- 恢复:tar --numeric-owner --selinux --xattrs -xzvpPf /backup/full-*.tar.gz -C /
- 如做过全量重标记或迁移后首次启动异常,可 touch /.autorelabel 并重启。
- 使用镜像/克隆工具
- 部分工具/流程在导出镜像时会要求将 SELINUX=disabled 才能正常制作或启动镜像;完成迁移后再改回 enforcing 并重启。务必在恢复后执行一次上下文校验与必要的重标记。
四、注意事项与常见问题
- 模式切换要点
- setenforce 0/1 仅切换 Enforcing/Permissive,不修改配置文件;从/到 Disabled 必须编辑 /etc/selinux/config 并重启。
- 何时需要全量重标记
- 大量文件被误标或系统迁移后上下文不一致,创建 /.autorelabel 并重启;避免频繁全量重标记以免影响业务。
- 备份一致性
- 备份与还原期间尽量避免大规模文件变更;对数据库等关键负载,先停写或置于维护窗口。
- 策略与模块
- 自定义模块优先用 semodule -E 导出 .pp;不建议直接拷贝 /var/lib/selinux 目录,恢复时以配置、规则与模块为主,必要时再参考系统策略包清单。
- 审计与最小权限
- 出现 AVC denied 时先查 /var/log/audit/audit.log,用 audit2allow 生成最小模块,避免粗放放宽策略。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: centos selinux如何备份和还原
本文地址: https://pptw.com/jishu/769827.html
