阿里云MySQL服务安全加固

更新时间: 2017-09-20

数据库管理人员可以参考本文档进行 MySQL 数据库系统的安全配置加固,提高数据库的安全性,确保数据库服务稳定、安全、可靠地运行。

漏洞发现

您可以使用安骑士企业版自动检测您的服务器上是否存在 MySQL 漏洞问题,或者您也可以自己排查您服务器上的 MySQL 服务是否存在安全问题。

安全加固

  1. 帐号安全

    • 禁止 Mysql 以管理员帐号权限运行

      以普通帐户安全运行 mysqld,禁止以管理员帐号权限运行 MySQL 服务。在 /etc/my.cnf 配置文件中进行以下设置。

      1. [mysql.server]
      2. user=mysql
    • 避免不同用户间共享帐号

      参考以下步骤。

      1. 创建用户。

        1. mysql> mysql> insert into
        2. mysql.user(Host,User,Password,ssl_cipher,x509_issuer,x509_sub
        3. ject) values("localhost","pppadmin",password("passwd"),‘‘,‘‘,‘‘);

        执行以上命令可以创建一个 phplamp 用户。

      2. 使用该用户登录 MySQL 服务。
        1. mysql>exit;
        2. @>mysql -u phplamp -p
        3. @>输入密码
        4. mysql>登录成功
    • 删除无关帐号

      DROP USER 语句可用于删除一个或多个 MySQL 账户。使用 DROP USER 命令时,必须确保当前账号拥有 MySQL 数据库的全局 CREATE USER 权限或 DELETE 权限。账户名称的用户和主机部分分别与用户表记录的 User 和 Host 列值相对应。

      执行DROP USER user;语句,您可以取消一个账户和其权限,并删除来自所有授权表的帐户权限记录。

  2. 口令

    检查账户默认密码和弱密码。口令长度需要至少八位,并包括数字、小写字母、大写字母和特殊符号四类中的至少两种类型,且五次以内不得设置相同的口令。密码应至少每 90 天进行一次更换。

    您可以通过执行以下命令修改密码。

    1. mysql> update user set password=password(‘test!p3‘) where user=‘root‘;
    2. mysql> flush privileges;
  3. 授权

    在数据库权限配置能力范围内,根据用户的业务需要,配置其所需的最小权限。

    1. 查看数据库授权情况。

      1. mysql> use mysql;
      2. mysql> select * from user;
      3. mysql>select * from db;
      4. mysql>select * from host;
      5. mysql>select * from tables_priv;
      6. mysql>select * from columns_priv;
    2. 通过 revoke 命令回收不必要的或危险的授权。
      1. mysql> help revoke
      2. Name: ‘REVOKE‘
      3. Description:
      4. Syntax:
      5. REVOKE
      6. priv_type [(column_list)]
      7. [, priv_type [(column_list)]] ...
      8. ON [object_type]
      9. {
      10. *
      11. | *.*
      12. | db_name.*
      13. | db_name.tbl_name
      14. | tbl_name
      15. | db_name.routine_name
      16. }
      17. FROM user [, user] ...
  4. 开启日志审计功能

    数据库应配置日志功能,便于记录运行状况和操作行为。

    MySQL服务有以下几种日志类型:

    • 错误日志: -log-err
    • 查询日志: -log (可选)
    • 慢查询日志: -log-slow-queries (可选)
    • 更新日志: -log-update
    • 二进制日志: -log-bin

      找到 MySQL 的安装目录,在 my.ini 配置文件中增加上述所需的日志类型参数,保存配置文件后,重启 MySQL 服务即可启用日志功能。例如,

      1. #Enter a name for the binary log. Otherwise a default name will be used.
      2. #log-bin=
      3. #Enter a name for the query log file. Otherwise a default name will be used.
      4. #log=
      5. #Enter a name for the error log file. Otherwise a default name will be used.
      6. log-error=
      7. #Enter a name for the update log file. Otherwise a default name will be used.
      8. #log-update=

      该参数中启用错误日志。如果您需要启用其他的日志,只需把对应参数前面的 “#” 删除即可。

      日志查询操作说明

      • 执行show variables like ‘log_%‘;命令可查看所有的 log。
      • 执行show variables like ‘log_bin‘;命令可查看具体的 log。
  5. 安装最新补丁

    确保系统安装了最新的安全补丁。

    注意: 在保证业务及网络安全的前提下,并经过兼容性测试后,安装更新补丁。

  6. 如果不需要,应禁止远程访问

    禁止网络连接,防止猜解密码攻击、溢出攻击、和嗅探攻击。

    注意: 仅限于应用和数据库在同一台主机的情况。

    如果数据库不需要远程访问,可以禁止远程 TCP/IP 连接,通过在 MySQL 服务器的启动参数中添加--skip-networking参数使 MySQL 服务不监听任何 TCP/IP 连接,增加安全性。

    您可以使用 安全组 进行内外网访问控制,建议不要将数据库高危服务对互联网开放。

  7. 设置可信 IP 访问控制

    通过数据库所在操作系统的防火墙限制,实现只有信任的 IP 才能通过监听器访问数据库。

    1. mysql> GRANT ALL PRIVILEGES ON db.*
    2. ·-> -> TO 用户名@‘IP子网/掩码‘;
  8. 连接数设置

    根据您的机器性能和业务需求,设置最大、最小连接数。

    在 MySQL 配置文件(my.conf 或 my.ini)的 [mysqld] 配置段中添加max_connections = 1000,保存配置文件,重启 MySQL 服务后即可生效。

转自:https://www.alibabacloud.com/help/zh/faq-detail/49568.htm?spm=a2c63.q38357.a3.1.1e2d182aOeHR4O

