首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

技术分享 | MySQL 如何适配 AppArmor

---- 引言 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

1.2K20

CVE-2019-16884:Apparmor Restriction Bypass

影响范围 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

55420
您找到你想要的搜索结果了吗?
是的
没有找到

linux容器之Apparmor和Seccomp

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

27940

如何使用 AppArmor 限制应用的权限

如何使用 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/

4.5K30

使用Apparmor和Seccomp来增强容器的安全性

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

47540

在Ubuntu上迁移你的MySQL数据库

第三步、配置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 [ !

13.9K129

MySQL数据库文件的移动和权限设置

在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服务: #

7.8K20

如何使用Symlink更改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的单个实例。

3.6K60

如何在MySQL Ubuntu 16.04上将MySQL数据目录移动到新位置

第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 [ !

1.6K00
领券