---- 引言 AppArmor (Debian 系平台)是一款内核级别的安全机制,通过 AppArmor 来让 Linux 系统实现严格的资源访问控制,类似 SELinux(RedHat 系列平台)...AppArmor 通过目录/etc/apparmor.d/ 下的一系列配置文件来分别限制每个进程对 OS 资源的访问权限。...第一, 直接更改AppArmor 的配置文件: 给/etc/apparmor.d/user.sbin.mysqld里添加如下内容:(或者把原来MySQL相关的目录替换掉也行) # pid,socket...第二, 改变 AppArmor 的默认工作模式,由强制模式改为抱怨模式: 得先安装apparmor-utils包,里面包含了很多有用的程序来操作 AppArmor . root@ytt-ubuntu:~...# apt-get install apparmor-utils 单独配置 MySQL 服务进入抱怨模式: root@ytt-ubuntu:~# aa-complain /etc/apparmor.d
影响范围 runc 1.0.0-rc8 漏洞类型 容器逃逸漏洞 利用条件 影响范围应用 漏洞概述 在Docker 19.03. 2-ce和其他产品中使用的runc 1.0.0-rc8允许绕过AppArmor...限制,因为libcontainer/rootfs_linux.go错误地检查装载目标,攻击者可以在容器镜像中可以声明一个VOLUME并挂载至/proc,之后欺骗runc使其认为AppArmor已经成功应用从而绕过...AppArmor策略,该漏洞由Adam Iwaniuk发现并在DragonSector CTF 2019期间披露,这个CTF题目挑战将一个文件挂载到/flag-,并使用AppArmor策略拒绝访问该文件..."apparmor=no_flag" -v /tmp/flag:/flag busybox cat /flag cat: can't open '/flag': Permission denied...docker run --rm --security-opt "apparmor=no_flag" -v /tmp/flag:/flag apparmor-bypass cat /flag Al1ex
Apparmor和Seccomp的概念和特点。 Apparmor和Seccomp都是Linux内核的安全模块,可以用来限制容器或进程的访问权限和资源使用。...Apparmor的特点有: 基于路径的访问控制,可以允许或拒绝容器或进程对文件、目录、网络等对象的操作 支持不同的模式,如强制模式(阻止违反策略的行为)、投诉模式(记录违反策略的行为)和不可知模式(不执行任何策略...支持两种模式,如严格模式(只允许read、write、exit和sigreturn四个系统调用)和过滤模式(允许自定义过滤规则)1 支持多层过滤,可以在一个容器或进程中应用多个过滤规则1 以上是关于Apparmor...和Seccomp的简要介绍,如果您想要了解更多细节,您可以访问官方网站(https://apparmor.net/ 和 https://www.kernel.org/doc/html/latest/userspace-api
Libvirt在做某些事情的时候会被Apparmor阻挡,因此为了确保Libvirt始终有必须的权限,必须禁用apparmor。方法如下: 1. ...在编译libvirt的时候选择--without-apparmor 选项; 2. ...执行下面的命令为libvirt禁用 apparmor: $ ln -s /etc/apparmor.d/usr.sbin.libvirtd /etc/apparmor.d/disable/...$ln -s /etc/apparmor.d/usr.lib.libvirt.virt-aa-helper /etc/apparmor.d/disable/ $ apparmor_parser...-R /etc/apparmor.d/usr.sbin.libvirtd $ apparmor_parser -R /etc/apparmor.d/usr.lib.libvirt.virt-aa-helpe
如何使用 AppArmor AppArmor 是一个 Linux 内核安全模块,允许系统管理员使用每个程序的配置文件来限制程序的功能。...可以通过以下命令检查模块是否已启用 AppArmor: $ cat /sys/module/apparmor/parameters/enabled Y AppArmor 在以下两种类型的配置文件模式下运行...deny /** w, } EOF 将上述配置生效: $ apparmor_parser /etc/apparmor.d/containers/sample $ apparmor_status apparmor...AppArmor 的配置文件定义的十分灵活,更多具体使用可以参见 AppArmor 文档。 容器中使用 AppArmor 在主机上配置好 AppArmor 配置文件后,我们来看如何在容器中使用。...参考链接: AppArmor 文档:https://gitlab.com/apparmor/apparmor/-/wikis/Documentation bane:https://github.com/
Docker支持使用Apparmor和Seccomp来增强容器的安全性。...使用Apparmor的方法有: 使用Docker提供的默认Apparmor策略,该策略会在运行容器时自动应用,除非指定了–security-opt apparmor=unconfined选项 使用Docker...提供的示例Apparmor策略,该策略可以在https://github.com/moby/moby/blob/master/profiles/apparmor/template.go中找到,可以根据需要修改和加载...使用自定义的Apparmor策略,该策略可以在主机上创建和加载,然后在运行容器时指定–security-opt apparmor=选项 使用Seccomp的方法有: 使用Docker...和Seccomp在Docker中使用的简要介绍,如果您想要了解更多细节,您可以访问官方网站(https://docs.docker.com/engine/security/apparmor/ 和 https
Ubuntu有一个类似于SELinux的强制访问控制系统,名为AppArmor。...SELinux和AppArmor都提供了一组工具来隔离应用程序,以保护主机系统免受攻击。AppArmor为Ubuntu用户提供强制访问控制选项,没有SELinux可能遇到的困难或学习曲线效应。...删除AppArmor 警告 在本教程中,AppArmor是您的默认安全模块。删除但不替换AppArmor会使您的系统面临风险。如果您认为将来可能会重新使用AppArmor,则不要删除它。...在/etc/init.d/停止AppArmor脚本: sudo /etc/init.d/apparmor stop 从系统中清除AppArmor。...apt purge apparmor 如果您担心配置文件被删除,请使用apt remove apparmor。
简单粗暴的方法是直接取消限制,修改容器配置文件,追加一行,如: # echo "lxc.apparmor.profile: unconfined" >> /etc/pve/lxc/100.conf 这种做法取消所有安全规则...在宿主机创建 新规则 # cp /etc/apparmor.d/lxc/lxc-default-cgns /etc/apparmor.d/lxc/lxc-default-nfs # vi /etc/apparmor.d...加载新的规则 # apparmor_parser -r /etc/apparmor.d/lxc-containers # systemctl reload apparmor 3....追加lxc配置 # echo "lxc.apparmor.profile = lxc-default-nfs" >> /etc/pve/lxc/CTID.conf 4.
docker官网给出了简单的一些建议,如使用命名空间进行用户隔离,使用cgroup限制容器使用的资源上限,使用apparmor限制容器对资源的访问以及使用seccomp限制容器的系统调用等。...: apparmor使用上与seccomp类似,也是需要一个profile。...apparmor也有一个默认的profile,相比seccomp,apparmor可以限制更多的资源,如文件权限,网络,capabilities等。...ubuntu下多个版本的apparmor手册可以参见AppArmor SELinux: TIPS: 在run一个容器的时候,通过--security-opt seccomp:unconfined参数来允许容器执行全部的系统的调用...centos使用的安全模块为SELinux,暂不支持apparmor;Debian和Ubuntu支持apparmor
/apparmor_2.13.2-10_amd64.deb ... dpkg-query: warning: files list file for package 'apparmor' missing...: # apt install --reinstall apparmor Reading package lists......Done Suggested packages: apparmor-profiles-extra apparmor-utils The following packages will be upgraded...: apparmor 1 upgraded, 0 newly installed, 0 to remove and 0 not upgraded..../apparmor_2.13.2-10_amd64.deb ... dpkg-query: warning: files list file for package 'apparmor' missing
第三步、配置AppArmor访问控制规则 我们需要通过在默认目录和新位置之间创建别名来告诉AppArmor让MySQL写入新目录。...为此,请编辑AppArmor alias文件: sudo nano /etc/apparmor.d/tunables/alias 在文件的底部,添加以下别名规则: /etc/apparmor.d/tunables...要使更改生效,请重新启动AppArmor: sudo systemctl restart apparmor 注意:如果您跳过AppArmor配置步骤,则会遇到以下错误消息: Output Job for...512mb-nyc1-01 systemd[1]: mysql.service: Main process exited, code=exited, status=1/FAILURE 由于消息不会在AppArmor...这次发生错误,而不是AppArmor问题,因为脚本mysql-systemd-start检查是否存在与两个默认路径匹配的目录-d或符号链接-L。如果找不到它会失败: . . . if [ !
apparmor.service....loaded active exited LSB: AppArmor initialization 查看服务状态 aaron@ubuntu:~$ service apparmor status ●...apparmor.service - LSB: AppArmor initialization Loaded: loaded (/etc/init.d/apparmor; bad; vendor...stop (code=exited, status=0/SUCCESS) Process: 20185 ExecStart=/etc/init.d/apparmor start (code=exited..., status=0/SUCCESS) 重启服务 aaron@ubuntu:~$ sudo service apparmor restart 查看内存状况 aaron@ubuntu:~$ free -h
在Centos是SELinux,在Ubuntu是AppArmor。 这里说起来只是一句话,当时在现场,是做了很多无用功才在查看服务器启动脚本中想到了这个问题,时间浪费不少。...找到原因,解决不难,这台服务器使用了Ubuntu,对维护人员比较友好,只要编辑AppArmor的配置文件就好: # vi /etc/apparmor.d/usr.sbin.mysqld // 将以下4行...改的时候根据你的数据路径,调整上面4行的设置 // 此外考虑到/var/lib/mysql这个路径也可能会有测试需要,所以原始的4行保留,额外增加4行也可,不差那一点点运算 // 编辑完成存盘,接着更新配置和重启AppArmor...服务: # apparmor_parser -r /etc/apparmor.d/usr.sbin.mysqld # service apparmor reload 接着再一次启动mysql服务: #
data/mysql 修改配置 # 将 datadir 对应的值改为 /home/alic/data/mysql sudo vim /etc/mysql/my.cnf sudo vim /etc/apparmor.d.../usr.sbin.mysqld #将所有 /var/lib/mysql 改为 /home/alic/data/mysql 重启apparmor以及mysql服务 sudo service apparmor.../mysql/g' /etc/mysql/my.cnf && \ sudo sed -i 's/\/var\/lib\/mysql/\/home\/alic\/data\/mysql/g' /etc/apparmor.d.../usr.sbin.mysqld && \ sudo service apparmor restart && \ sudo service mysql restart && \ echo "MySQL数据库目录迁移完成
第二步,配置AppArmor访问控制规则 将MySQL目录移动到与MySQL服务器不同的文件系统时,您需要创建AppArmor别名。...要添加别名,请编辑AppArmor alias文件: sudo nano /etc/apparmor.d/tunables/alias 在文件的底部,添加以下别名规则: /etc/apparmor.d/...要使更改生效,请重新启动AppArmor: sudo systemctl restart apparmor 注意: 如果您跳过AppArmor配置步骤并尝试启动mysql,则会遇到以下错误消息: OutputJob...-512mb-nyc1-01 systemd[1]: mysql.service: Main process exited, code=exited, status=1/FAILURE 由于消息不会在AppArmor...我们还更新了Ubuntu的AppArmor ACL以适应调整。虽然我们使用的是块存储设备,但此处的说明适用于重新定义数据目录的位置,而不管底层技术如何。但是这种方法仅适用于运行MySQL的单个实例。
修改启动文件 sudo vim /etc/apparmor.d/usr.sbin.mysqld 将 /var/lib/mysql/ r /var/lib/mysql/** rwk 改为 /data.../mysql/ r /data/mysql/** rwk 重启MySQL sudo /etc/init.d/apparmor restart sudo /etc/init.d/mysql restart...sudo service mysql stop root@ww:~# vim /etc/mysql/mysql.conf.d/mysqld.cnf root@ww:~# sudo vim /etc/apparmor.d.../usr.sbin.mysqld root@ww:~# sudo /etc/init.d/apparmor restart [ ok ] Restarting apparmor (via systemctl...): apparmor.service. root@ww:~# sudo /etc/init.d/mysql restart [ ok ] Restarting mysql (via systemctl
activity-log-manager Add missing dependency on python-zeitgeist agenda.app Fix creation of tasks and appointments apparmor...Move the features file to /usr/share/apparmor-features; pin the AppArmor feature set to Stretch’s kernel
第3步 - 配置AppArmor访问控制规则 我们需要通过在默认目录和新位置之间创建别名来告诉AppArmor让MySQL写入新目录。...为此,请编辑AppArmor alias文件: sudo nano /etc/apparmor.d/tunables/alias 在文件的底部,添加以下别名规则: . . . alias /var/lib...要使更改生效,请重新启动AppArmor: sudo systemctl restart apparmor 注意:如果您跳过AppArmor配置步骤,则会遇到以下错误消息: Job for mysql.service...512mb-nyc1-01 systemd[1]: mysql.service: Main process exited, code=exited, status=1/FAILURE 由于消息不会在AppArmor...这次发生错误,而不是AppArmor问题,因为脚本mysql-systemd-start检查是否存在与两个默认路径匹配的目录-d或符号链接-L。如果找不到它会失败: . . . if [ !
冲突 虽然AppArmor这个套件的确提供了一层额外的安全,但在我看来,需要为每个系统创建自定义配置文件。...所以眼下,我们会禁用AppArmor,防止与任何默认的配置发生冲突。...$ sudo /etc/init.d/apparmor stop $ sudo update-rc.d -f apparmor remove $ sudo apt-get remove apparmor...apparmor-utils 注意:如果是生产环境下的Web服务器,不建议禁用AppArmor。...如果有些人想创建自定义的AppArmor配置文件,请参阅官方说明文档(http://wiki.apparmor.net/index.php/Documentation)。
The AppArmor sVirt protection for QEMU virtual machines builds on this basic level of protection, to...file in /etc/apparmor.d/libvirt/TEMPLATE for site-specific access for all newly created QEMU virtual...Also, when a new profile is generated, two files are created: /etc/apparmor.d/libvirt/libvirt-...and /etc/apparmor.d/libvirt/libvirt-.files....directly), and an abstraction to be included by /etc/apparmor.d/libvirt/TEMPLATE (typically /etc/apparmor.d
领取专属 10元无门槛券
手把手带您无忧上云