Mysql 安全加固

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


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值