技术教程 · 2020年1月29日 0

使用AppArmor保护Ubuntu

许多企业和组织需要一些方法来限制对特定应用程序的访问。Application Armor(AppArmor)可以阻止应用程序访问特定的文件夹甚至Internet。

AppArmor提供了强制访问控制(MAC)。MAC是为每个程序设置的配置文件,用于限制对资源的访问。该安全功能使您可以防止应用程序访问文件,文件夹和Internet。从某种意义上说,您几乎可以沙漏程序。

默认情况下,AppArmor服务已在Ubuntu系统上安装并启用。除非您要创建或修改概要文件,否则几乎不需要其他任何内容。配置文件使您可以锁定对应用程序的特定访问。

验证AppArmor服务

由于默认情况下已安装并启用AppArmor,因此本节不涉及任何内容。万一该服务被禁用或删除,我们将检查其安全性。

您可以运行以下命令来验证AppArmor是否已安装并正在运行:

码:
sudo service apparmor status

如果需要,输入密码后的第一行应该是一个绿点,后跟“ apparmor.service-AppArmor初始化”。绿点表示该服务处于活动状态。

您也可以使用命令“ systemctl status apparmor”将产生相同的输出。

如果发生错误,则可能需要使用以下命令来安装AppArmor:

码:
sudo apt install apparmor

要出于任何原因停止AppArmor Service(这也会停止所有强制配置文件),请使用以下命令:

码:
systemctl stop apparmor

然后重新启动服务使用:

码:
systemctl start apparmor

此时应已安装并运行您的服务,现在您可以通过添加一些内容来保护应用程序的安全。

AppArmor附加功能

仅靠AppArmor本身是不够的,因此您需要安装一些附加功能,以赋予您更多管理功能。第一个添加为AppArmor添加了更多配置文件。

注意:配置文件是一个文件,其中包含有关程序以及它在操作系统(OS)中可以执行或不能执行的操作的信息。

码:
sudo apt install apparmor-utils apparmor-profiles

安装这些文件后,您现在应该拥有管理AppArmor所需的文件。

让我列出我们将涉及的应用程序:

  • apparmor_status –列出所有活动配置文件的状态
  • aa-complain –将配置文件设置为投诉模式
  • aa-enforce –将配置文件设置为强制模式
  • apparmor_parser –重新加载配置文件状态
  • aa-genprof –创建一个新的配置文件
  • aa-logprof –列出投诉模式下的配置文件错误

现在我们有了要使用的程序列表,我们可以进入使用它们的示例。

AppArmor用法

让我们介绍一下AppArmor配置文件的基础知识。

配置文件用于指定特定程序的功能。可以启用或禁用配置文件。对于启用的任何配置文件,可以将其置于以下两种模式之一:

  1. 投诉–配置文件处于活动状态,但未遵循指定规则。保留所有损坏的rul的日志
  2. 强制–配置文件处于活动状态,规则处于活动状态。

让我们先看看激活和禁用AppArmor配置文件,然后再将它们设置为“投诉”或“强制”。

如果运行命令“ sudo apparmor_status”,您将看到一个配置文件列表。配置文件首先由强制配置文件列出。列表的末尾将使那些处于抱怨模式的单桅三角帆船单身。然后,程序将列出正在执行的正在运行的进程,然后列出处于投诉模式的进程。

配置文件存储在文件夹“ /etc/apparmor.d”中。注意一些关于“个人档案”的信息。文件名是用句点分隔的位置和程序名称。例如,Firefox的配置文件是“ usr.bin.firefox”。默认情况下,不启用Firefox的配置文件。如果您查看“ apparmor_status”的输出,则会看到未列出Firefox。配置文件确实存在,因此这意味着该配置文件未启用。

要学习启用配置文件,我们将启用Firefox配置文件。

启用和禁用的配置文件之间的区别在于,“ / etc / apparmor.d”中有一个名为“ disable”的文件夹。如果在禁用文件夹中创建了配置文件的符号链接,则该配置文件将被禁用。

由于Firefox被禁用,我们可以通过删除符号链接来启用它。要删除链接,可以使用以下命令:

码:
sudo rm /etc/apparmor.d/disable/usr.bin.firefox

如果删除符号链接,则需要让AppArmor重新加载个人档案列表。要重新加载概要文件列表,请运行以下命令:

码:
sudo apparmor_parser -a /etc/apparmor.d/usr.bin.firefox

“ -a”使程序添加指定的配置文件。

如果使用“ sudo apparmor_status”检查状态,则应该看到现在已将其设置为“强制”模式。

现在,我们有一个配置文件处于强制模式,我们可以将其更改为投诉模式。要将个人资料更改为投诉模式,我们使用以下命令:

