7

如何在 Ubuntu 中管理 AppArmor 服务和配置文件

 1 year ago
source link: https://www.sysgeek.cn/ubuntu-apparmor/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

如何在 Ubuntu 中管理 AppArmor 服务和配置文件

AppArmor

AppArmor,也称为应用盔甲(Application Armor),是一个 Linux 内核安全模块,可以为 Ubuntu 应用程序提供强制访问控制。它是灵活而强大的安全工具,通过将应用程序限制在系统有限的资源集合中,来预防软件漏洞和恶意攻击。

AppArmor 的开发可以追溯到 2000 年初,它被作为替代传统 Unix/Linux 访问控制模型的方案。Linux 作为服务器平台在当时越来越受欢迎,迫切需要更好的安全解决方案,以保护免受恶意软件和未经授权访问等威胁。为此,启动了 AppArmor 项目,并因其易于使用和灵活的配置选项而迅速走红。

现在,AppArmor 仍然作为保护 Ubuntu 应用程序安全的重要工具。它对需要确保敏感数据隐私和安全,防止对敏感系统进行未经授权访问的组织和个人尤其重要。AppArmor 安全模型可以为不同应用程序定义配置文件,为应用程序指定允许访问的权限和资源。这样一来,即使应用被攻破,也只能对配置文件中定义的资源造成有限损害。

Ubuntu 系统中 AppArmor 的特性

  • 灵活的配置:允许为不同应用程序创建自定义配置文件,可以对安全策略进行微调,以满足特定要求。
  • 强制访问控制:实施强制访问控制,应用程序只能访问(配置文件中定义)被允许的资源。
  • 易于使用:非常易于使用,配置方法简单直观。
  • 防范恶意攻击:通过将应用程序限制在有限的资源和权限中,以防范恶意攻击。
  • 改善系统安全性:将应用程序限制在有限的资源上,AppArmor 提高了系统整体安全性,并降低了未经授权访问的风险。
  • 与其他安全工具的良好互操作性:可以与其他安全工具(如 SELinux 和防火墙)配合使用,以提供额外的保护层。
  • 与 Linux 内核集成:与 Linux 内核集成,并提供高效、可靠的安全实践。

下面系统极客将为大家介绍,如何在 Ubuntu 管理 AppArmor 服务和配置文件,以及它的一些常规操作和配置。

安装所需的软件包

为了充分利用 AppArmor 的全部功能,需要安装apparmor-utils软件包,请打开「终端」并运行以下命令:

复制
sudo apt install apparmor-utils apparmor-notify apparmor-profiles apparmor-profiles-extra

查看 AppArmor 服务状态

默认情况下,在安装 Ubuntu 系统时就会安装并启用 Apparmor 服务。要验证其状态,请在「终端」中执行以下命令:

复制
systemctl status apparmor
查看 AppArmor 服务状态
查看 AppArmor 服务状态

以下是一些 AppArmor 与 systemd 一起工作的常用命令:

  • 停止 Apparmor 服务
复制
sudo systemctl stop apparmor
  • 启动 Apparmor 服务
复制
sudo systemctl start apparmor
  • 禁止 Apparmor 随 Ubuntu 系统启动
复制
sudo systemctl disable apparmor
  • 在 Ubuntu 系统启动时启用 Apparmor(默认):
复制
sudo systemctl enable apparmor
  • 重启 Apparmor 服务:
复制
sudo systemctl restart apparmor
  • 重新加载 Apparmor
复制
sudo systemctl reload apparmor

检查已加载的 AppArmor 配置文件

在更改 AppArmor 配置之前,检查配置文件状态非常重要。请在「终端」中运行如下命令:

复制
sudo apparmor_status
检查 AppArmor 配置文件
检查配置文件

上述命令列出了当前 Ubuntu 系统中的 AppArmor 状态,包括:

  • 加载了哪些配置文件
  • 运行的模式
  • 配置文件相关联的进程数量

检查 AppArmor 配置文件状态的另一种方法是使用aa-status命令,它可以提供运行状态更为详细和准确的输出:

复制
sudo aa-status
检查 AppArmor 配置文件
检查配置文件

上述命令将显示 Ubuntu 中所有已加载的配置文件状态,包括:配置文件的名称、运行模式(例如强制模式、投诉模式或不受限制)以及与每个配置文件相关联的进程数量。

