MySQL数据库安全基线(加固方法)

本文详细介绍了MySQL数据库的安全加固方法,包括基本安全原则,如选择稳定版本、避免弱口令,以及具体的配置措施,如系统层面的配置、服务器配置、用户和密码配置、文件权限设置、审计和日志管理,同时强调了定期备份和恢复的重要性。
摘要由CSDN通过智能技术生成

MySQL数据库安全加固方法

基本安全原则

  • 选择稳定版本并及时更新、打补丁
  • 严禁使用弱口令,定期更新口令
  • 严格的权限分配和访问控制

具体安全配置

系统层面配置
  • 系统安装时,需要确认没有其他⽤户登录在服务器上。

  • 选择稳定的版本,并及时更新到最新版本、打补丁

  • 查看系统防火墙或网络安全设备,是否有限制对MySQL数据库的访问

  • 不设置环境变量或确保MYSQL_PWD环境变量未设置敏感信息

  • 禁用MySQL命令历史记录

    删除现在的.mysql_history文件
    rm ~/.mysql_history
    创建它的软连接
    ln -s /dev/null ~/.mysql_history
    
    如果有特殊情况需要打开,重新设置MYSQL_HISTFILE即可:
    比如export MYSQL_HISTFILE=~/.mysql_history
    
  • 系统安装时运行mysql_secure_installation执行相关安全设置

    运行mysql_secure_installation会执行几个设置:
    a)为root用户设置密码
    b)删除匿名账号
    c)取消root用户远程登录
    d)删除test库和对test库的访问权限
    e)刷新授权表使修改生效
    
服务器配置
  • 3306端口及服务不允许暴露到公网。如有特殊业务需求需对外网开放,必须经云安全部审核通讨后,才允许对外网开放。
  • 服务器不应该具备访问外⽹的能⼒(如有必要,可单向访问)。
  • 新的服务器正式投⼊使⽤前,必须经过安全加固。
⽤户和密码配置
  • 使用专用的最小权限账号运行Mysql数据库进程

  • 严禁使用弱口令,严禁共享账号

    • 强密码的设定,需要符合以下标准:

      每个账号必须要设密码且密码不能和用户名相同;(必选)
      不得出现用户名、真实姓名为公司名称;(必选)
      用户密码长度不能低于8位;(必选)
      不能使用常用单词;(必选)
      不能使用用户相关信息:例如生日、电话号码等等;(可选)
      至少由3种字符组成,包含字母、数字、特殊符号在内。(可选)
      
    • 使用validate_password.so插件,进行安全加固

      安装插件:(默认安装了插件后,强度插件就启用了,关闭,需要在配置文件假如相关关闭参数)
      mysql>INSTALL PLUGIN validate_password SONAME 'validate_password.so';
      配置文件添加部分参数:
      [mysqld]
      plugin-load=validate_password.so
      validate_password_policy=2
      validate-password=FORCE_PLUS_PERMANENT
      3.以上处理后,就可以测试了:
      mysql> SET PASSWORD = PASSWORD('abc');
      ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
      mysql> SET PASSWORD = '*0D3CED9BEC10A777AEC23CCC353A8C08A633045E';
      Query OK, 0 rows affected (0.01 sec)
      
      相关选项说明:
      validate-password=ON/OFF/FORCE/FORCE_PLUS_PERMANENT: 决定是否使用该插件(及强制/永久强制使用)。
      validate_password_dictionary_file:插件用于验证密码强度的字典文件路径。
      validate_password_length:密码最小长度。
      validate_password_mixed_case_count:密码至少要包含的小写字母个数和大写字母个数。
      validate_password_number_count:密码至少要包含的数字个数。
      validate_password_policy:密码强度检查等级,0/LOW、1/MEDIUM、2/STRONG。
      validate_password_special_char_count:密码至少要包含的特殊字符数。
      其中,关于validate_password_policy-密码强度检查等级:
      0/LOW:只检查长度。
      1/MEDIUM:检查长度、数字、大小写、特殊字符。
      2/STRONG:检查长度、数字、大小写、特殊字符字典文件。
      
  • 用户密码过期时间小于等于90天

    配置文件中设置
    [mysqld]
    default_password_lifetime
  • 2
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值