mysql安全配置建议,给需要的人(包括我自己)
1.匿名登录检查
登录MySQL数据库,执行以下命令删除匿名账户:
- delete from user where user='';
- flush privileges;
复制代码
2.版本存在安全漏洞
mysql以下版本存在安全漏洞,容易被入侵:
1. mysql5.6.35以下的5.6.x版本以及5.7.17以下的5.7.x版本存在远程安全漏洞。
2. mysql5.1.63之前的5.1.x版本,5.5.24之前的5.5.x版本,5.6.6之前的5.6.x版本,Mariadb5.1.62之前的5.1.x版本,5.2.12之前的5.2.x版本,5.3.6之前的5.3.x版本,5.5.23之前的5.5.x版本,均存在身份认证绕过漏洞。
3. mysql5.5.52及之前的版本,5.6.x至5.6.33版本,5.7.x至5.7.15版本;MariaDB 5.5.51之前的版本,10.0.27之前的10.0.x版本,10.1.17之前的10.1.x版本;Percona Server 5.5.51-38.1之前的版本,5.6.32-78.0之前的5.6.x版本,5.7.14-7之前的5.7.x版本,均存在远程代码执行/权限提升漏洞。
3.确保MYSQL_PWD环境变量未设置
MYSQL_PWD环境变量的使用意味着MYSQL凭证的明文存储,极大增加MySQL凭据泄露风险。
4.为MySQL服务使用专用的最低特权账户
使用最低权限账户运行服务可减小MySQL天生漏洞的影响。受限账户将无法访问与MySQL无关的资源,例如操作系统配置。建议:使用非root和非sudo权限用户启动MySQL服务
5.确保log-raw选项没有配置为ON
当log-raw记录启用时,有权访问日志文件的人可能会看到纯文本密码。编辑Mysql配置文件<conf_path>/my.cnf,删除log-raw参数,并重启mysql服务
6.禁止使用--skip-grant-tables选项启动MySQL服务
使用此选项,会导致所有客户端都对所有数据库具有不受限制的访问权限。编辑Mysql配置文件<conf_path>/my.cnf,删除skip-grant-tables参数,并重启mysql服务
7.禁用symbolic-links选项
禁用符号链接以防止各种安全风险
编辑Mysql配置文件<conf_path>/my.cnf,在[mysqld] 段落中配置symbolic-links=0,5.6及以上版本应该配置为skip_symbolic_links=yes,并重启mysql服务。
8.删除'test'数据库
测试数据库可供所有用户访问,并可用于消耗系统资源。删除测试数据库将减少MySQL服务器的攻击面。
登录数据库执行以下SQL语句删除test数据库:
- DROP DATABASE test;
- flush privileges;
复制代码
8.禁用local-infile选项
禁用local_infile选项会降低攻击者通过SQL注入漏洞器读取敏感文件的能力
编辑Mysql配置文件<conf_path>/my.cnf,在[mysqld] 段落中配置local-infile参数为0,并重启mysql服务:
未完待续。。。。。。。。。。。
|
|
|
|
|