如何使用 apparmor 自定义配置文件阻止应用程序的互联网连接?

如何使用 apparmor 自定义配置文件阻止应用程序的互联网连接?

我正在尝试阻止某个应用的互联网访问,因为它总是要求购买或更新,尽管它是免费的。我为该应用创建了一个 apparmor 配置文件并强制执行,但强制执行后,该应用无法启动。

这是的个人资料/etc/apparmor.d/opt.sublime_text.sublime_text

/opt/sublime_text/sublime_text {

        deny network inet,
        deny network inet6,
        deny network raw,  #include <abstractions/base>

        /opt/sublime_text/sublime_text mr,
        /opt/sublime-text/ rw,
        /home/shady/.config/sublime-text-3/ rw,
}

我已包含此应用可能需要的目录。我做错了什么?

答案1

您需要更多内容才能启动此类应用。如果您的个人资料中缺少某些内容,则无法访问。Sublimetext必须具有以下访问权限:

  • X 服务器
  • 系统字体
  • Xauthority 文件
  • dconf
  • 油嘴滑舌
  • ETC ...

创建您自己的配置文件的最好和最简单的方法是安装apparmor-utils

sudo apt-get install apparmor-utils

然后使用生成配置文件工具创建您的配置文件:

sudo aa-genprof /opt/sublime_text/sublime_text  

此时,它会在中创建 sublimetext 配置文件/etc/apparmor.d/并监听程序操作。此配置文件处于complain模式,并正在记录到/var/log/syslog。现在您需要启动 sublimetext 并执行一些操作,例如打开和保存文件等。所有这些操作都将保存在日志文件中,该文件用于aa-genprof创建规则。完成活动后,按下s键并回答有关的问题使用权或者否定到您的资源。完成后,使用f键保存您新创建的配置文件并将其转为enforce模式。


但是,这个工具很容易出现无法完美运行的情况。它不会包含所有内容,您必须手动添加一些内容,例如X
访问/etc/apparmor.d/opt.sublime_text.sublime_text

include <abstractions/X>  

如果进行了任何更改,则必须重新加载配置文件:

sudo apparmor_parser r /etc/apparmor.d/opt.sublime_text.sublime_text      

相关内容