AppArmor
AppArmor 是一个内核安全模块,用于限制单个程序的功能。 这允许管理员根据每个应用程序的规范,阻止程序以恶意方式访问系统资源。 AppArmor 通过遵循配置文件工作,这些文件规定了每个应用程序被允许和不允许做什么。
安装
# apk add apparmor
如果您想使用 aa
命令与 AppArmor 交互,您还应该安装 apparmor-utils
。
# apk add apparmor-utils
设置
运行命令
# cat /sys/kernel/security/lsm
查看当前设置的 Linux 安全模块。
使用 SYSLINUX
使用您选择的文本编辑器(最好是基于 TUI 的编辑器,因为某些 GUI 设置在权限提升时不起作用,除非您使用 sudo -e)编辑 /boot/extlinux.conf,使 APPEND
行以以下内容结尾
lsm=landlock,yama,apparmor
请注意,因为您在此 .conf 文件中包含了 lsm,所以您正在覆盖默认的 lsm。 因此,您应该包含您之前在上面的 cat 命令中看到的任何正在运行的 lsm。 此外,lsm 按顺序初始化这些模块,因此它们的位置对于主/次要模块很重要。 确保 apparmor 在主要模块中首先放置。 请注意,为了方便起见,Alpine Linux 附带的 yama、capability 和 landlock 不是主要模块,apparmor 可以放在它们之后。 名为 capability 的模块会自动包含,无需写入。
为了在内核更新之间持久保存您的更改(内核更新会覆盖 /boot/extlinux.conf),请编辑 /etc/update-extlinux.conf,并将您的 lsm=landlock,yama,apparmor
参数附加到 default_kernel_opts
。
使用 GRUB
将以下内容添加到 /etc/default/grub 中键 GRUB_CMDLINE_LINUX_DEFAULT
的值的末尾
apparmor=1 security=apparmor
然后使用以下命令应用:
# grub-mkconfig -o /boot/grub/grub.cfg
运行
接下来,启动 AppArmor 并告诉 OpenRC 在启动时启动它。
# rc-service apparmor start
# rc-update add apparmor boot
您可以使用命令 aa-enabled
检查 AppArmor 是否正在运行
# aa-enabled
配置
AppArmor 使用配置文件中建立的规则工作。 一组预制配置文件可供轻松使用
# apk add apparmor-profiles
安装后重启
启用额外配置文件
额外的配置文件位于 /usr/share/apparmor/extra-profiles/ 中。 为了启用配置文件,需要将其复制到 /etc/apparmor.d/
例如,如果您想为 usr.bin.chromium-browser
启用配置文件
# cp /usr/share/apparmor/extra-profiles/usr.bin.chromium-browser /etc/apparmor.d/
这将安装配置文件,然后需要将其设置为抱怨或强制模式
# aa-complain /etc/apparmor.d/usr.bin.chromium-browser
aa-enforce
将其设置为强制模式,但请注意,这可能会破坏功能。创建额外的配置文件
apparmor-profiles 软件包提供的配置文件只是一个入门。 您可以创建自己的配置文件,但首先您必须安装并启动 audit
# apk add audit
# rc-service auditd start
# rc-update add auditd
现在您可以使用以下命令生成自己的配置文件:
# aa-easyprof /path/to/binary
或
# aa-genprof /path/to/binary
请注意,为了使其工作,您可能需要设置更详细的内核日志级别。 为了提高安全性,之后将其设置回更高的级别。
使用
查看 AppArmor 的报告
# aa-status
这详细说明了正在使用多少个配置文件以及哪些配置文件,以及相关的发现,例如有多少配置文件处于抱怨模式或杀死模式。
故障排除
如果您在启动时注意到一堆 AppArmor 错误,请尝试在终端中运行 aa-status
和 aa-enabled
。 如果输出提到 AppArmor 在启动时被禁用,请重新打开您的 /boot/extlinux.conf 文件,并确保 APPEND 行仍然以 lsm=landlock,yama,apparmor
结尾