当前位置:   article > 正文

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

mysql数据库加固

MySQL数据库安全加固方法

基本安全原则

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

具体安全配置

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

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

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

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

  • 禁用MySQL命令历史记录

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

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

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

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

      每个账号必须要设密码且密码不能和用户名相同;(必选)
      不得出现用户名、真实姓名为公司名称;(必选)
      用户密码长度不能低于8位;(必选)
      不能使用常用单词;(必选)
      不能使用用户相关信息:例如生日、电话号码等等;(可选)
      至少由3种字符组成,包含字母、数字、特殊符号在内。(可选)
      
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
    • 使用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:检查长度、数字、大小写、特殊字符字典文件。
      
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7
      • 8
      • 9
      • 10
      • 11
      • 12
      • 13
      • 14
      • 15
      • 16
      • 17
      • 18
      • 19
      • 20
      • 21
      • 22
      • 23
      • 24
      • 25
  • 用户密码过期时间小于等于90天

    配置文件中设置
    [mysqld]
    default_password_lifetime
    • 1
    • 2
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/正经夜光杯/article/detail/1018866
推荐阅读
相关标签
  

闽ICP备14008679号