ugo只会管谁能用,他不会管 能用的人该怎么用
所以SELinux的功能就是 管 能用的人该怎么用
SELinux标签 的格式:用户、规则、类型、层次、文件
类型 决定 SELinux策略
既然已经更改配置文件,把SELINUX设为permissive,那为什么之后还要setenforce 0?
因为:修改SELinux配置文件是为了"永久生效",但必须重启,而你现在又不想立马重启,
所以执行 setenforce 0 从而立马生效
文件在移动后会保留其SELinux type,而文件在复制后会继承 目标目录的SELinux type
curl 网站 :获取网站的内容
当SELinux拒绝某一操作时,会产生一条AVC消息
AVC消息 的信息会被记录到
/var/log/audit/audit.log 和 /var/log/messages中
/var/log/audit/audit.log中记录:AVC消息 的完整信息 (包含 AVC消息 的摘要)
/var/log/messages中记录:AVC消息 的摘要
AVC消息 的摘要 包含 AVC 的UUID (先less/var/log/messages,再/sealert,并一直输
入n直到 定位到最后一条 → 从而找到sealert -l UUID)
然后sealert -l UUID 就可以查看AVC消息 的详细报告(到底是因为什么才被SELinux拒绝的)
sealert -a /var/log/audit/audit.log
这个命令的作用是查看所有AVC消息的详细报告(而不需要知道具体的 UUID)
被SELinux拒绝的最常见原因:
新建、复制、移动后 产生的文件 具有不正确的SELinux上下文
为什么semanage后还要restorecon?
semanage是修改 默认法律,restorecon是立即执行 默认法律
raw:生的,原始的
raw audit messages:原始的监听消息
ausearch:audit search → 搜索/var/logs/audit/audit.log中的消息
(加-m:筛选指定的类型;加-ts:筛选指定的时间)
scontext:source context,源上下文
tcontext:target context,目标上下文
强制访问控制(MAC)的作用:只有两者的标签映射被允许,才可以访问
SELinux就是MAC的一种
SELinux 是如何保护资源的?
SELinux 采用强制访问控制(MAC)机制,
预先给所有的:进程、文件、端口等 打上SELinux 上下文。
之后操作系统内核 根据预定义的SELinux策略,
对比主体(进程)上下文 和客体(文件 / 端口等)上下文,
只有两者的上下文 之间的映射 是SELinux策略所允许的,才允许主体访问客体。
从而实现:就算某一服务被攻击,那么危害也仅限这个服务,不会影响到系统的其余部分
(打标签,两者的标签映射 被允许了,才能访问 → 从而使损失最小化)
(主体想要访问客体,不一定要 2者的SELinux上下文 完全一样)
最小权限原则:只要没有明说 这样做是可以的,就不能这么做
setenforce 0 命令的作用是什么?
将 SELinux 切换为宽容模式(Permissive)
即:你可以违规,但你的任何违规操作都会被记录到审计日志中