centos context如何进行安全设置
导读:CentOS SELinux 安全上下文安全设置指南 一 基础与状态管理 SELinux 通过给主体(进程)和客体(文件、端口、套接字等)打上安全标签实现强制访问控制(MAC),标签格式为:user:role:type:level,其中最...
CentOS SELinux 安全上下文安全设置指南
一 基础与状态管理
- SELinux 通过给主体(进程)和客体(文件、端口、套接字等)打上安全标签实现强制访问控制(MAC),标签格式为:user:role:type:level,其中最关键的是type(进程域/文件类型)。在 CentOS 7/8/9 中默认策略为 targeted。
- 查看与切换运行状态:
- 查看:getenforce、sestatus
- 临时切换:setenforce 1(Enforcing)/ setenforce 0(Permissive)
- 永久配置:编辑 /etc/selinux/config(或链接 /etc/sysconfig/selinux),设置 SELINUX=enforcing|permissive|disabled;从 disabled 改为 enforcing/permissive 需重启系统。建议生产环境保持 enforcing,排障时可切到 permissive。
二 查看与修改安全上下文
- 查看上下文:
- 文件/目录:ls -Z、ls -Zd
- 进程:ps -Z、ps axZ
- 临时修改(重启或策略重载后可能恢复):
- 指定类型:chcon -t httpd_sys_content_t /path/file
- 递归:chcon -R -t httpd_sys_content_t /path/dir
- 永久修改(写入策略数据库,重启仍有效):
- 添加默认标签规则:semanage fcontext -a -t httpd_sys_content_t “/webdata(/.*)?”
- 应用规则:restorecon -Rv /webdata
- 安装工具(若命令不存在):yum/dnf install -y policycoreutils-python-utils
- 复制参考标签:chcon --reference=/var/www/html /webdata/index.html
- 删除自定义路径规则:semanage fcontext -d “/webdata(/.*)?”
- 操作要点:优先使用 semanage+restorecon 做永久变更;chcon 仅作临时调整或验证。
三 常见场景与命令示例
- Web 服务将内容放到自定义目录 /webdata:
- 设定默认类型并应用
semanage fcontext -a -t httpd_sys_content_t “/webdata(/.*)?”
restorecon -Rv /webdata - 若需写入(如上传目录),再设可写类型并开启布尔
semanage fcontext -a -t httpd_sys_rw_content_t “/webdata/upload(/.*)?”
restorecon -Rv /webdata/upload
setsebool -P httpd_can_write_content on
- 设定默认类型并应用
- FTP 发布目录与匿名写入:
semanage fcontext -a -t public_content_t “/var/ftp(/.)?"
semanage fcontext -a -t public_content_rw_t "/var/ftp/pub(/.)?”
restorecon -Rv /var/ftp
setsebool -P ftpd_anon_write on - 变更服务端口(以 httpd 监听 6666 为例):
semanage port -l | grep http # 查看已允许端口
semanage port -a -t http_port_t -p tcp 6666 - 原则:目录/文件使用与服务匹配的 type,涉及写入再开启相应 sebool,端口使用 semanage port 注册到正确类型。
四 排障与加固建议
- 定位拒绝事件:
- 查看最近 AVC:ausearch -m avc -ts recent
- 生成可读建议:sealert -l *;或 ausearch -m avc -ts recent | audit2allow -M mypol & & semodule -i mypol.pp(仅在确认是误报且必要时使用,避免放宽策略)
- 辅助工具:安装 setroubleshoot-server 可在 /var/log/messages 提供友好修复提示;详细日志在 /var/log/audit/audit.log。
- 文件操作与上下文:
- cp 会继承目标目录的默认上下文;mv 保留原上下文,移动到新目录后可能需要 restorecon 修复。
- 加固要点:
- 保持 SELINUX=enforcing;变更前在测试环境验证。
- 优先用 semanage fcontext+restorecon 做永久变更,减少 chcon 的临时改动。
- 严格按需开启 sebool,用 getsebool -a | grep < 服务名> 检查相关开关。
- 端口变更必须用 semanage port 注册,避免“端口类型不匹配”导致服务失败。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: centos context如何进行安全设置
本文地址: https://pptw.com/jishu/785451.html
