当前位置:   article > 正文

安全:Mysql安全建议。_mysql弱口令修复建议

mysql弱口令修复建议

为MySQL服务使用专用的最低特权账户

描述

使用最低权限账户运行服务可减小MySQL天生漏洞的影响。受限账户将无法访问与MySQL无关的资源,例如操作系统配置。

建议

使用非root和非sudo权限用户启动MySQL服务

禁止使用--skip-grant-tables选项启动MySQL服务

描述

使用此选项,会导致所有客户端都对所有数据库具有不受限制的访问权限。

建议

编辑Mysql配置文件<conf_path>/my.cnf,删除skip-grant-tables参数,并重启mysql服务

禁用local-infile选项

描述

禁用local_infile选项会降低攻击者通过SQL注入漏洞器读取敏感文件的能力

建议

编辑Mysql配置文件<conf_path>/my.cnf,在mysqld 段落中配置local-infile参数为0,并重启mysql服务:

local-infile=0

删除'test'数据库

描述

测试数据库可供所有用户访问,并可用于消耗系统资源。删除测试数据库将减少MySQL服务器的攻击面。

建议

登录数据库执行以下SQL语句删除test数据库:

  1. DROP DATABASE test;
  2. flush privileges;

确保配置了log-error选项 

描述

启用错误日志可以提高检测针对mysql和其他关键消息的恶意尝试的能力,例如,如果错误日志未启用,则连接错误可能会被忽略。

建议

编辑Mysql配置文件<conf_path>/my.cnf,在mysqld_safe 段落中配置log-error参数,<log_path>代表存放日志文件路径,如:/var/log/mysqld.log,并重启mysql服务:

log-error=<log_path>

确保log-raw选项没有配置为ON

描述

当log-raw记录启用时,有权访问日志文件的人可能会看到纯文本密码。

建议

编辑Mysql配置文件<conf_path>/my.cnf,删除log-raw参数,并重启mysql服务。

确保没有用户配置了通配符主机名

描述

避免在主机名中只使用通配符,有助于限定可以连接数据库的客户端,否则服务就开放到了公网

建议

执行SQL更新语句,为每个用户指定允许连接的host范围。 1. 登录数据库,执行use mysql; ; 2. 执行语句select user,Host from user where Host='%';查看HOST为通配符的用户; 3. 删除用户或者修改用户host字段,删除语句:DROP USER 'user_name'@'%'; 。更新语句:update user set host = <new_host> where host = '%';。 4. 执行SQL语句:

  1. OPTIMIZE TABLE user;
  2. flush privileges;

匿名登录检查

描述

检查MySQL服务是否允许匿名登录

建议

登录MySQL数据库,执行以下命令删除匿名账户:

  1. delete from user where user='';
  2. flush privileges;

禁用symbolic-links选项

描述

禁用符号链接以防止各种安全风险

建议

编辑Mysql配置文件<conf_path>/my.cnf,在mysqld 段落中配置symbolic-links=0,5.6及以上版本应该配置为skip_symbolic_links=yes,并重启mysql服务。

确保MYSQL_PWD环境变量未设置

描述

MYSQL_PWD环境变量的使用意味着MYSQL凭证的明文存储,极大增加MySQL凭据泄露风险。

建议

删除系统环境变量中MySQL密码(MYSQL_PWD)配置

修改默认3306端口

描述

避免使用熟知的端口,降低被初级扫描的风险建议

建议

编辑<conf_path>/my.cnf文件,mysqld 段落中配置新的端口参数,并重启MySQL服务:

port=3506 

数据库登录弱口令

描述

若系统使用弱口令,存在极大的被恶意猜解入侵风险,需立即修复。

建议

  1. 登录mysql数据库;
  2. 查看数据库用户密码信息:`SELECT user, host, authentication_string FROM user;` 部分版本查询命令为:`SELECT user, host, password FROM user;`
  3. 根据查询结果及弱密码告警信息修改具体用户的密码:`SET PASSWORD FOR '用户名'@'主机' = PASSWORD('新密码');`
  4. 执行刷新命令:`flush privileges;`

新口令应符合复杂性要求:

  1. 1、长度8位以上
  2. 2、包含以下四类字符中的三类字符:
  3. 英文大写字母(A 到 Z)
  4. 英文小写字母(a 到 z)
  5. 10 个基本数字(09)
  6. 非字母字符(例如 !、$、#、%、@、^、&)
  7. 3、避免使用已公开的弱口令,如:abcd.1234 、admin@123
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/爱喝兽奶帝天荒/article/detail/906750
推荐阅读
相关标签
  

闽ICP备14008679号