博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Mysql 安全加固
阅读量:6402 次
发布时间:2019-06-23

本文共 3296 字,大约阅读时间需要 10 分钟。

1、数据目录安全性  show variables  like 'datadir';  
        -------设置相应的权限 防止数据被拷贝

        -------用专门的安全加固软件防止数据随意被拷贝  

2、安装完mysql后需要做的工作
运行
mysql_secure_installation设置相关的安全访问属性
需要安装mysql-client,才可以。运行mysql_secure_installation会执行几个设置:
[root@localhost ~]# mysql_secure_installation
a)为root用户设置密码
b)删除匿名账号
c)取消root用户远程登录
d)删除test库和对test库的访问权限
e)刷新授权表使修改生效

通过这几项的设置能够提高mysql库的安全。

3、skip-networking  bind-address=127.0.0.1

若不需要联网,可以开启这个选项

4、禁用LOCAL INFILE local-infile=0  (否则会带来sql注入问题) 导入外部数据用的命令
示例: 创建一数据库和一个表  然后倒入数据看看是否能够导入
关闭local_infile
mysql> set @@global.local_infile=0;
mysql> show variables like 'local_infile'
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| local_infile  | OFF   |
+---------------+-------+
1 row in set (0.00 sec)
mysql> load data local infile '/tmp/tt' into table tt;
ERROR 1148 (42000): The used command is not allowed with this MySQL version
打开这个参数:
mysql>
set @@global.local_infile = 1;
再测试一次
mysql> load data local infile '/tmp/tt' into table tt;
Query OK, 5 rows affected (0.04 sec)
Records: 5  Deleted: 0  Skipped: 0  Warnings: 0
mysql> select * from tt;
+------+
| id   |
+------+
|    1 |
|    2 |
|    3 |
|    4 |
|    5 |
+------+
5 rows in set (0.02 sec)
生产环境下一般是需要时再打开
select load_file("/etc/password")

MYSQL注入中,load_file()函数在获得web shell以及提权过程中起着十分重要的作用,常被用来读取各种配置文件.

5、数据库上面的历史操作命令都会被记录在根下面的.mysql_history上面
定时用脚本清空次文件  cat /dev/null > ~/.mysql_history
==========数据传输安全==========
SSL  OPENSSL YASSL

一般在AB复制跨地域传输的时候开启

========== 用户相关 ==========
1、user @ ip or host

通过授权命令,限定允许登录的用户和主机

2、权限最小化
授权的时候,不要一下子就给了all的权限,而应该开放最小权限。

安全权限控制思想

权限最好是由小设置为大  不要先给最大权限最后才缩小
这样导致后期生产系统很多问题出现
(1)、(重点)写库账号默认给select insert update delect 不要给创建修改表create alter权限  更不能给给all权限
(2)、读库账号默认select(配合mysql read-only  --ROOT没限制的)
(3)、根据需要,最好专库专账号,不要一个账号管理多个库
(4) 、grant select,insert,update,delect on blog.* to 'blog'@'10.0.0%'indentified b '123456';   ---数据库连接密码最好采用: 数字+字母+特殊符号,而不要过于简单。
查看用户开放的权限:
SHOW GRANTS FOR user_name@ip
例如:
mysql> show grants for 'dbtest'@'192.168.56.%'\G;
*************************** 1. row ***************************
Grants for dbtest@192.168.56.%: GRANT
ALL PRIVILEGES ON *.* TO 'dbtest'@'192.168.56.%' IDENTIFIED BY PASSWORD '*767C46297043DBC2F444C7D28E4B226047DA5C38'

1 row in set (0.00 sec)

(5)保护好超级用户的密码
mysql> select user,host from mysql.user;
+--------+-----------------------+
| user   | host                               |
+--------+-----------------------+
| root   | 127.0.0.1                        |
| dbtest | 192.168.56.%                |
| root   | ::1                                   |
| root   | localhost                       |
| root   | localhost.localdomain |
+--------+-----------------------+
mysql> rename user root@127.0.0.1 to ccc@127.0.0.1;

mysql> show grants for admin@127.0.0.1;

(6)删除密码为空的用户
mysql> select user,host,password from mysql.user;
+--------+-----------------------+---------------------------------------------------------+
| user   | host                              | password                                                                       |
+--------+-----------------------+---------------------------------------------------------+
| root   | localhost                       | *767C46297043DBC2F444C7D28E4B226047DA5C38 |
| root   | localhost.localdomain |                                                                                        |
| root   | 127.0.0.1                        |                                                                                        |
| root   | ::1                                   |                                                                                        |
| dbtest | 192.168.56.%                | *767C46297043DBC2F444C7D28E4B226047DA5C38 |
+--------+-----------------------+----------------------------------------------------------+
5 rows in set (0.00 sec)

mysql> delect from mysql.user where user='' or password='';

(7)定期去检查用户表里面的用户,看看里面的用户是否是你创建的,特别是   SQL

转载地址:http://kjjea.baihongyu.com/

你可能感兴趣的文章
[转]Windows的批处理脚本
查看>>
数据库运维体系_SZMSD
查看>>
js的AJAX请求有关知识总结
查看>>
三分 POJ 2420 A Star not a Tree?
查看>>
修改OBS为仅直播音频
查看>>
OCA读书笔记(3) - 使用DBCA创建Oracle数据库
查看>>
Python基础进阶之路(一)之运算符和输入输出
查看>>
阻塞非阻塞异步同步 io的关系
查看>>
ClickStat业务
查看>>
spring3.0.7中各个jar包的作用总结
查看>>
Windows 10 /win10 上使用GIT慢的问题,或者命令行反应慢的问题
查看>>
Windows平台分布式架构实践 - 负载均衡
查看>>
iOS自定制tabbar与系统的tabbar冲突,造成第一次点击各个item图片更换选中,第二次选中部分item图片不改变...
查看>>
我的路上
查看>>
DB2与oracle有什么区别
查看>>
创建一个多级文件目录
查看>>
svn status 显示 ~xx
查看>>
常用HiveQL总结
查看>>
[转]使用Visual Studio Code开发Asp.Net Core WebApi学习笔记(三)-- Logger
查看>>
Security updates and resources
查看>>