码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • kubernetes apparmor 简介


    Apparmor Overview

    tags: apparmor,安全

    文章目录

    • Apparmor Overview
      • 1. 简介
      • 2. 版本
      • 3. 包含 AppArmor 的发行版
      • 4. 源代码
        • 4.1 Kernel
        • 4.2 Userspace
      • 5. AppArmor 配置文件
      • 6. 命令
      • 7. 教程

    {% youtube %}
    https://www.youtube.com/watch?v=KYM-Dzivnjs
    {% endyoutube %}

    1. 简介

    AppArmor 是类似于 Linux 的安全系统的强制访问控制 (MAC)。AppArmor 将单个程序限制在一组文件、功能、网络访问和限制中,统称为程序的 AppArmor 策略,或简称为配置文件。无需重新启动即可将新的或修改的策略应用于正在运行的系统。AppArmor 旨在通过以管理员友好的语言呈现其配置文件,使其易于理解和用于大多数常见需求。
    AppArmor 的限制是有选择性的,因此系统上的某些程序可能会受到限制,而其他程序则不会。选择性限制允许管理员灵活地关闭有问题的配置文件以进行故障排除,同时限制系统的其他部分。
    不受限制的程序在标准 Linux 自由访问控制 (DAC) 安全性下运行。AppArmor 增强了传统 DAC,因为首先在传统 DAC 下评估受限程序,如果 DAC 允许该行为,则咨询 AppArmor 策略。
    AppArmor 支持按配置文件学习(投诉)模式,以帮助用户编写和维护策略。学习模式允许通过正常运行程序并学习其行为来创建配置文件。在 AppArmor 充分了解行为之后,配置文件可能会转为强制模式。虽然生成的配置文件可能比为特定环境和应用程序量身定制的手工配置文件更宽松,但学习模式可以大大减少使用 AppArmor 所需的工作量和知识,并增加重要的安全层。

    2. 版本

    AppArmor 有两个主要版本,即 2.x 系列(当前)和 3.x 系列(开发)。2.x 系列在其生命周期中看到了渐进式的改进,只是在语义兼容性方面出现了渐进式的中断。3.x 系列是 AppArmor 的重大扩展。两个主要系列都使用相同的基本策略语言,只有细微的语义差异。3.x 系列允许更多扩展的策略和细粒度的控制。

    3. 包含 AppArmor 的发行版

    • Annvix
    • Arch Linux, documentation and Arch specific notes
    • CentOs, documentation and CentOS specific notes
    • Debian, documentation and Debian specific notes
    • Gentoo
    • openSUSE (integrated in default install), documentation and Suse specific notes
    • Pardus Linux
    • PLD
    • Ubuntu (integrated in default install), documentation and Ubuntu specific notes

    这些发行版的任何衍生产品也应该有 AppArmor 可用。更新的 RPMS可以在openSUSE 构建服务中找到。这些不限于 SUSE 发行版。

    4. 源代码

    AppArmor 项目源代码分为内核模块(在 Linux 内核和 git 开发树中可用)和启动板中可用的用户空间工具。

    4.1 Kernel

    AppArmor 在 2.6.36 的上游内核中。内核模块 git 树中提供了早期版本:

    • 如何获取 AppArmor 内核源
    • 注意:master 分支不稳定,会时不时地rebase。发布分支将是稳定的,不会被重新定位。

    AppArmor v2.4 兼容性补丁在稳定的内核分支中可用。例如 v3.4-aa2.8 或 kernel-patches 目录中的发行版 tarball。

    4.2 Userspace

    • 当前稳定版本:3.0.6
    • 支持的版本:2.13.6
    • 支持的版本:2.12.3
    • 支持的版本:2.11.3
    • 生命周期结束版本:2.10.6
    • 用户空间工具
      如何获取 AppArmor 用户空间工具

    5. AppArmor 配置文件

    开发 AppArmor 配置文件位于 Bazaar 存储库中。安装发行版的 Bazaar 软件包后,可以使用以下命令下载它们:

     git clone git://git.launchpad.net/apparmor-profiles
    
    • 1

    找到与您的发行版和版本匹配的子目录,并在里面查找当前正在开发的各种配置文件。您可以通过将配置文件复制到 /etc/apparmor.d 并重新启动 AppArmor 来使用配置文件:

    $ /etc/init.d/apparmor restart
     restart apparmor     # if upstart is being used, with initscripts that have been fully updated to support upstart
    
    • 1
    • 2

    如何创建或修改 AppArmor 配置文件

    • 使用工具创建和修改 AppArmor 策略
    • 手动创建和修改 AppArmor 策略
    • AppArmor 文档

    6. 命令

    AppArmor 手册
    Ubuntu Profile enforcement:

    • apparmor_parser:将 AppArmor 配置文件加载到内核中
    • aa-audit:将 AppArmor 安全配置文件设置为审核模式
    • aa-enforce:设置 AppArmor 安全配置文件以强制模式被禁用或抱怨模式。
    • aa-complain:将 AppArmor 安全配置文件设置为抱怨模式

    Ubuntu Monitoring tools:

    • aa-status:显示有关当前 AppArmor 策略的各种信息
    • aa-notify:显示有关记录的 AppArmor 消息的信息
    • aa-unconfined:输出带有 tcp 或 udp 端口​​但没有 AppArmor 的进程列表已加载配置文件

    Ubuntu Profile development:

    • aa-autodep:猜测基本的 AppArmor 配置文件要求
    • aa-logprof:用于更新 AppArmor 安全配置文件的实用程序
    • aa-genprof:AppArmor 的配置文件生成实用程序
    • mod_apparmor:Apache 的细粒度 AppArmor 限制
    • aa_change_hat
    • aa_change_profile:更改任务配置文件
    • PAM plugin:可用于根据在用户或任务级别完成的身份验证附加配置文件

    7. 教程

    • 使用工具创建和修改 AppArmor 策略
    • 手动创建和修改 AppArmor 策略
    • 将 mod_apparmor 与 Apache 一起使用来限制 Web 应用程序- DRAFT
    • 使用 AppAmor 和 libvirt 来限制虚拟机
    • 将 AppArmor 与 PAM 集成以实现基于登录的策略
    • 使用 AppArmor 进行基于角色的访问控制 (RBAC) - 草稿
    • 使用 AppArmor 实现多级安全 (MLS) - DRAFT
    • 使用 AppArmor 限制和控制通过 wine 运行的 Windows 应用程序- DRAFT
    • 使用完整的系统策略- DRAFT
    • 如何在 systemd 中使用 AppArmor - DRAFT

    参考:

    • AppArmor
    • AppArmor Documentation
  • 相关阅读:
    MySQL多字段相同数据去重复
    邮政编码,格式校验:@ZipCode(自定义注解)
    WINDOWS+PHP+Mysql+Apache环境中部署SQLi-Labs、XSS-Labs、UPload-Labs、DVWA、pikachu等靶场环境
    《C++ 并发编程实战 第二版》:条件变量唤醒丢失与虚假唤醒
    TCP三次握手与四次挥手
    2021 Domain Adaptation(李宏毅
    Google Play 索引表
    LeetCode--162. 寻找峰值(C++描述)
    HackTheBox Ambassador 枚举获得用户shell,git consul API提权
    Java学习06——运算符
  • 原文地址:https://blog.csdn.net/xixihahalelehehe/article/details/126226966
  • 最新文章
  • 沪漂五周年了:我越来越迷茫了
    Agentic Skill Routing 实战:别再把所有 Skill 塞进 AI Agent 上下文
    MySQL-Seconds_behind_master的精度误差
    [MAF预定义ChatClient中间件-03]CachingChatClient——利用缓存省钱省时间
    AI的至暗历史:从万众期待到被政府撤资,AI的两次死亡徘徊
    Agent OS :五种驯服不确定性的范式
    PortSwigger SQL注入LAB11
    数据库即时编译JIT
    [Begin]AI Learn Data Day 0
    深度学习进阶(二十七)现代 LLM 的核心架构设计其二:SwiGLU
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号