技术解析

关于 SELinux 的疑问
0
2021-06-21 08:29:29
idczone

SELinux 在 root 用户下执行setenforce 0就能从 Enforcing 模式转成 Permissive 模式,不再阻止不合理操作。那么推出 SELinux 的作用是什么呢?小弟才疏学浅,还望大佬们指导一下


传言 nsa 在 selinux 里面不知道搞了什么东东 有大侠有研究的吗?

“ Windows 的管理员可以设置病毒自动运行并且关闭杀毒软件,那么推出杀毒软件的作用是什么呢?”
The point is 要放开安全措施是需要管理员的。

windows 里面系统服务( system 用户)才是最高权限,和 Linux 差别还是很大了

按你的逻辑,有关闭功能的浏览器不是好浏览器、有钥匙的都不是好锁?
日常操作服务器不使用 root
SELinux 可以弥补“拥有者-所属组-其他人”的不便 、加强权限控制,百科能查到详细的介绍
这东西属于不好学但很有用类的,建议永久启用。

但是这样只有管理员权限不就够了吗,得到管理员权限相当于可以无视 SELinux,为什么还要新增 SELinux 呢?

android 新点的手机你 root 了看看,许多厂家就不给你 root,服务器的话 root 意味着你就是管理员,root 权限都有了怎么操作都可以。

你写的应用软件运行在 root? 出了漏洞黑客也不能得到 root 怎么关

已经具有管理员权限的代码不再需要额外的授权即可把自己变成任意的本地实体,包括 SYSTEM 和 TrustedInstaller,所以 Administrators 具有本地的最高权限。
任何事情都是“有了管理员权限就够了”。SELinux 的存在是为了强化 Linux 中还没有被证明是安全的地方,也就是预防性措施。拥有管理员权限的人相当于有大门的钥匙,安全措施是为了防止不该有大门钥匙的人通过奇怪的方式具有大门钥匙,以及防止有不是大门的门出现。

哈哈,谢谢回答,看来我还得找资料来增进了解,不然总是会冒出奇怪的问题



看到某博文中的一句话:"即使进程是以 root 身份运行的,也需要判断这个进程的类型以及允许访问的资源类型才能决定是否允许访问某个资源。"所以才有这个疑问的

谢谢回答,好像有点了解了

SELinux 管的是进程,不是人。
主要就是让每个进程乖乖站好♂。

那是你 ssh 或者直接实体 tty 登录的 shell 是处于一种叫做 unconfined_t 的状态的,在这种状态下绝大部分的操作都是被允许的,除非有专门的 policy 针对这个 type 设置了 deny 条目。
这是因为在这种 SELinux 的配置下,主要还是为了防范来自网络上的威胁,而默认你本地操作都是安全( secure 而不是 safe )的。
而如果是依靠漏洞之类的东西拿到的 root 的 shell,只要 SELinux 配置的没问题,那么这个 shell 即使是 root 权限,但因为会默认继承漏洞程序的 context,也就不会是 unconfined_t,也自然是没办法执行 setenforce 的,不出意外可能这个 shell 连 ls 都没法执行。(然而更可能是因为 SELinux 的存在,这个 shell 是拿不到的

谢谢,你的回答解开了我对 root 权限和 SELinux 的关系的疑惑

虽然我注重安全和隐身,但是我从来未使用过 selinux,自己编译的 kernel 设置还可以去掉 selinux 的支持而选用 posix acl。有在个人设备上使用 Hardened linux 的朋友请举个手。(发现 hardendlinux 官网首页就有几个中文翻译文档)。

数据地带为您的网站提供全球顶级IDC资源
在线咨询
专属客服