码:
sudo aa-complain usr.bin.firefox

现在,如果我们检查状态(sudo aa-status),我们可以看到Firefox现在处于投诉模式。

我们现在要做的就是禁用Firefox配置文件。要禁用配置文件,我们需要在“ /etc/apparmor.d/disable”文件夹中重新创建符号链接。要创建链接,请使用以下命令:

码:
sudo ln -s /etc/apparmor.d/usr.bin.firefox /etc/apparmor.d/disable/

现在已经建立了链接,AppArmor Service需要从其数据库中删除列表。要删除列表,请使用以下命令:

码:
sudo apparmor_parser -R /etc/apparmor.d/usr.bin.firefox

如果不执行最后一条命令,则在执行该命令或重新引导系统导致服务重新加载之前,什么都不会更改。

现在,我们可以看看拒绝程序访问Internet和/或文件夹。

拒绝Internet访问

让我们看一下访问Internet的程序,例如Firefox。我们需要启用它,然后编辑配置文件。

启用配置文件后,您可以在首选编辑器中打开配置文件。

在编辑器中打开文件后,您可以搜索“网络”一词。您可以在图1中看到我的结果。

图01.jpg

图1

前两行允许使用IPv4(inet)和IPv6(inet6)进行流传输。我们将通过在这两行的开头放置一个井号(#)来注释这两行。

为了禁止访问Internet,我们需要添加以下三行:

码:
deny network inet,
deny network inet6,
deny network raw,

保存文件并使用以下命令重新加载配置文件:

码:
sudo apparmor_parser -a /etc/apparmor.d/usr.bin.firefox

如果启用了配置文件,则需要删除然后重新加载它:

码:
sudo apparmor_parser -R /etc/apparmor.d/usr.bin.firefox
sudo apparmor_parser -a /etc/apparmor.d/usr.bin.firefox

启动Firefox时,您将无法访问Internet。您可以编辑配置文件,禁用配置文件或将其置于投诉模式以恢复对Firefox的Internet访问。

拒绝文件夹访问

在本示例中,我们将设置对文件夹的访问受限的应用程序。另外,如果程序不存在,我们将为该程序创建一个Profile。

在此示例中,我将为名为Leafpad的文本编辑器创建一个Profile。

注意:检查/etc/apparmor.d/,并确保没有要使用的程序的配置文件。如果存在某个应用程序的配置文件,而您尝试创建一个配置文件,则会收到错误消息。如果要使用我的示例,请确保已安装Leafpad。

要创建新的概要文件,请发出命令:

码:
sudo aa-genprof leafpad

然后将提示您启动指定的程序,在本例中为“ leafpad”。

程序启动后,您需要执行不允许用户执行的选项。您要禁止访问的任何文件夹或驱动器都需要通过在该位置打开文件来进行访问。您还将拒绝访问的特定文件也应打开。访问所有必要的文件夹和文件后,您可以关闭’leafpad’。

现在,您需要返回正在等待生成配置文件的终端。按“ S”键“扫描系统日志以查找Apparmor事件”以开始生成配置文件。

将显示每个事件。有些可能没有意义,但是如果没有意义,通常只需按“ A”键即可允许该事件。当您看到要禁止访问的文件夹或文件的列表时,请按’D’键以拒绝访问。浏览完整个事件列表后,系统将提示您按“ S”以“保存”配置文件。单击“ F”完成配置文件处理。

保存配置文件后,应将其置于强制模式。

注意:开始创建配置文件时,将创建一个通用配置文件并将其置于投诉模式。在投诉模式下,将记录所有事件,这使您可以选择允许还是拒绝哪些事件。做出选择后,将生成概要文件并将其置于强制模式。

在某些情况下,您会收到错误消息,并且配置文件处于投诉模式。要解决此问题,您需要编辑配置文件,并删除“ #include <abstractions / ubuntu-browsers.d / plugins-common>”行。此行会导致问题,一旦删除,您可以将配置文件置于强制模式。

如果个人资料无法正常运行,您可以尝试编辑文件,甚至删除它并重新开始。

用法

可以在系统之间复制配置文件。创建配置文件并对其进行编辑以使其符合您希望的方式运行后,可以将其复制到其他系统。

任何配置文件都可以在以后进行编辑,甚至在不需要时甚至可以禁用。

例如,配置文件可能会限制信息亭上的Internet访问,因此只能访问本地HTML文件。

结论

AppArmor是一种无需更改网络设置或文件/文件夹权限即可限制对Internet或文件/文件夹的访问的好方法。

AppArmor可能需要一些练习才能创建必要的配置文件。一旦掌握了创建Profiles的功能,它就会非常简单。只是继续练习。