AppArmor

分享于 

11分钟阅读

MySQL/MariaDB

  繁體 雙語

内容

  1. 简介
  2. 安装
    1. 8.04和更高版本
  3. 用法
    1. 列出 apparmor的当前状态
    2. 在抱怨模式中放置了一个配置文件
    3. 将所有配置文件置于投诉模式
    4. 将配置文件置于强制模式
    5. 将所有配置文件置于强制模式
    6. 将所有配置文件放在强制模式之外
    7. 禁用AppArmor框架
    8. 启用AppArmor框架
    9. 重新加载所有配置文件
    10. 重新加载一个配置文件
    11. 禁用一个配置文件
    12. 启用一个配置文件
  4. 配置文件自定义
  5. 常见问题
    1. apparmor_status报告无限制但已经定义了配置文件的进程
    2. 如何为 Firefox 启用 AppArmor
    3. 如何让AppArmor使用非标准主目录
  6. 创建新的配置文件
    1. 设计测试计划
    2. 生成新的配置文件
    3. 在apparmor配置文件包中包含你的新配置文件
    4. 将一个apparmor配置文件配置文件迁移到软件包
  7. 更新配置文件
  8. 调试AppArmor问题
  9. 资源
  10. 外部链接

介绍

AppArmor是一个基于Linux安全模块的名称访问控制的实现。 AppArmor将单个程序限制为一组列出的文件和 posix 1003.1 e 草稿功能。

关于AppArmor的进一步信息可以在AppArmor项目的wiki 上找到。

安装

Ubuntu和更高版本

AppArmor默认安装并加载。 一些软件包将安装自己的强制配置文件。 其他配置文件可以在软件包 apparmor配置文件从宇宙存储库中找到。 当对安装的apparmor配置文件进行 Bug 归档时,请参见: https://wiki.ubuntu.com/DebuggingApparmor

安装额外的AppArmor配置文件

用法

所有以下命令都应该从终端执行。

列出apparmor的当前状态

sudo apparmor_status

将配置文件置于抱怨模式

sudo aa-complain/path/to/bin

例如:

sudo aa-complain/bin/ping

将所有配置文件置于抱怨模式

 
 

sudo aa-complain/etc/apparmor. d/*

 

将配置文件置于强制模式

sudo aa-enforce/path/to/bin

例如:

sudo aa-enforce/bin/ping

将所有配置文件置于强制模式

 
 

sudo aa-enforce/etc/apparmor. d/*

 

在强制模式下放置除一个外的所有配置文件

 
 

GLOBIGNORE="*profile.name"
sudo aa-enforce/etc/apparmor. d/*

 

例如:

 
 

GLOBIGNORE="*bin.ping"
sudo aa-enforce/etc/apparmor. d/*

 

禁用AppArmor框架

系统通常不需要完全禁用AppArmor禁用。 这是强烈建议用户离开AppArmor启用和付诸表决的有问题的配置文件到抱怨,( 请参见上文) 模式,然后使用的程序,发现在 https://wiki.ubuntu.com/DebuggingApparmor Bug 文件。 如果AppArmor必须禁用。( 如使用 se linux ),用户可以:

 
 

sudo invoke-rc.d apparmor kill
sudo update-rc.d -f apparmor remove

 

在 Ubuntu 8.04 ( hardy ) 上,Ubuntu 8.10 ( intrepid ) 和 Ubuntu 9.04 ( 活泼):

 
 

sudo invoke-rc.d apparmor stop
sudo update-rc.d -f apparmor remove

 

使用 终止 with或者更高版本提供以下错误:

 
 

Killing AppArmor module - failed, AppArmor is builtin: Failed.

 

在 Ubuntu 9.10和更高版本上,你可以:

  • 调整内核引导 命令行 ( 请参见 /boot/grub/menul.lst 对于Grub或者 /boot/grub/grub.cfg Grub ),包括

  • *'apparmor=0''
  • *的ecurity=xxx',其中XXX可以是"",禁用AppArmor或者备用LSM名称,例如。 ''security="selinux"''

  • 删除 apparmor 软件包管理器附带的软件包。 如果你想以后再重新启用 AppArmor,请不要'清除'

启用AppArmor框架

 
 

sudo invoke-rc.d apparmor start
sudo update-rc.d apparmor start 37 S. 

 

重新加载所有配置文件

 
 

sudo invoke-rc.d apparmor reload

 

重新加载一个配置文件

 
 

sudo apparmor_parser -r/etc/apparmor. d/profile.name

 

例如:

 
 

sudo apparmor_parser -r/etc/apparmor. d/bin.ping

 

禁用一个配置文件

 
 

sudo ln -s/etc/apparmor. d/profile.name/etc/apparmor. d/disable/
sudo apparmor_parser -R/etc/apparmor. d/profile.name

 

例如:

 
 

sudo ln -s/etc/apparmor. d/bin.ping/etc/apparmor. d/disable/
sudo apparmor_parser -R/etc/apparmor. d/bin.ping

 

启用一个配置文件

默认情况下,启用配置文件( 加载到内核中并应用到进程)。

 
 

sudo rm/etc/apparmor. d/disable/profile.name
sudo apparmor_parser -r/etc/apparmor. d/profile.name

 

例如:

 
 

sudo rm/etc/apparmor. d/disable/bin.ping
sudo apparmor_parser -r/etc/apparmor. d/bin.ping

 

配置文件自定义

配置文件可以在 /etc/apparmor.d 这些是简单的文本文件,可以使用文本编辑器进行编辑,也可以使用 aa-logprof

某些定制可以在 /etc/apparmor.d/tunables/ 更新配置文件时,适当地使用这些配置文件非常重要。 例如,不使用以下规则:

 
 
/home/*/r,

 

