AppArmor零知识学习一、初识
郑重声明:
近期笔者发现本文及其它文章被一条大河网非法盗用,该网站盗用链接如下:AppArmor零知识学习一、初识
截图如下:
笔者欢迎转载,也乐中于知识分享,但请在转载时注明原文出处。该网站在文章中并未注明“转载”字样,也没有给出转载链接,属于赤裸裸的侵权行为,在此对一条大河网予以强烈谴责!并在此申明:本系列文章系笔者(CSD 笔名蓝天居士)原创,其它未注明出处的转载均属于非法!
本文内容参考:
apparmor 初识(一)_domybest_nsg的博客-CSDN博客,
AppArmor与SElinux_apparmor selinux_weixin_45216475的博客-CSDN博客,
apparmor_什么是AppArmor?如何确保Ubuntu安全?_culingluan4376的博客-CSDN博客,
学习LSM(Linux security module)之三:Apparmor的前世今生和基本使用_Yuri800的博客-CSDN博客
一、何为AppArmor
在研究SELinux的时候,发现还有个AppArmor,这也是第一次接触。见新名词、新事物不能交臂而失之,因此本系列文章就来认识、了解并深入研究AppArmor。
AppArmor的全称是Application Armor,Application自不必说,是应用的意思,那么Armor是什么意思?armor的英文原意是盔甲,作动词时意义是为……装盔甲。弄清楚了armor的意思之后,Application Armor的意思就豁然开朗了且一目了然吧:为应用程序装盔甲。你从字面上就能知道AppArmor一定和安全相关,不然都对不起这名字。
AppArmor是Linux内核的强制访问控制(MAC)的一个实现方案,与SELinux并列,也是使用了Linux安全模块(LSM)框架,因此它们可以互换。AppArmor默认集成在openSUSE和Ubuntu等发行版中(在openSUSE、Ubuntu等发行版上默认开启)。而SELinux则默认集成在Red Hat和CentOS上。
二、背景及产生原因
AppArmor最初由Immunix开发,随后由Novell维护。AppArmor的开发初衷是因为有人认为SELinux太过复杂,不适合普通用户管理。—— 这一点笔者举双手赞同,从开始研究SELinux到现在两周了,仍然没有弄清楚那些具体的策略怎样写(涉及主体、客体、域、许可……)。
那么具体比较一下AppArmor和SELinux,看看AppArmor与SELinux相比,到底有何异同:
- 相同点
AppArmor和SELinux都是Linux内核的安全模块,都使用了Linux安全模块(LSM)框架;
AppArmor和SELinux都属于强制访问控制(MAC)机制;
AppArmor和SELinux基本的概念和使用类似,如都包括complain和enforce模式;
AppArmor和SELinux都有图形化配置工具。
- 不同点
相比SELinux,AppArmor相对简单易用(例如规则文件无需编译),更加适合日常使用;
SELinux需要一个支持扩展属性的文件系统,而AppArmor对文件系统没有任何要求;
与SELinux必须只有明确的允许策略才能允许访问不同,AppArmor只有当程序的配置文件明确规定了受限,才会限制;
SELinux基于角色,AppArmor基于路径;
SELinux规则文件需要编译,AppArmor规则文件无需编译;
AppArmor具有学习模式。
三、AppArmor VS SELinux
实际上边已经比较了AppArmor和SELinux的异同。在此从宏观层面将两者进行更加全方位的比较:
- 易用性
对一个FTP程序做相同的限制,使用AppArmor的规则只是SELinux的1/4,而且从代码的替代性上来看,Apparmor的代码也更易理解和易读。
- 安全性
毋庸置疑,SELinux更安全。看下SELinux的出身,其是美国国家安全局「NSA」和SCC(Secure Computing Corporation)开发的Linux的一个扩展强制访问控制安全模块,可谓“根红苗正”。再从理论上也可以了解到SELinux与Apparmor最大的区别在于:Apparmor使用文件名(路径名)作为安全的标签,而SELinux使用文件的inode作为安全标签。这意味着,Apparmor机制可以通过修改文件名而被绕过。另外,在文件系统中,只有inode才具有唯一性。
最后做个小总结,无论是CentOS/Red Hat还是openSUSE/Ubuntu,它们都是优秀的产品。在AppArmor与SELinux的选择上,也都有各自的考量。如果从配置与上手的难易程序上来说,Apparmor更容易配置、入门和上手;如果从追求更高的安全性上来说,SELinux上更优一些。从日立软件的测试结果来看,也比较推荐使用SELinux而不是AppArmor。
相关文章
- Thinkphp5学习010-项目案例-添加学生模板设计
- 图学习【参考资料2】-知识补充与node2vec代码注解
- [Nat.Mach.Intell. | 论文简读] 基于深度学习的全天候自动驾驶鲁棒定位
- [IJCAI 2022 | 论文简读] 多波段VAE:用于持续学习中知识整合的潜在空间对齐
- 积木式深度学习的正确玩法!新加坡国立大学发布全新迁移学习范式DeRy,把知识迁移玩成活字印刷|NeurIPS 2022
- 如何引导孩子学习初中几何? 和大闺女悄悄讨论了一次啥是长方形
- 【愚公系列】2023年04月 WPF运动控制平台-002.运动控制平台知识点学习
- Spark学习笔记4:数据读取与保存详解大数据
- xml基础学习笔记详解编程语言
- java关键字之static详细学习详解编程语言
- 学习Linux知识,从此专业上网(linux学习网站)
- 观视角:学习Linux C语言的重要性Linux C语言:掌握知识的重要性(linuxc宏)
- 如何学习编程语言
- 学习Oracle知识,这些网站不可错过(学习oracle的网站)
- 学习MySQL课程:掌握数据库知识(mysql课程)
- Linux下的重定向技术深入学习(linux的重定向)
- 学习Oracle:获取精通完整的Oracle知识(oracle知识)
- 精通SQLServer:从博客中学习数据库知识(博客sqlserver)
- SQL Server课程:学习一门强大的数据库语言(sqlserver课程)
- 轻松学习Redis获取技巧,提升数据处理效率(redis获取)
- 解析:学习Linux bind命令(linuxbind命令)
- Linux PHP指南:学习新知识,提升能力(linuxphp手册)
- 解析Redis源码,学习存储引擎之美(怎样研究redis源码)
- 学习Redis攻克挑战,拥抱成功(怎么学好redis)
- 学习Redis前备知识网络编程和数据结构(学redis之前要学什么)
- 后盾网教程缺少学习Redis入门知识(后盾网教程没讲redis)
- Java反射机制的学习总结
- GoogleDart编程语法和基本类型学习教程