跳到内容
标志
雷竞技下载官网用于MySQL的Percona服务器
使用SELinux
初始化搜索
    雷竞技下载官网percona / psmysql-docs
    雷竞技下载官网percona / psmysql-docs
    • 首页
      • Perc雷竞技下载官网ona XtraDB存储引擎
      • Percona Server中MySQL版本的可用特性列表雷竞技下载官网
      • 雷竞技下载官网Percona服务器对MySQL特性的比较
      • 在Percona Se雷竞技下载官网rver 8.0中更改
      • 了解版本号
      • 安装MySQL的雷竞技下载官网Percona服务器
        • 使用APT存储库安装
        • DEB包中的文件
        • 构建APT包
        • 从下载的DEB包安装
        • 恰当的把
        • 为MyS雷竞技下载官网QL运行Percona Server
        • 卸载
        • 使用RPM存储库进行安装
        • RPM包中的文件
        • 从下载的RPM包安装
        • 为MyS雷竞技下载官网QL运行Percona Server
        • 卸载
        • 使用二进制tarball安装
        • 二进制压缩文件可用
        • 从源tarbal雷竞技下载官网l安装MySQL的Percona服务器
        • 编译Percon雷竞技下载官网a Server for MySQL 8.0
      • 安装后的
      • 雷竞技下载官网Percona Server for MySQL就地升级指南:从5.7到8.0
      • 使用Percona存储库升级雷竞技下载官网
      • 从使用MyRocks或TokuDB存储引擎和分区表的系统升级
      • 使用独立包升级
      • 降级MySQL的Pe雷竞技下载官网rcona服务器
      • 在Docker容雷竞技下载官网器中为MySQL运行Percona服务器
      • Docker环境变量
      • 改进了InnoDB I/O可伸缩性
      • 自适应网络缓冲器
      • 多页异步I/O请求
      • 线程池
      • XtraDB对I/ o绑定的高并发工作负载的性能改进
      • 前缀索引查询优化
      • 限制查询中记录的估计
      • Jemalloc内存分配概要
      • ProcFS插件
      • 二进制日志和复制改进
      • 使用字典压缩列
      • 扩展选择到OUTFILE/DUMPFILE
      • 扩展SET VAR优化提示
      • 改进的内存存储引擎
      • 屏蔽警告消息
      • 限制二进制日志文件使用的磁盘空间
      • 支持PROXY协议
      • SEQUENCE_TABLE (n)的功能
      • 缓慢的查询日志旋转和过期
      • 触发更新
      • 扩展mysqlbinlog
      • 扩展,mysqldump
      • InnoDB全文搜索的改进
      • 连接过多警告
      • 处理损坏的表
      • 雷竞技下载官网Percona Toolkit udf
      • 终止空闲事务
      • XtraDB改变了页面跟踪
      • 强制存储引擎
      • 扩展快速索引创建
      • 备份锁
      • 审计日志插件
      • 使用一致的快照启动事务
      • 展期补助金
      • 实用程序的用户
      • 使用SELinux
        • SELinux上下文示例
        • 列出与文件相关的SELinux类型或域
        • SELinux模式
        • 策略类型
        • 检查SELinux模式
        • 禁用SELinux
        • 其他SELinux工具
        • 在配置文件中切换模式
        • 切换模式,直到下次重新启动
        • 切换服务模式
        • 重新标记整个文件系统
        • 设置自定义数据目录
        • 设置自定义日志位置
        • 设置secure_file_priv目录
      • 使用AppArmor
      • PAM认证插件
      • 服务器变量
      • SSL的改进
      • 数据屏蔽
        • 使用LDAP认证插件
        • LDAP认证插件系统变量
        • 静止数据加密
        • 使用keyring组件或keyring插件
          • 使用密钥管理互用协议(KMIP)
          • 使用Amazon密钥管理服务(AWS KMS)
          • FIDO认证插件
        • 加密功能
        • 加密文件-每个表的表空间
        • 加密模式或一般表空间
        • 加密系统表空间
        • 加密临时文件
        • 加密二进制日志文件和中继日志文件
        • 加密Redo Log数据
        • 加密undo表空间
        • 旋转主键
        • 高级加密密钥旋转
        • 加密doublewrite缓冲区
        • 验证表、表空间和模式的加密
      • 用户数据
      • 慢查询日志
      • 扩展显示引擎InnoDB状态
      • 显示存储引擎
      • 进程列表
      • 混杂。INFORMATION_SCHEMA表
      • 基于线程的分析
      • InnoDB页面碎片计数器
      • 加亮
      • Libcoredumper
      • 管理组复制流控
      • 组复制系统变量
      • 雷竞技下载官网Percona MyRocks简介
      • 雷竞技下载官网Percona MyRocks安装指南
      • 更新支持的特性
      • MyRocks局限性
      • Percona MyRocks和Face雷竞技下载官网book MyRocks的区别
      • MyRocks信息模式表
      • MyRocks服务器变量
      • MyRocks状态变量
      • 缝隙锁检测
      • 数据加载
      • 安装和配置Percona Server for MyS雷竞技下载官网QL与ZenFS支持
      • TokuDB介绍
      • TokuDB安装
      • 使用TokuDB
      • 快速更新与TokuDB
      • TokuDB文件和文件类型
      • TokuDB文件管理
      • TokuDB后台分析表
      • TokuDB变量
      • TokuDB状态变量
      • TokuDB分形树索引
      • TokuDB故障排除
      • TokuDB性能模式集成
      • 常见问题
      • 迁移并移除TokuDB存储引擎
      • 雷竞技下载官网Percona TokuBackup
      • 发行说明索引
      • 雷竞技下载官网Percona Server for MySQL 8.0.32-24 (2023-03-20)
      • 雷竞技下载官网Percona Server for MySQL 8.0.31-23 (2023-02-09)
      • 雷竞技下载官网Percona Server for MySQL 8.0.30-22 Update (2022-11-21)
      • 雷竞技下载官网Percona Server for MySQL 8.0.30-22 (2022-11-21)
      • 雷竞技下载官网Percona Server for MySQL 8.0.29-21 (22-08-08)
      • 雷竞技下载官网Percona Server for MySQL 8.0.28-20 (2022-06-20)
      • 雷竞技下载官网Percona Server for MySQL 8.0.28-19 (2022-05-12)
      • 雷竞技下载官网Percona Server for MySQL 8.0.27-18 (2022-03-02)
      • 雷竞技下载官网Percona Server for MySQL 8.0.26-17 (2022-01-26)
      • 雷竞技下载官网Percona Server for MySQL 8.0.26-16 (2021-10-20)
      • 雷竞技下载官网Percona Server for MySQL 8.0.25-15 (2021-07-13)
      • 雷竞技下载官网Percona Server for MySQL 8.0.23-14 (21-05-12)
      • 雷竞技下载官网Percona Server for MySQL 8.0.22-13 (2020-12-14)
      • 雷竞技下载官网Percona Server for MySQL 8.0.21-12 (2020-10-13)
      • 雷竞技下载官网Percona Server for MySQL 8.0.20-11 (2020-07-21)
      • 雷竞技下载官网Percona Server for MySQL 8.0.19-10 (2020-03-23)
      • 雷竞技下载官网Percona Server for MySQL 8.0.18-9
      • 雷竞技下载官网Percona Server for MySQL 8.0.17-8
      • 雷竞技下载官网Percona Server for MySQL 8.0.16-7
      • 雷竞技下载官网Percona Server for MySQL 8.0.15-6
      • 雷竞技下载官网Percona Server for MySQL 8.0.15-5
      • 雷竞技下载官网Percona Server for MySQL 8.0.14
      • 雷竞技下载官网Percona Server for MySQL 8.0.13-4
      • 雷竞技下载官网Percona Server for MySQL 8.0.13-3
      • 雷竞技下载官网Percona Server for MySQL 8.0.12-2rc1
      • Percona Server for MySQL 8.0中引入的雷竞技下载官网变量列表
      • MySQL的Percona S雷竞技下载官网erver开发
      • 商标政策
      • INFORMATION_SCHEMA表索引
      • 常见问题
      • 版权和授权信息
      • 术语表

    • SELinux上下文示例
    • 列出与文件相关的SELinux类型或域
    • SELinux模式
    • 策略类型
    • 检查SELinux模式
    • 禁用SELinux
    • 其他SELinux工具
    • 在配置文件中切换模式
    • 切换模式,直到下次重新启动
    • 切换服务模式
    • 重新标记整个文件系统
    • 设置自定义数据目录
    • 设置自定义日志位置
    • 设置secure_file_priv目录

    使用SELinux¶

    Linux内核通过LSM (Linux Security Module)支持安全增强Linux (Security- enhanced Linux, SELinux)。这个模块提供了一种支持强制访问控制策略的方法。SELinux定义了受限进程如何与文件、网络端口、目录、其他进程和其他服务器组件交互。

    SELinux策略定义了一组规则类型文件和域对流程。规则决定一个流程如何与另一个类型交互。SELinux根据主题的上下文决定是否允许或拒绝操作,是什么对象发起操作以及什么对象是操作的目标。

    标签代表管理员和用户的上下文。

    CentOS 7和CentOS 8包含MySQL SELinux策略。雷竞技下载官网用于MySQL的Percona服务器是MySQL的直接替代品,可以使用此策略而无需更改。

    SELinux上下文示例¶

    要查看SELinux上下文,请添加- z切换到许多实用程序。下面是上下文的示例mysqld:

    $ps易之|grepmysqld_t
    预期的输出
    System_u:system_r:mysqld_t:s0 3356 ?00:00:01 mysqld

    上下文具有以下属性:

    • 用户- system_u . User

    • 角色—system_r . properties

    • 类型或域- mysqld_t

    • 敏感级别- s0 3356

    大多数SELinux策略规则都基于类型或域。

    列出与文件相关的SELinux类型或域¶

    SELinux所依赖的安全属性是Type安全属性。类型名通常以a结尾_t.具有相同类型安全值的一组对象属于同一个域。

    浏览mysqldb_t与MySQL目录和文件相关联的类型,执行以下命令:

    $ls有没有/var/lib/|grepmysql
    预期的输出
    drwxr-x - x。Mysql system_u:object_r:mysqld_db_t:s0 Mysql drwxr-x——。Mysql Mysql system_u:object_r:mysqld_db_t:s0 Mysql -files drwxr-x——。Mysql Mysql system_u:object_r:mysqld_db_t:s0 Mysql -keyring

    请注意

    如果策略类型没有为对象定义类型属性,则默认值为unconfined_t.

    SELinux模式¶

    SELinux有以下模式:

    • Disabled -不加载SELinux策略模块,禁用策略。没有任何报道。

    • Permissive——SELinux是活动的,但是策略模块不是强制的。报告了策略违反,但没有停止操作。

    • 执行——SELinux是活跃的,违反行为会被报告和否认。如果没有允许访问受限资源的规则,SELinux将拒绝该访问。

    策略类型¶

    SELinux有几种策略类型:

    • 有针对性的——大多数流程不受限制地运行。特定的服务包含在安全域中,并由策略定义。

    • 严格-所有进程都包含在安全域中,并由策略定义。

    SELinux限制了在某个域中运行的进程,并限制一切,除非明确允许。在无限制域中的无限制进程允许几乎所有的访问。

    MySQL是一个受限进程,策略模块定义了读取哪些文件,打开哪些端口,等等。SELinux假设雷竞技下载官网用于MySQL的Percona服务器安装使用默认文件位置和默认端口。

    如果更改默认值,还必须编辑策略。如果不更新策略,SELinux将在强制模式下拒绝访问所有非默认资源。

    检查SELinux模式¶

    要检查当前的SELinux模式,可以使用以下命令之一:

    $sestatus
    预期的输出
    SELinux status: enabled SELinuxfs mount: /sys/fs/ SELinux SELinux根目录:/etc/ SELinux加载的策略名称:targeted当前模式:强制配置文件中的模式:强制policy MLS status: enabled policy deny_unknown status: allowed内存保护检查:actual (secure)最大内核策略版本:31

    或

    $grep^ SELINUX=/etc/selinux/config
    预期的输出
    SELINUX =执行

    请注意

    添加- b参数sestatus显示政策的布尔值.显示了每个参数的布尔值。的例子b参数为:

    $sestatus- b|grepmysql
    预期的输出
    Mysql_connect_any off selinuxuser_mysql_connect_enabled

    的/etc/selinux/config文件控制SELinux是禁用还是启用,如果启用,则SELinux是在强制模式还是允许模式下运行。

    禁用SELinux¶

    如果您计划在其他时间使用强制模式,请使用许可模式,而不是禁用SELinux。在禁用SELinux期间,系统可能包含错误标记的对象或没有标签的对象。如果重新启用SELinux并计划将SELinux设置为强制,则必须按照以下步骤重新标记整个文件系统。

    在引导时,要禁用SELinux,请设置selinux = 0内核选项。内核不加载SELinux基础结构。选项的效果与更改禁用SELINUX =指令,然后重新启动系统。

    其他SELinux工具¶

    安装SELinux管理工具,例如semanage或sesearch,如有需要。

    在RHEL 7或兼容的操作系统上,以root用户执行如下命令:

    $百胜可能是安装policycoreutils-python

    在RHEL 8或兼容的操作系统上,以root用户执行如下命令:

    $百胜可能是安装policycoreutils-python-utils

    请注意

    您可能需要root权限来运行SELinux管理命令。

    在配置文件中切换模式¶

    在故障排除或修改规则时切换模式可能会有所帮助。

    要永久地更改模式,请编辑/etc/selinux/config文件并更改SELINUX =价值。您还应该验证更改。

    $猫/etc/selinux/config|grepSELINUX=|grep- v^ #
    预期的输出
    SELINUX =执行SELINUX =执行
    $sudosed-我/ ^ SELINUX =。* / SELINUX =宽容/ g '/etc/selinux/config美元猫/etc/selinux/config|grepSELINUX=|grep- v^ #
    预期的输出
    SELINUX =宽容SELINUX =宽容

    更改后重新启动系统。

    如果从禁用模式或允许模式切换到强制模式,请参见重新标记整个文件系统。

    切换模式,直到下次重新启动¶

    如果要更改模式,请以root身份使用以下命令之一:

    $setenforce执行

    或

    $setenforce1

    以下setenforce可选参数:

    setenforce参数 也允许
    0 宽容的
    1 执行

    用户可以通过以下命令查看当前模式:

    $getenforce
    预期的输出
    执行

    或

    $sestatus|grep-我模式
    预期的输出
    当前模式:permit配置文件中的模式:强制执行

    切换服务模式¶

    您可以将一个或多个服务移动到允许域中。其他服务保持强制模式。

    以root用户执行如下命令,将服务添加到允许域。

    $sudosemanage宽容的——一个mysqld_t

    使用实例列出当前允许访问的域。

    $sudosemanage宽容的- l
    预期的输出
    ...mysqld_t内置允许类型

    使用实例从允许域删除服务。

    $sudosemanage宽容的- dmysqld_t

    服务返回到系统的SELinux模式。请确保按照步骤重新标记整个文件系统。

    重新标记整个文件系统¶

    从禁用或允许切换到强制需要额外的步骤。强制模式需要正确的上下文或标签才能正常工作。允许模式允许用户和进程错误地标记文件和系统对象。禁用模式不加载SELinux基础结构,也不标记资源或进程。

    RHEL和兼容系统,使用fixfiles申请重新贴标签。您可以重新标记整个文件系统或应用程序的文件上下文。

    对于单个应用,执行如下命令:

    $fixfiles- rmysqld恢复

    使用实例在不重启系统的情况下重新标记文件系统。

    $fixfiles- f- f重新用标签标明

    另一个选项是在重新引导期间重新标记文件系统。您可以添加一个触摸文件,在重新引导操作期间读取,或者配置内核引导参数。重新贴标签操作完成后自动删除触摸文件。

    将触摸文件添加为root:

    $触摸/ .autorelabel

    要配置内核,请添加autorelabel = 1引导参数列表中的内核参数。该参数强制系统重新标记。在允许模式下重新启动以允许流程完成,然后再更改为强制。

    请注意

    重新标记整个文件系统需要时间。重标签完成后,系统重新启动。

    设置自定义数据目录¶

    如果不使用默认设置,处于强制模式的SELinux将阻止对系统的访问。

    以安装过程中所做的配置为例:

    datadir = / var / lib / mysqlcustom插座= / var / lib / mysqlcustom / mysql.sock

    重新启动服务。

    $服务mysqld重新启动
    预期的输出
    重定向到/bin/systemctl重新启动mysqld。mysqld的service Job。服务failed because the control process exited with error code. See "systemctl status mysqld.service" and "journalctl -xe" for details.

    检查日志以查看错误代码。

    $journalctlxe
    预期的输出
    ...SELinux阻止mysqld访问/var/lib/mysqlcustom/ibdata1. ...文件

    检查SELinux类型/var/lib/mysqlcustom.

    ls1阿兹/var/lib/mysqlcustom
    预期的输出
    总计164288 drwxr-x—x。6 mysql mysql system_u:object_r:var_lib_t:s0 4096 12月2日07:58。drwxr-xr-x。38 root root system_u:object_r:var_lib_t:s0 4096 Dec 1 14:29 .. ...-rw-r——1 mysql mysql system_u:object_r:var_lib_t:s0 12582912 Dec 1 14:29 ibdata1…

    解决方法如下:

    • 设置正确的标签mysqlcustom文件

    • 更改mysqld SELinux策略以允许mysqld访问var_lib_t文件。

    建议设置合适的标签。下面的过程假设您已经创建并设置了自定义数据目录位置的所有权:

    1. 要更改SELinux上下文,请使用semanage fcontext.在这一步中,定义SELinux如何处理自定义路径:

      $semanagefcontext——一个- e/var/lib/mysql/var/lib/mysqlcustom

      SELinux应用在mysqld策略中定义的相同标签模式/var/lib/mysql目录到自定义目录。在自定义目录中创建的文件被标记,就像它们在目录中一样/var/lib/mysql.

    2. 来restorecon命令应用更改。

      $restorecon- r- v/var/lib/mysqlcustom
    3. 重启mysqld服务:

      $服务mysqld开始

    设置自定义日志位置¶

    如果不使用默认设置,SELinux将在强制模式下阻止对该位置的访问。将日志位置更改为my.cnf中的自定义位置:

    日志错误= / logs / mysqld.log

    使用以下命令验证日志位置:

    $ls有没有/
    预期的输出
    ...drwxrwxrwx。2 root root unconfined_u:object_r:default_t:s0 6 Dec 2 09:16 logs…

    启动MySQL将返回以下消息:

    $服务mysql开始
    预期的输出
    重定向到/bin/systemctl启动mysql。mysqld的service Job。服务failed because the control process exited with error code. See "systemctl status mysqld.service" and "journalctl -xe" for details. $ journalctl -xe ... SELinux is preventing mysqld from write access to the directory logs. ...

    默认的SELinux策略允许mysqld将日志写入标记为var_log_t,即/var/log的位置。可以通过以下两种方式解决:

    • 标签的/日志位置正确

    • 编辑SELinux策略以允许mysqld访问所有目录。

    标记自定义/日志定位是推荐的方法,因为它锁定了访问。运行以下命令标记自定义位置:

    $semanagefcontext——一个- tvar_log_t美元/日志restorecon- v/日志

    你可能无法改变/日志目录标签。例如,其他具有自己规则的应用程序使用相同的目录。

    在共享目录时调整SELinux策略,请执行以下步骤:

    1. 创建本地策略:

      ausearch -c 'mysqld'——raw | audit2allow -M my-mysqld
    2. 该命令生成my-mysqld. conf文件。Te和my-mysqld。页文件。mysqld。Te是类型强制策略文件。my-mysqld。pp是作为二进制文件加载到SELinux子系统中的策略模块。

      命令my-myslqd. exe的示例。te文件:

      模块my-mysqld 1.0;需要{*类型mysqld_t*;类型var_lib_t;*类型default_t *;类文件getattr;*类目录写*} #============= mysqld_t  ============== * 允许mysqld_t default_t: dir写*;允许mysqld_t var_lib_t:file getattr;

      策略包含自定义数据目录和自定义日志目录的规则。我们已经为数据目录位置设置了适当的标签,应用这个自动生成的策略将通过允许mysqld访问来放松我们的加固var_lib_t标签。

    3. selinux生成的事件被转换为规则。生成的策略可能包含针对最近违规的规则,也可能包含不相关的规则。不相关的规则是由与日志目录不相关的操作生成的,例如更改数据目录位置。添加——开始参数,以便在特定时间后使用日志事件过滤掉不需要的事件。当时间戳等于指定时间或更晚时,此参数捕获事件。SELinux为当前操作生成一个策略。

      $ausearch——开始10: 00:00- c“mysqld”——生|audit2allow- mmy-mysqld
    4. 这个策略允许mysqld写入标记的目录。打开my_mysqld文件:

      模块my-mysqld 1.0;需要{类型mysqld_t;类型default_t;类目录写入;} #============= mysqld_t  ============== 允许mysqld_t default_t: dir写;
    5. 安装SELinux策略模块:

      $semodule-我my-mysqld.pp

    重新启动服务。如果出现故障,请检查日志并遵循相同的步骤。

    如果SELinux阻止mysql在目录中创建日志文件。您可以通过将SELinux模式更改为来查看所有的违规宽容的然后运行mysqld。所有违规行为都记录在日志中。运行之后,您可以生成一个本地策略模块,安装它,并将SELinux切换回执行模式。请遵循以下步骤:

    1. 卸载当前本地my-mysqld策略模块:

      $semodule- rmy-mysqld
    2. 您可以将单个域设置为允许模式。系统上的其他域保持强制模式。使用semanage宽容与——一个参数将mysqld_t更改为允许模式:

      $semanage宽容的——一个mysqld_t
    3. 验证模式更改:

      $semdule- l|grep宽容的
      预期的输出
      ...permissive_mysqld_t……
    4. 为了更容易地搜索日志,返回时间:

      $日期
    5. 启动服务。

      $服务mysqld开始
    6. MySQL启动,SELinux将违规记录在日志中。检查日志:

      $journalctlxe
    7. 停止服务:

      $服务mysqld停止
    8. 使用步骤4返回的时间生成一个本地mysqld策略:

      $ausearch——开始< date-c“mysqld”——生|audit2allow- mmy-mysqld
    9. 检查策略(您生成的策略可能不同):

      $猫my-mysqld.te
      预期的输出
      模块my-mysqld 1.0;需要{类型default_t;类型mysqld_t;类dir {add_name write};类文件{追加创建开放};} #============= mysqld_t  ============== 允许mysqld_t default_t: dir {add_name写};允许mysqld_t default_t:file {append create open};
    10. 安装策略:

      $semodule-我my-mysqld.pp
    11. 使用semanage宽容与- d参数,该参数删除服务的允许域:

      $semanage宽容的- dmysqld_t
    12. 重新启动服务:

      $服务mysqld开始

    请注意

    使用此过程调整本地mysqld策略模块。您应该检查生成的更改,以确保规则不是太宽容。

    集secure_file_priv目录¶

    的SELinux标记更新/var/lib/mysql-files /目录,用于选择……到输出文件或类似的操作,如果需要。服务器只需要对目标目录进行读/写访问。

    设置secure_file_priv要使用该目录,运行以下命令设置上下文:

    $semanagefcontext——一个- tmysqld_db_t“/ var / lib / mysql-files /(/ . *) ?”$restorecon房车/var/lib/mysql-files

    如果需要,编辑不同位置的路径。

    联系我们

    如需免费技术帮助,请访问Percona雷竞技下载官网社区论坛.

    要报告错误或提交功能请求,请打开JIRA票。

    付费支持而且管理或咨询服务,请联系雷竞技下载官网Percona销售.


    最近更新:2023-01-17
    雷竞技下载官网Percona LLC和/或其关联公司©2023
    用MkDocs材料

    饼干的同意

    我们使用cookie来识别您的重复访问和偏好,以及衡量我们文档的有效性,以及用户是否找到他们正在搜索的内容。在您的同意下,您正在帮助我们改进我们的文档。

    Baidu
    map