使用:

 
 
 @{HOME}/r,

 

更新配置文件后,请确保重新加载( 请参见上文)。

常见问题解答

apparmor_status报告无限制但已经定义配置文件的进程

重新启动列出的进程。重新启动也将修复问题。

AppArmor只能跟踪和保护在内核模块加载之后启动的进程。 安装了apparmor软件包后,apparmor将启动。 但是,运行进程不会受到AppArmor的保护。 重新启动进程或者重新启动将修复这里问题。

还可以通过发出以下命令对已经运行的进程应用配置文件:

 
 

sudo sh -c"echo 'setprofile/path/to/bin'>/proc/pid/attr/current"

 

如何为 Firefox 启用 AppArmor?

自从 Ubuntu 9.10 ( 业力),apparmor附带配置文件 Firefox,默认禁用的。

可以使用以下命令启用它:

 
 

sudo aa-enforce/etc/apparmor. d/usr.bin.firefox

 

如何让AppArmor使用非标准主目录?

主目录的位置可以在 /etc/apparmor.d/tunables/home

使用Ubuntu和 上面,你可以使用 apparmor重新配置

创建一个新配置文件

设计测试计划

尝试考虑应用程序应如何执行。 测试计划应该划分为小测试用例。 每个测试用例都应该有一个小的描述,并列出。

一些标准测试用例包括:

  • 启动程序
  • 停止程序
  • 重新加载程序
  • 测试init脚本支持的所有命令

在图形程序的情况下,你的测试用例也应该包括任何你通常。 下载和打开文件。保存文件。上传文件。使用插件。保存配置更改以及启动其他程序都是可能的。

生成新配置文件

使用 aa-genprof 生成新的配置文件。

从终端,使用命令 aa-genprof:

sudo aa-genprof executable

例如:

sudo aa-genprof slapd

手册页有更多信息: man genprof

将你的新配置文件包含在apparmor配置文件包中

要获得AppArmor配置文件包中包含你新的配置文件,在对 AppArmor package 发射台文件 Bug:

  • 包括测试计划和计量经济学。
  • 将新配置文件附加到 Bug。

将apparmor配置文件配置文件迁移到软件包

请参见 https://wiki.ubuntu.com/ApparmorProfileMigration

更新配置文件

当程序行为不正常时,审计消息发送到日志文件。 程序 aa-logprof 可以用于扫描AppArmor审计消息的日志文件,查看它们并更新概要文件。

sudo aa-logprof

手册页有更多信息: man logprof

调试AppArmor问题

当对安装的apparmor配置文件进行 Bug 归档时,请参见: https://wiki.ubuntu.com/DebuggingApparmor

资源



相关文章