MYSQL 等保整改配置
等保要求 mysql 整改项
配置密码复杂度
看当前复杂度配置
1
show variables like ‘validate\_password%’;
安装插件
1
install plugin validate\_password SONAME 'validate\_password.so';
创建简单密码测试
应启用登录失败处理功能
1 | install plugin CONNECTION\_CONTROL soname 'connection\_control.so'; |
connection_control_min_connection_delay 上面的意思是失败连接超过 3 次,连接延时 1 秒
- 修改配置文件,连接测试
可以看出失败超过 5 次,连接延时 6 秒 (会影响所有 ip 连接)
启用 ssl 连接
生成证书
1
/data/db/mysql-5.7.26/bin/mysql\_ssl\_rsa\_setup -d /data/conf/mysqldb/
修改权限
1
cd /data/conf/mysqldb && chown mysql.mysql ./\*
修改配置文件 /data/conf/mysqldb/my.cnf ,添加证书
1
2
3ssl-ca=/data/conf/mysqldb/ca.pem
ssl-cert=/data/conf/mysqldb/server-cert.pem
ssl-key=/data/conf/mysqldb/server-key.pem重启数据库,连接
启用 ssl 证书后抓包测试
配置用户:1
2grant all privileges on *.* to 用户@‘%’ identified by ‘密码’ require ssl;
flush privileges;(测试发现使用 root 去连接,抓包也是加密过的,并没配置要求使用 ssl)
连接抓包测试:
1
tcpdump -s 0 -l -w - dst 172.xx.xx.xx and port 3306 |strings
可以看出已经加密
另一台没启用 ssl 的则能把语句抓取出来只授权库权限给某个用户
1
2
3grant 权限 on 数据库.\* to ‘用户名’@‘登录主机’ INDENTIFIED BY ‘用户密码’;
修改root用户
update user set user='xxxx' where user='root';配置超时:
1 | set global interactive_timeout=1800; |