CentOS Context安全策略概述
CentOS中的"context"安全策略主要指SELinux(Security-Enhanced Linux)安全上下文,是SELinux实现**强制访问控制(MAC)**的核心机制之一。它通过为系统资源(文件、目录、进程、端口等)分配唯一的“安全标签”,定义资源的身份与访问权限,结合策略规则限制进程对资源的访问,即使进程被入侵,也能通过上下文隔离防止权限扩散。
SELinux安全上下文由四部分构成(通常简化为三部分显示),用于标识资源的属性:
system_u),用于关联角色;system_r),角色作为用户与域的桥梁,限制用户可进入的域;httpd_sys_content_t、mysql_db_t),策略规则主要基于类型定义“谁能访问什么”;s0:c0.c1023),适用于高安全需求场景。SELinux通过/etc/selinux/config文件配置,运行模式决定策略的执行强度:
ls -Z /path/to/file_or_directory;ps -eZ | grep <进程名>。使用chcon命令修改文件/目录的上下文(重启或还原后会失效):
chcon -t <类型> /path/to/file_or_directory(如chcon -t httpd_sys_content_t /var/www/html/index.html);
递归修改目录及其内容:chcon -R -t <类型> /path/to/directory。
使用semanage fcontext命令修改SELinux上下文数据库(持久化),再通过restorecon应用更改:
semanage fcontext -a -t <类型> "/path/to/file_or_directory(/.*)?"(如semanage fcontext -a -t httpd_sys_content_t "/var/www/html(/.*)?");restorecon -Rv /path/to/file_or_directory。SELinux布尔值是用于快速调整策略的开关(true/false),控制特定功能的访问权限(如是否允许HTTP服务访问家目录)。常用操作:
getsebool -a;setsebool <布尔值> <on/off>(如setsebool httpd_enable_homedirs on);setsebool -P <布尔值> <on/off>(-P表示重启后仍有效)。当默认策略无法满足需求时,可通过以下步骤创建自定义策略:
ausearch或查看/var/log/audit/audit.log,过滤AVC(访问控制违规)日志;audit2allow工具生成策略源码与模块包:grep "denied" /var/log/audit/audit.log | audit2allow -M <模块名>;checkmodule -M -m -o <模块名>.mod <模块名>.te(编译模块);semodule_package -o <模块名>.pp -m <模块名>.mod(打包模块);semodule -i <模块名>.pp(安装模块)。httpd_t、mysql_t),避免使用unconfined_t(无限制域);ausearch、aureport分析SELinux日志,及时发现并处理异常访问;/etc/selinux/config、/etc/selinux/targeted/contexts等文件,便于恢复。