selinux是什么:Linux安全强制访问控制系统

selinux是什么,它是集成在Linux内核里的强制访问控制安全模块,用来限制进程、文件、目录之间的访问权限,弥补传统Linux自主权限模型的缺陷,普通服务器运维人员日常部署网站、数据库时经常会遇到它拦截业务访问,你可以选择开启、宽容、关闭三种运行模式,生产环境推荐保持开启,仅在临时排错时切换宽容模式,不要永久关闭,该模块仅作用于搭载selinux内核的RHEL、CentOS、RockyLinux等发行版,Debian、Ubuntu默认不启用selinux,改用AppArmor。

selinux核心工作原理

传统Linux依靠用户、用户组、rwx权限做访问校验,只要进程所属用户拥有文件权限就能读取修改,一旦进程被入侵,攻击者就能拿到该用户对应的全部资源权限。selinux会给系统内每一个进程、文件、端口打上安全上下文标签,访问动作必须同时匹配传统权限和selinux策略规则,即便进程以root身份运行,没有对应上下文策略,依旧无法访问目标文件。策略规则提前定义各类主体允许执行的操作,系统内置大量预设策略,也能自定义策略模块适配业务。

安全上下文是selinux识别资源的标记,由用户、角色、类型、范围四段组成,日常排查问题重点看类型字段。网页文件默认类型是httpd_sys_content_t,如果把网站文件放在/home目录,目录类型为home_root_t,httpd进程就无法读取文件,网页直接报403,这是运维最常碰到的故障场景。

selinux三种运行模式

模式名称行为表现适用场景
enforcing强制模式拦截违规访问,写入审计日志生产业务服务器
permissive宽容模式不拦截访问,仅记录违规日志故障排查、策略调试
disabled关闭模式selinux完全不加载,无校验不推荐长期使用

你可以执行getenforce命令快速查看当前selinux运行模式,setenforce0临时切换到宽容模式,setenforce1开启强制模式,临时修改重启服务器后失效。永久修改需要编辑/etc/selinux/config配置文件,修改SELINUX字段,修改后重启系统生效。

改配置关闭selinux,系统重启时会重新标记全部文件上下文,大容量磁盘会消耗较长时间,期间服务器启动速度明显变慢。

日志是定位selinux拦截问题的核心依据。

selinux的审计日志默认存放在/var/log/audit/audit.log,日志会记录被阻止的进程动作、资源上下文,使用audit2allow工具可以直接根据日志生成自定义策略模块,用来放行合法业务访问,避免直接关闭安全模块。

selinux常见运维操作

  • ls-Z查看文件或目录的selinux安全上下文
  • ps-Z查看运行进程对应的安全上下文
  • chcon临时修改文件上下文,文件重建会丢失设置
  • restorecon恢复文件为系统默认上下文,适合修复误改标签
  • semanagefcontext永久定义目录上下文规则

该模块的适用边界是,它只管控Linux本地资源访问,不会对网络防火墙层面的端口放行、应用账号密码校验提供保护,不能替代firewalld或者iptables,两者需要搭配使用才能构建完整服务器防护体系。

修改selinux策略放行业务时,尽量缩小权限范围,只给业务所需最小访问权限,不要直接放宽全局策略,减少潜在安全暴露面。

敬慕百科汇集百科知识与游戏文化,带你发现世界的每一个精彩角落。

想要了解更多关于selinux是什么的文章欢迎访问:百科