AppArmor零知识学习一、初识
郑重声明:
近期笔者发现本文及其它文章被一条大河网非法盗用,该网站盗用链接如下:AppArmor零知识学习一、初识
截图如下:
笔者欢迎转载,也乐中于知识分享,但请在转载时注明原文出处。该网站在文章中并未注明“转载”字样,也没有给出转载链接,属于赤裸裸的侵权行为,在此对一条大河网予以强烈谴责!并在此申明:本系列文章系笔者(CSD 笔名蓝天居士)原创,其它未注明出处的转载均属于非法!
本文内容参考:
AppArmor · GitBook,
Linux安全模块AppArmor总结-CSDN博客,
AppArmor快速入门-CSDN博客,
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。
AppArmor零知识学习一、初识相关推荐
- AppArmor零知识学习十四、实操与实践(2)
本文内容参考: Linux安全模块AppArmor总结-CSDN博客, apparmor首页.文档和下载 - 应用程序访问控制系统 - OSCHINA - 中文开源技术交流社区, AppArmor · ...
- TPM零知识学习一 —— 初识
本文内容参考借鉴了以下链接: TPM安全芯片_百度百科 TCG(可信计算组织)_百度百科 TPM是什么? TPM英文全称为Trusted Platform Module,中文译为可信赖平台模块.TPM ...
- libvirt零知识学习3 —— libvirt源码编译安装(1)
接前一篇文章libvirt零知识学习2 -- libvirt源码下载 上一篇文章中详细介绍了libvirt的源码下载过程,下载了libvirt-8.10.tar.xz并解压.本文在前文的基础上进行源码 ...
- SELinux零知识学习四、Audit应用层源码下载、编译和安装
接前一篇文章:SELinux零知识学习三.SELinux应用层源码下载.编译和安装 在前篇文章中编译SELinux源码时,出现了如下错误: seusers_local.c:11:10: 致命错误:li ...
- LSM零知识学习六、插桩原理实现细节(4)
接前一篇文章:LSM零知识学习五.插桩原理实现细节(3) 本文内容参考: LSM(Linux Security Modules)框架原理解析_lsm linux_pwl999的博客-CSDN博客 特此 ...
- Nancy in .Net Core学习笔记 - 初识Nancy
原文:Nancy in .Net Core学习笔记 - 初识Nancy 前言 去年11月份参加了青岛MVP线下活动,会上老MVP衣明志介绍了Nancy, 一直没有系统的学习一下,最近正好有空,就结合. ...
- libvirt零知识学习6 —— libvirt源码编译安装(4)
接前一篇文章libvirt零知识学习5 -- libvirt源码编译安装(3) 上一篇文章中解决了YAJL包的编译时依赖问题.但是在解决后再次执行meson build时又遇到了新的错误"E ...
- libvirt零知识学习4 —— libvirt源码编译安装(2)
接前一篇文章libvirt零知识学习3 -- libvirt源码编译安装(1) 上一篇文章中讲到执行以下构建命令时出现了错误"ERROR: Problem encountered: YAJL ...
- Nacos学习之初识Nacos
Nacos学习之初识Nacos 在分布式项目中既然存在Eureka这个注册中心,那么Nacos有充当什么角色?Nacos到底是个啥?他又是咋么下载安装的?本文我会将从什么是Nacos.Nacos与其他 ...
最新文章
- java一维数组初始化_Java一维数组,初始化一维数组详解
- 据说只有程序员才看得懂 | 每日趣闻
- 开发板 pc机 虚拟机 三者之间如何互ping通
- python第一堂课
- EMR集群安全认证和授权管理
- JAVA中数组Array与List互转
- springboot中的拦截器interceptor和过滤器filter,多次获取request参数
- 期待鸿蒙是什么意思,如何看待华为将于 6月2 日举办鸿蒙发布会?你对此有哪些期待?...
- Shrink space合并表的碎片
- MySQL 之事务 及 其隔离级别
- android学习—— context 和 getApplicationContext()
- 存管 托管 监管 区别
- SpringBoot上传文件到服务器
- 考虑实时安全优化的自学习自适应交通信号控制
- STC12C5A60S2A/D转换
- 图着色问题(超详细!!!)
- 大数据案例--电信日志分析系统
- 【排序】八大排序算法简介及它们各自的特点总结
- java实现如何定时给微信群中发送消息
- 路径规划——CH算法
热门文章
- 每日一C:自然数倒数的平方和
- 学python人工智能电脑要什么配置_本人是大一人工智能专业,不打游戏,我们需要学习C++和Python。用什么配置的笔记本电脑比较好?...
- 雨水泛洪和网络泛洪那个更可怕
- canvas横屏签名,签名图片旋转90度生成base64
- 电压跟随器在电子电路设计中的主要作用
- 泼辣修图专业版 Polarr Photo Editor 5.4.9 中文特别版 Mac 强大易用的修图工具
- 模电中的经典运放电路总结
- SQL数据库开发笔记
- Oracle各种版本下“示例数据库的创建”的创建
- MSS代码解读-MmwDemo_mboxReadTask线程(八)