selinux

安全增强型linux(security-enhanced linux)简称selinux,它是一个linux内核模块,也是linux的一个安全子系统。它主要由美国国家安全局开发,是一个非常复杂的安全机制。

DAC

在未采用selinux的机器上,用户只要拥有对文件的权限,就可以访问该资源,并且,root用户在系统中畅通无阻,风险十分大。这种基于用户自主的访问形式,被称为自主访问控制(DAC)。

MAC

为了解决linux存在的安全问题,于是产生了selinux,selinux是一个基于MAC的权限管理机制,它可以将进程的运行权限限制在最小,即使该进程被控制,也只能访问它允许访问的资源,安全性大大增强。

主体(subject)

在linux系统中,主体基本完全等同于进程。linux不区分进程与线程。

对象(object)

被主体访问的资源。可以是文件、目录、端口、设备等。

政策和规则(policy & rule)

linux拥有大量的进程和文件,并不是所有的文件和进程都需要进行控制,为了提高效率,selinux提供了一系列政策,来规定哪些进程需要管制,每个政策包含多个规则。部分规则可以按需启用或者关闭。

安全上下文(scurity context)

安全上下文分为进程安全上下文和文件安全上下文,只有两者都一致,进程才能访问该文件资源。

selinux工作流程图

本文对selinux的讲解并不是非常全面,读者若想更加深入了解selinux,可以自行查阅资料。我在这里更想让读者思考的是这种安全机制,当我们在给一个系统作安全加固时,最小权限原则,应该始终是我们坚持的第一安全原则。