SELinux(Security Enhance Linux)是安全加强的Linux,SELinux其实在90年代初期甚至之前诞生时间相当早但是真正公开的时间并不是特别长,90年代初期在NSA(美国国家安全署)中的一位研究员手中,最开始的理念是为了实现进程在运行的时候具有最小单元集合而进行的并且那个有一个很重要的可行计算分级方式将操作系统的安全级别分为C1,C2,B1,B2,A1。数字越大安全级别越低所以C2的级别比C1的级别低同时字母在字母表中越靠上级别越高所以C1 低于B3如此排序,Linux、Window一般都是C2级别的安全性。
当没有SELinux时候 Linux安全级别并不比Window高 之所以Linux不容易中毒并不是安全级别高其实是上面可执行的程序较少只是减少了攻击的可能性这并不意味着真正安全
由于设计的初衷是让进程具备最小运行单元集合下,为了能让这此安全策略得以实施必须要和某一个操作系统内核结合起来后才能实现其完整的功能,于是NAS不得不找一个商业的操作系统来合作这就意味着操作系统厂商必须要把自己的内核源代码公开给SELinux项目,当时的操作系统厂商靠人力及财力发明的操作的系统几乎不可能乐意贡献给第三方,由于Linux遵循GUN协议源代码本身就是开源的,在2000年SELinux揉和进了Linux内核
SELinux工作模型:
此前讲过Linux的安全模型,关于进程运行的概念,SELinux的工作模式与之类似简单来讲就是Subject Action Object
控制进程由某一个主题所发出的指令动作操作某一个对象级别的安全,当运行某一个进程的时候会在内核空间创建一个沙箱,所有操作都在沙箱中完成
Strict Model:严格模型任何进程要想运行都必须接受SELinux控制
Target Model:目标模型并非控制每一个进程只控制一部分进程比如:httpd,nfs等
SELinux使用起来比较麻烦,完全深入了解没什么必要,大概讲讲SELinux是什么及怎么工作的和两种模型即可,之所以写这篇是因为后续会有安全密码相关的知识和简单认识到操作系统安全方面的知识
