我正在尝试在 AWS EC2 实例中的 Ubuntu Bionic 上实现 Apparmor 完整系统实现。 https://gitlab.com/apparmor/apparmor/-/wikis/FullSystemPolicy#distribution
我的目标是采用全部拒绝、例外允许的策略来允许在系统上执行授权的软件程序。
我有一些问题:
- 按照链接,我无法执行配置文件 init-systemd /lib/systemd/**,因为 udevd 和 timesyncd 会破坏启动过程,导致机器无法重新启动。因此,我单独捕获了 /lib/systemd 中的所有内容,并将其添加到 /etc/initramfs-tools/scripts/init-bottom/apparmor 文件中。
echo "profile init-systemd /lib/systemd/systemd-logind flags=(complain) {}" | /sbin/apparmor_parser -a
echo "profile lib-systemd-systemd-journald /lib/systemd/systemd-journald flags=(complain) {}" | /sbin/apparmor_parser -a
echo "profile init-systemd /lib/systemd/systemd flags=(complain) {}" | /sbin/apparmor_parser -a
我可以为 udevd 和 timesyncd 做些什么?我如何才能将它们包括在内并仍然获得一个正常运行的盒子。
其次,现在我正在传递空的配置文件/etc/initramfs-tools/scripts/init-bottom/apparmor
。识别我应该在配置文件中授予的权限以实现我的目标的最佳方法是什么?
任何帮助都将不胜感激。谢谢
答案1
您可以首先在投诉模式中创建配置文件,udevd
这样timesyncd
您就可以记录违规行为而无需实际执行。
首先我们创建配置文件
sudo touch /etc/apparmor.d/lib-systemd-udevd
sudo touch /etc/apparmor.d/lib-systemd-timesyncd
然后编辑它们sudo nano /etc/apparmor.d/lib-systemd-udevd
添加这些行
#include <tunables/global>
/lib/systemd/systemd-udevd flags=(complain) {
}
然后重新加载配置文件并设置投诉模式:
sudo apparmor_parser -r -C /etc/apparmor.d/lib-systemd-udevd
sudo apparmor_parser -r -C /etc/apparmor.d/lib-systemd-timesyncd
然后重新启动并检查日志sudo journalctl -b | grep apparmor
您可以执行相同操作来识别其他配置文件所需的权限。