如何在Ubuntu上创建AppArmor配置文件以锁定程序

时间:2020-01-09 10:44:56  来源:igfitidea点击:

AppArmor会锁定Ubuntu系统上的程序,仅允许它们正常使用时所需的权限,这对于可能会受到威胁的服务器软件特别有用。 AppArmor包含可用于锁定其他应用程序的简单工具。

默认情况下,AppArmor包含在Ubuntu和其他一些Linux发行版中。 Ubuntu随附了带有多个配置文件的AppArmor,但是我们也可以创建自己的AppArmor配置文件。 AppArmors实用程序可以监视程序的执行并创建配置文件。

在为应用程序创建自己的配置文件之前,我们可能需要检查Ubuntus存储库中的apparmor-profiles软件包,以查看是否要限制应用程序的配置文件。

创建并运行测试计划

我们需要在AppArmor观看程序的同时运行该程序,并逐步浏览其所有正常功能。基本上,我们应该像正常使用程序那样使用程序:启动程序,停止程序,重新加载程序并使用其所有功能。我们应该设计一个通过程序需要执行的功能的测试计划。

在运行测试计划之前,请启动终端并运行以下命令来安装和运行aa-genprof:

sudo apt-get install apparmor-utils
sudo aa-genprof /path/to/binary

让aa-genprof在终端中运行,启动程序,然后运行我们上面设计的测试计划。测试计划越全面,以后遇到的问题就越少。

完成测试计划后,返回终端并按S键以扫描系统日志中是否有AppArmor事件。

对于每个事件,系统都会提示我们选择一个操作。例如,下面我们可以看到我们分析过的/ usr / bin / man执行了/ usr / bin / tbl。我们可以选择/ usr / bin / tbl是应该继承/ usr / bin / mans安全设置,还是应该使用自己的AppArmor配置文件运行,还是应该以无限制模式运行。

对于其他一些操作,我们会在此处看到不同的提示,它们允许访问代表终端的设备/ dev / tty。

在该过程结束时,系统将提示我们保存新的AppArmor配置文件。

启用投诉模式并调整个人资料

创建配置文件后,将其置于投诉模式,在该模式下,AppArmor不会限制其可以执行的操作,而是记录否则会发生的所有限制:

sudo aa-complain /path/to/binary

正常使用该程序一段时间。在投诉模式下正常使用它之后,运行以下命令以扫描系统日志中是否存在错误并更新配置文件:

sudo aa-logprof

使用强制模式锁定应用程序

在我们完成AppArmor配置文件的微调之后,启用强制模式以锁定应用程序:

sudo aa-enforce /path/to/binary

我们将来可能希望运行sudo aa-logprof命令来调整配置文件。

AppArmor配置文件是纯文本文件,因此我们可以在文本编辑器中将其打开并手动进行调整。但是,以上实用程序将指导我们完成此过程。