[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中记录一条拒绝信息**.
3. /var/log/message保存系统日志信息
### 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
~~~
- Linux
- 高级
- 杀毒
- 记一次中毒事件
- clamav查毒软件
- 处理挖矿病毒
- 定时任务
- kill
- chattr文件保护
- 运行级别
- Linux启动
- 文件加密
- ssh免密登录
- .ssh
- 问题
- 脚本
- 阿里云域名解析
- yum源
- 时间同步
- keepalived实现高可用
- dos字符与unix字符
- 大文件上传
- 基础
- proc目录
- 设置宋体
- 基础命令_01
- 基础命令_02
- SELinux
- 文件描述符
- 基础命令_03
- awk
- 系统日志
- date命令
- bc命令
- lsof
- vim快捷键
- shell
- 循环控制
- expr
- 执行脚本的方式
- declare
- shell脚本
- 控制启停脚本
- 数值计算
- centos
- 配置网络
- 环境
- 灰度环境
- ansible
- 模块
- 语法
- file模块
- setup模块
- ping模块
- copy模块
- command模块
- shell模块
- service模块
- cron模块
- yum模块
- user 模块
- group模块
- 指定用户
- playbook
- 实例
- ansible安装
- Jenkins
- shell部署
- 导入已有项目的配置
- 执行shell
- tungsten数据同步
- 防火墙
- netfilter