ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
[TOC] ## 1. 作用 SELinux 主要作用就是最大限度地减小系统中服务进程可访问的资源(最小权限原则)。 设想一下,如果一个以 root 身份运行的网络服务存在 0day 漏洞,黑客就可以利用这个漏洞,以 root 的身份在您的服务器上为所欲为了。是不是很可怕? ## 2. selinux 如何工作 ### 2.1 相关概念 > 1. 主体Subjects > 2. 目标Objects > 3. 策略Policy > 4. 模式Mode 当一个主体Subject(如一个程序)尝试访问一个目标Object(如一个文件): 1. SELinux安全服务器SELinux Security Server(在内核中)从策略数据库Policy Database中运行一个检查。 2. 基于当前的模式mode,如果 SELinux 安全服务器授予权限,该主体就能够访问该目标。如果SELinux安全服务器拒绝了权限,**就会在/var/log/messages中记录一条拒绝信息**。 ### 2.2 访问控制模式 #### 2.2.1 访问控制模式种类 SELinux 有三个模式(可以由用户设置)。这些模式将规定 SELinux 在主体请求时如何应对。这些模式是: > 1. Enforcing (对应1)强制— SELinux 策略强制执行,基于 SELinux 策略规则授予或拒绝主体对目标的访问 > 2. Permissive(对应0)宽容— SELinux 策略不强制执行,不实际拒绝访问,但会有拒绝信息写入日志 > 3. Disabled 禁用— 完全禁用SELinux #### 2.2.2 查看模式 执行命令: ~~~ getenforce ~~~ 永远不推荐关闭 SELinux。为什么?当你这么做了,就会出现这种可能性:你磁盘上的文件可能会被打上错误的权限标签,需要你重新标记权限才能修复。而且你无法修改一个以 Disabled 模式启动的系统的模式。你的最佳模式是Enforcing或者Permissive-对于我这种菜鸟,那还是Permissive好啊! ### 2.3 策略 #### 2.3.1 策略类型 SELinux策略有两种: > 1. Targeted目标: > 只有目标网络进程(dhcpd,httpd,named,nscd,ntpd,portmap,snmpd,squid,以及 syslogd)受保护 > 2. Strict严格: > 对所有进程完全的SELinux保护 #### 2.3.2 配置策略 etc/selinux/config文件中修改策略类型 ~~~ SELINUXTYPE=targeted ~~~ 修改这个选项为targeted或strict以满足你的需求。 ## 3. 修改策略 ~~~ # 临时生效,重启系统后失效 setenforce 0 # 修改配置(重启后生效),永久生效,想要立即生效,执行上边命令 vim /etc/selinux/config SELINUX=Permissive ~~~