本文内容参考:
AppArmor配置(二)_domybest_nsg的博客-CSDN博客,
Apparmor简单学习_trap0D的博客-CSDN博客,
学习LSM(Linux security module)之三:Apparmor的前世今生和基本使用_wx5b7658e51ef04的技术博客_51CTO博客
接前一篇文章:AppArmor零知识学习二、相识
从本篇文章开始,不再只单纯介绍AppArmor理论方面的知识,而是以实践、实操为主。
对于Ubuntu系统来说,集成了AppArmor。但包括的profile文件(类似规则文件)及一些附带的操作模块较少,可以自行通过apt命令进行下载安装。
比如,通过以下命令下载安装apparmor的管理工具套装(安装方便操作apparmor的工具):
sudo apt-get install apparmor-utils
通过以下命令下载安装apparmor-profiles软件包(安装补充的profiles):
sudo apt-get install apparmor-profiles
但对于其它Linux发行版操作系统,apt命令就可能无法使用了,并且该系统也未必默认使用的是AppArmor。因此,本篇文章及之后的文章中,笔者将展示给大家如何从源码下载和构建(配置、编译、安装)AppArmor。
一、项目概览
AppArmor项目的源码网址为AppArmor · GitLab。页面如下所示:
可以看到,包括apparmor、apparmor-kernel、apparmor-profiles、apparmor.net、apparmor_e2e共5个子项目/工程。
- apparmor
The AppArmor user space development project. —— AppArmor用户空间开发项目。
- apparmor-kernel
Development for the armor kernel module. —— armor内核模块的开发。
- apparmor-profiles
The AppArmor profiles project, for sharing developed profiles. —— AppArmor profiles项目,用于共享已开发的配置文件。
- apparmor.net
Apparmor.net website (via Gitlab Pages)。
- apparmor_e2e
E2E Testing for AppArmor。
二、apparmor源码下载
重点来看apparmor。点击AppArmor源码网址中的 “apparmor”项,进入以下链接:
AppArmor / apparmor · GitLab
页面如下:
通过以下命令下载源码:
git clone https://gitlab.com/apparmor/apparmor.git
命令及结果如下所示:
$ git clone https://gitlab.com/apparmor/apparmor.git
正克隆到 'apparmor'...
remote: Enumerating objects: 56455, done.
remote: Counting objects: 100% (205/205), done.
remote: Compressing objects: 100% (94/94), done.
remote: Total 56455 (delta 121), reused 177 (delta 108), pack-reused 56250
接收对象中: 100% (56455/56455), 23.53 MiB | 1.85 MiB/s, 完成.
处理 delta 中: 100% (42195/42195), 完成.
$ ls apparmor/
binutils changehat common documentation kernel-patches libraries LICENSE Makefile parser presentations profiles README.md tests utils
$ du apparmor/
……
│ └── wtmp-examples
│ ├── wtmp-aarch64
│ ├── wtmp-aarch64-expected-output
│ ├── wtmp-s390x
│ ├── wtmp-s390x-expected-output
│ ├── wtmp-truncated
│ ├── wtmp-x86_64
│ ├── wtmp-x86_64-expected
│ ├── wtmp-x86_64-past
│ └── wtmp-x86_64-past-expected
└── vim
├── apparmor.vim.in
├── apparmor.vim.pod
├── create-apparmor.vim.py
└── Makefile
166 directories, 3528 files
三、源码简介
源码目录下各个文件夹的说明如下:
- binutils
source for basic utilities written in compiled languages —— 用编译语言编写的基本实用程序的源代码
changehat
source for using changehat with Apache, PAM and Tomcat —— 将changehat与Apache、PAM和Tomcat一起使用的源代码
common
common makefile rules —— 通用makefile规则
desktop
空
kernel-patches
compatibility patches for various kernel versions —— 各种内核版本的兼容性补丁
libraries
libapparmor source and language bindings —— libapparmor源和语言绑定
parser
source for parser/loader and corresponding documentation ——
解析器/加载器的源码和相应的文档
profiles
configuration files, reference profiles and abstractions —— 配置文件、参考配置文件和抽象概念
tests
regression and stress testsuites —— 回归和压力测试套件
utils
high-level utilities for working with AppArmor —— 使用AppArmor的高层次实用程序