在进行更改配置之前,强烈建议先进行备份:

复制
sudo cp -R /etc/apparmor.d /etc/apparmor.d.bak

此命令将在/etc/apparmor.d.bak目录中创建配置文件的备份副本,以便在出问题时可以快速还原。

禁用 AppArmor 配置文件

可以在不禁用整个服务的情况下,禁用特定 AppArmor 配置文件:

1导航到/etc/apparmor.d目录:

复制
cd /etc/apparmor.d

2使用ls命令列出/etc/apparmor.d目录中的配置文件:

复制
ls -s
查看 AppArmor 配置文件
查看配置文件

3要禁用某个配置文件,可以使用以下命令:

复制
sudo aa-disable /etc/apparmor.d/<profile-name>

例如,要禁用usr.sbin.dnsmasq配置文件,可以使用以下命令:

复制
sudo aa-disable /etc/apparmor.d/usr.sbin.dnsmasq
禁用 AppArmor 配置文件
禁用配置文件

命令执行后,更改会立即生效。

4要查看当前已禁用的规则列表,可以导航到/etc/apparmor.d/disable目录并使用ls命令查看:

复制
ls /etc/apparmor.d/disable
查看已禁用 AppArmor 配置文件
查看已禁用配置文件

上述命令会列出所有已禁用的配置文件列表。

启用 AppArmor 配置文件

要重新启用某个配置文件,可以使用以下命令:

复制
sudo aa-enforce /etc/apparmor.d/<profile-name>

例如,要将前文中禁用的usr.sbin.dnsmasq配置文件重新启用,可以执行:

复制
sudo aa-enforce /etc/apparmor.d/usr.sbin.dnsmasq
启用 AppArmor 配置文件
启用配置文件

Ubuntu 常用 AppArmor 命令汇总

下面介绍一些最 Ubuntu 系统中常用的 AppArmor 命令及其用法:

aa-genprof 命令

aa-genprof命令可以基于当前系统活动生成一个新的 AppArmor 配置文件,它记录了所有应用程序的系统调用,并基于此日志数据创建新的配置文件。使用它,可以为尚未定义配置文件的新应用程序创建配置文件。

例如,要为 Firefox 生成新的配置文件,可以运行以下命令:

复制
sudo aa-genprof firefox

aa-enforce 命令

aa-enforce命令可以在 Ubuntu 系统中强制执行 AppArmor 配置。当对配置文件进行了更改,并希望立即强制执行新的策略,而无需重启系统时,就可以使用这个命令。

要强制执行 AppArmor 配置文件,请运行以下命令:

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

或者单独指定某个配置文件:

复制
sudo aa-enforce /etc/apparmor.d/<profile-name>

aa-disable 命令

aa-disable命令用于禁用特定的 AppArmor 配置文件。当禁用配置文件时,它所规定的限制和权限对受其管辖的应用程序将不再生效。

例如,可以运行以下命令来禁用 Firefox 的配置文件:

复制
sudo aa-disable /etc/apparmor.d/firefox

禁用配置文件是一种临时更改,如果重启 Ubuntu 系统或重启 AppArmor 服务,则该配置文件将被重新启用。

aa-complain 命令

aa-complain命令会将一个配置文件切换到投诉模式。在这种模式下,AppArmor 仍会执行该配置文件,但不会限制对受限资源的访问,而是将日志记录到 syslog 中。该命令常用于测试和调试。

复制
sudo aa-complain /etc/apparmor.d/usr.sbin.cupsd

aa-remove-unknown 命令

aa-remove-unknown命令用于移除 Ubuntu 系统中未知应用程序的 AppArmor 配置文件。需要清理配置文件并删除不再使用的配置文件时,就可以使用这个命令:

复制
sudo aa-remove-unknown

总的来说,在 Ubuntu 中管理 AppArmor 服务和配置文件非常简单和直观。通过本文介绍的步骤,可以轻松管理系统的安全性,并控制哪些应用程序或服务受到保护。

通过本文内容,您可以基本了解 AppArmor 安全系统及其工作原理。这些知识在系统管理、安全管理和软件开发等多种场景中都非常有用。无论是经验丰富的 Linux 用户还是新手,了解如何管理 AppArmor 服务和配置文件都是必备的重要技能。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK