Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

SELINUX #40

Closed
zhangyachen opened this issue May 31, 2016 · 0 comments
Closed

SELINUX #40

zhangyachen opened this issue May 31, 2016 · 0 comments
Labels

Comments

@zhangyachen
Copy link
Owner

zhangyachen commented May 31, 2016

selinux名称意思

Security Enhanced Linux的缩写,安全强化Linux 的意思。

为什么要有selinux

有的时候在linux上想要访问文件,但是却出现了"Permission Denied"。于是为了省事情,干脆直接chmod 777 file/dir. 如果这是一个普通测试文件还好办,但是如果是Web服务器的根目录,代表所有程序均可对该目录存取,万一你真的有启动 WWW 服务器软件,那么该软件所触发的程序将可以写入该目录, 而该程序却是对整个 Internet 提供服务的!只要有心人接触到这支程序,而且该程序刚好又有提供使用者进行写入的功能, 那么外部的人很可能就会对你的系统写入东西,如果是恶意文件那就不好办了。
我们把如上不合理的做法叫员工资源误用,为了防止如上的操作带来损失,美国国家安全局 (NSA) 开发selinux,使得linux更加安全。

DAC

自主式存取控制 (Discretionary Access Control),根据程序的拥有者与文件资源的 rwx 权限来决定有无存取的能力。 但是会有如下的缺点:

  • root 具有最高的权限:如果不小心某个程序被恶意用户取得, 且该程序拥有 root 的权限, 那么就可以在系统上进行任何资源的存取!因为各种权限配置对于root用户是无效的。
  • 资源误用:如果不小心将某个目录的权限配置为 777 ,该目录就会被任何人所任意存取!

MAC

强访问控制(Mandatory Access Control, MAC),可以针对特定的程序与特定的文件资源来进行权限的控管。这样即使某个用户取得了root权限,但是在访问不同的程序时,取得的权限不一定是root,这要根据程序的配置而决定。
在DAC中,我们根据用户的身份或者属组来判断用户是否有权限。但是在MAC中,我们控制的是程序。这样一来,我们控制的主体就是程序而不是用户

强调:如果恶意用户以root用户本地或者远程登录机器,那么selinux无法阻止其访问文件。说白了selinux是防止用户通过某一种程序或者服务(比如http)恶意访问其他文件。

参考资料:http://vbird.dic.ksu.edu.tw/linux_basic/0440processcontrol_5.php

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

1 participant