AppArmor:允许访问整个磁盘

AppArmor:允许访问整个磁盘

我正在使用 AppArmor 来:

  • 禁用针对特定过程的网络。

但我确实想:

  • 使能够随时随地进行读写。

我只想限制网络访问,而不是文件访问。(如果您好奇,所讨论的进程是 jupyter,它执行用户为黑客竞赛编写的一些笔记本。)

我正在尝试编辑/etc/apparmor.d/xxxxx以允许:

# Last Modified: Mon May 21 23:47:47 2018
#include <tunables/global>

/home/ricardopdmcruz/.local/bin/jupyter {
  #include <abstractions/base>
  #include <abstractions/python>

  /** rwlkmix,

  /home/ricardopdmcruz/.local/bin/jupyter r,
  /usr/bin/python3.5 ix,

  # block ipv4 acces
  deny network inet,
  # ipv6 
  deny network inet6,
  # raw socket
  deny network raw,
}

但是该进程(jupyter)仍然抱怨它无法在某处读取或写入...配置文件的顺序重要吗?

答案1

我知道问题出在哪里了。

Jupyter(即使在 shell 模式下)需要套接字,而我的规则禁用了它。

我认为有两种可能的解决方案:

  1. 禁用外部互联网,但允许套接字
  2. 仅使用 jupyter 将 .ipynb 转换为 .py,然后在 python3 解释器上使用 AppArmor。(我使用了 python3 解释器的副本,而不是系统版本,以免干扰系统。)

我选择了解决方案 #2,因为我不知道如何实现 #1。我尝试删除“deny network raw”并保留“deny network inet”,但这似乎也会禁用套接字。

相关内容