加密 mariadb 数据库文件

加密 mariadb 数据库文件

我目前正在 Arch Linux 上安装 mediawiki,使用 nginx 和 mariadb 作为数据库。由于这将是一个私人 wiki,因此我想使用 veracrypt 加密数据库文件。

到目前为止我已经做了以下事情:

  1. 直接安装 mediawiki
  2. 创建 veracrypt 容器并挂载它
  3. 停止所有相关服务(nginx、php-fpm、mysqld)后,我移动了所有数据库文件(/var/lib/mysql/维基数据库名称/)进入容器,卸载容器
  4. 删除 /var/lib/mysql/ 的内容维基数据库名称/并将容器挂载在/var/lib/mysql/维基数据库名称/
  5. 启动 mediawiki 安装 (nginx、php-fpm、mysqld)

到目前为止一切看起来都很好,我能够使用 wiki(插入/编辑文章)。我计划编写一个简单的 bash 脚本来启动/停止 wiki 并挂载/卸载容器

我将采用类似的方法在 /usr/share/webapps/mediawiki/ 中安装 mediawiki,因为它将包含上传的图像等。

我的问题:

  • 到目前为止,你能发现我的安全概念有什么明显的缺陷吗?
  • 我想我还必须处理日志文件 (mysql-bin.XXXXXX)。删除它们安全吗?还是我也应该将它们放入容器中?

提前致谢!

答案1

日志文件(mysql-bin.XXXXXX)是二进制日志。它可以包含数据库服务器执行的所有查询,因此它可能包含敏感信息。

安全问题是

  • 存储在 bash 文件中用于挂载的密钥

答案2

我不太熟悉韦拉克但快速浏览一下文档,它看起来就像另一个完整的磁盘/卷加密工具。

由于全盘加密的设计对于应用程序而言是完全透明的,因此该类技术只能防御少数威胁,主要是未经授权访问您的硬件(盗窃、丢失、托管提供商访问等)。这种技术无法保护您的数据免受好奇的管理员的攻击,也无法保护您的系统在运行时受到攻击……

一般来说,当应用程序、数据库服务器进行加密。那么您无法通过直接从文件系统读取数据来绕过数据库内置的访问控制。

MariaDB 支持数据库加密,他们有一篇很好的知识库文章保护静态数据并进行高层次的介绍。

目前,唯一完全支持加密的引擎是 XtraDB 和 InnoDB。Aria 存储引擎也支持加密,但仅限于使用 ROW_FORMAT=PAGE(默认)创建的表。

MariaDB 允许用户灵活配置要加密的内容。用户可以选择加密 XtraDB/InnoDB 中的所有内容 — 所有表空间(包含所有表)和日志文件。或者单个表。或者所有内容,但不包括单个表。

相关内容