MySQL安全设置建议
禁用local-infile选项
禁用local_infile选项会降低攻击者通过SQL注入漏洞器读取敏感文件的能力
加固建议
编辑Mysql配置文件/etc/my.cnf
,在mysqld 段落中配置local-infile
参数为0,并重启mysql服务:
local-infile=0
删除test库
测试数据库可供所有用户访问,并可用于消耗系统资源。删除测试数据库将减少mysql服务器的攻击面。
加固建议
登陆数据库执行以下SQL语句删除test数据库:
DROP DATABASE test;
flush privileges;
避免主机名中使用通配符%
避免在主机名中只使用通配符,有助于限定可以连接数据库的客户端,否则服务就开放到了公网
加固建议
执行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语句:
OPTIMIZE TABLE user; flush privileges;
禁用符号链接以防止各种安全风险
加固建议
编辑Mysql配置文件/etc/my.cnf
,在mysqld 段落中配置symbolic-links=0
,5.6及以上版本应该配置为skip_symbolic_links=yes
,并重启mysql服务
避免使用熟知的端口,降低被初级扫描的风险
加固建议
编辑/etc/my.cnf
文件,mysqld 段落中配置新的端口参数,并重启mysql服务:
port=3506
删除mysql_pwd变量密码设置
mysql_pwd
环境变量的使用意味着mysql凭证的明文存储,极大增加mysql凭据泄露风险。
加固建议
删除系统环境变量中Mysql密码(MYSQL_PWD
)配置
确保log-raw选项没有配置为ON
当log-raw
记录启用时,有权访问日志文件的人可能会看到纯文本密码。
加固建议
编辑Mysql配置文件/etc/my.cnf
,删除log-raw
参数,并重启mysql服务
原文链接:MySQL安全设置建议,转载请注明来源!