原文地址:https://www.cnblogs.com/gs008/p/12401484.html

时间: 2024-10-17 14:07:53

阿里云MySQL服务安全加固的相关文章

怎么使用阿里云直播服务应用到现在主流直播平台中

一.业务场景 现在直播APP和直播业务非常火爆,越来越多的人玩直播. 早期直播:直播界定为“广播电视节目的后期(haobc)合成.播出同时进行的播出方式” .主要是电视综艺节目直播.演唱会直播.体育赛事直播等. 现在互联网直播,用户通过移动设备.摄像设备直接拍摄和推流服务器直接连接.互联网用户通过移动设备直接观看直播,延迟非常低. 应用方式:个人直播.游戏直播.发布会直播等等 近期公司组织新品发布会直播: 时间 (对外公布发布会直播时间). 空间 (室内租用直播室). 设备 (摄影设备 .灯光设

阿里云 Redis 服务遇到的问题

ERR unknown command eval 说明: 执行当前 Web 请求期间,出现未经处理的异常.请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息. 异常详细信息: StackExchange.Redis.RedisServerException: ERR unknown command eval 源错误: 执行当前 Web 请求期间生成了未经处理的异常.可以使用下面的异常堆栈跟踪信息确定有关异常原因和发生位置的信息. 堆栈跟踪: [RedisServerExcep

阿里云容器服务与 ASP.NET Core 的 Docker 部署:用 docker secrets 保存 appsettings.Production.json

这是我们使用阿里云容器服务基于 docker 容器部署 asp.net core 应用遇到的另一个问题 —— 如果将包含敏感信息的应用配置文件 appsettings.Production.json 传递给运行在容器中的 asp.net core 应用. Docker 针对这样的应用场景已经提供了解决方案 —— Docker Secrets,对应的 docker 命令是 docker secret .我们就用 docker secrets 解决了这个问题,在这篇随笔中分享一下. 首先在阿里云容器

在阿里云容器服务上开发基于Docker的Spring Cloud微服务应用

本文为阿里云容器服务Spring Cloud应用开发系列文章的第一篇. 一.在阿里云容器服务上开发Spring Cloud微服务应用(本文) 二.部署Spring Cloud应用示例 三.服务发现 四.服务间通信与集成 五.服务智能路由 六.集中配置管理 七.高可用和容错 八.监控和日志 九.服务的部署和发布策略 微服务概述 单体应用通常指在一个程序中满足多个业务或技术领域的需求,不同的需求领域内化为模块.假定我们要开发一个Web应用,通常的MVC模式可以满足要求.针对不同领域有不少代码生成工具

评:阿里云菲青:不忘初心,知难而进!未来的阿里云=用户服务

原创文章,如转载,请注明出处,谢谢! 我取了部分我最关心内容. 我觉得:第三个,跟开发者建立共生共赢的生态体系. 这个说的不全面,还应关注所有云服务相关的生态系统,不能只关注开发者的生态环境. 阿里云菲青:不忘初心,知难而进!未来的阿里云=用户服务 http://www.csdn.net/article/2014-10-16/2822131 阿里云的梦想 阿里云在2009年开始成立的时候,那时候我们想做一件事情,但我们知道这件事情对未来来讲还是不可测的,就像IBM的创始人发明计算机的时候说全世界

品尝阿里云容器服务:初步尝试ASP.NET Core Web API站点的Docker自动化部署

部署场景是这样的,我们基于 ASP.NET Core 2.0 Preview 1 开发了一个用于管理缓存的 Web API ,想通过阿里云容器服务基于 Docker 部署为内网服务. 在这篇博文中分享一下经过实践验证的操作步骤: 一.创建与配置集群 1)首先创建一个 Swarm Mode 的集群(注意创建时不要选择“自动创建负载均衡”,因为我们部署的是内网服务,自动创建的是公网负载均衡,需要手动创建内网负载均衡并绑定到集群): 2)集群创建成功后,会在集群列表中显示下面的信息: 3)接着创建一个

品尝阿里云容器服务:用nginx镜像创建容器,体验基于域名的路由机制

在前一篇博文中我们了解了阿里云容器服务的路由机制: 请求 -> 负载均衡80端口 -> 容器主机9080端口 -> acsrouting路由容器80端口 --基于域名--> Web站点容器端口 在这篇博文中,我们用nginx镜像创建一个容器实际体验一下. 使用容器服务首先要创建一个集群(Cluster),比如这里我们创建一个名叫websites的集群(使用的是swarm mode): 创建好集群后,点击“管理”,进入集群管理页面 -> “负载均衡” -> “域名设置”,

用StackExchange.Redis客户端连接阿里云Redis服务遇到的问题

阿里云推荐的Redis服务.NET客户端是ServiceStack.Redis,但ServiceStack.Redis不支持异步,不支持.NET Core,于是尝试使用StackExchange.Redis.Microsoft.Extensions.Caching.Redis用的也是StackExchange.Redis,于是直接使用Microsoft.Extensions.Caching.Redis. 测试代码如下: var options = new RedisCacheOptions {

阿里云OSS服务体验

我是一名PHPer,从事后台的一切开发.话说不会服务器基本运维和操作,尤其是Linux系统,不是一个合格PHPer.刚好我们公司又没有专门的运维工程师,所以平时的运维工作就大包小包地落在我身上了. 我们现在的产品是微信公众号-老玩童享福,线上的活动主要有:视频健康任务(每天做任务打卡).每日五道题选择题.每日猜猜(回复关键词答案).百日行动(关于健康方面的活动,每天做任务打卡,模式仿新东方百日行动).商城(接入有赞的商城).文体秀活动(包括有奖答题和文艺投票,覆盖河北所有地级市,分别有石家庄.唐