MySQL是一款「关系型数据库」,默认使用3389端口提供服务。
MySQL基线检查
- 1、更新版本
- 2、普通用户运行
- 3、删除匿名账户和无关账户
- 4、修改弱口令
- 5、用户权限
- 6、文件权限
- 7、可信IP
- 8、开启日志
- 9、连接数限制
1、更新版本
在业务允许的情况下,安装新版本,修补漏洞。
select version();
查看MySQL版本,结合漏洞情报,判断是否需要安装最新版本。
2、普通用户运行
MySQL服务需要使用普通用户运行,比如mysql用户。
ps -ef | grep mysqld
属主PID是mysql 或者 运行参数指定了运行用户 --user=mysql
grep -i user /etc/
数据库配置文件通过 user=mysql
指定了用户是mysql
如果运行用户不是mysql,就在 /etc/ 添加一行 user=mysql
3、删除匿名账户和无关账户
查询用户,用户名和密码字段为空的,就是匿名账户。
MySQL 5.7 以前:select user,password from ;
MySQL5.7 以后:select user,host,authentication_string from ;
删除匿名账户:delete from where user='';
刷新权限后生效,否则还可以登录:flush privileges;
4、修改弱口令
修改数据库用户的弱口令。
MySQL 5.7 以前:select user,password from ;
MySQL 5.7 以后:select user,authentication_string from ;
MySQL5.7以前修改密码:
update user set password=password('1234567') where user='root';
flush privileges;
- 1
- 2
MySQL5.7以后修改密码:alter user 'root'@'localhost' identified by '1234567';
5、用户权限
按照软件安全设计的最小特权原则分配用户权限。
查看用户权限:show grants for root@localhost;
查看用户权限: select * from where user='root'\G
设置权限 grant select on *.* to test@localhost;
删除权限 revoke select on *.* from test@localhost;
6、文件权限
-
ll ~/.mysql_history ~/.bash_history
权限600 -
ll /etc/
权限644 -
find / -name *.ibd | xargs ls -al
权限600 -
find / -name *.MYD | xargs ls -al
权限600 -
find / -name *.MYI| xargs ls -al
权限600 -
find / -name *.frm| xargs ls -al
权限600
7、可信IP
根据实际业务需求,设置可信IP访问。
查看所有用户和登录主机
select user,host from mysql.user;
- 1
修改指定用户的登录主机
update mysql.user set host = '192.168.153.197' where user = 'test';
- 1
flush privileges;
刷新权限生效
8、开启日志
在 /etc/
添加一行 log-error=filename
,开启日志记录,重启服务生效。
9、连接数限制
根据实际业务设置最大连接数。
show variables like 'max_connections';
查看最大连接数。
如果每设置,就在数据库配置文件 /etc/ 中,添加一行 max_connections=1000
,重启服务生效。