数据库安全mariadb(mysql)

安装mariadb

[root@mariadb ~]# yum -y install mariadb mariadb-server
[root@mariadb ~]# systemctl restart mariadb.service 
[root@mariadb ~]# netstat -pntul | grep mysql
tcp      0   0 0.0.0.0:3306         0.0.0.0:*             LISTEN      15787/mysqld        
[root@mariadb ~]# mysqladmin -uroot -hlocalhost -p password "123456"   //默认无密码,设置新密码
Enter password: 
[root@mariadb ~]# mysql
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
[root@mariadb ~]# mysql -uroot -p123456
MariaDB [(none)]> 

初始化安全脚本

MariaDB [(none)]> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| test               |
+--------------------+
4 rows in set (0.00 sec)

MariaDB [(none)]> select user,host,password from mysql.user;    //可以看到空用户,空密码都可以登录!
+------+-----------+-------------------------------------------+
| user | host      | password                                  |
+------+-----------+-------------------------------------------+
| root | localhost | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |
| root | proxy     |                                           |
| root | 127.0.0.1 |                                           |
| root | ::1       |                                           |
|      | localhost |                                           |
|      | proxy     |                                           |
+------+-----------+-------------------------------------------+
6 rows in set (0.00 sec)


[root@mariadb ~]# mysql_secure_installation 
...

Enter current password for root (enter for none): 
OK, successfully used password, moving on...

You already have a root password set, so you can safely answer 'n'.

Change the root password? [Y/n] n
 ... skipping.

Remove anonymous users? [Y/n] Y                   //是否移除匿名用户
 ... Success!
...

Disallow root login remotely? [Y/n] Y             //是否允许root远程登录
 ... Success!
...

Remove test database and access to it? [Y/n] Y      //是否移除test库
 - Dropping test database...
 ... Success!
 - Removing privileges on test database...
 ... Success!

...
Reload privilege tables now? [Y/n] Y                   //是否刷新权限
 ... Success!

Cleaning up...

All done!  If you've completed all of the above steps, your MariaDB
installation should now be secure.

Thanks for using MariaDB!

[root@mariadb ~]# mysql -uroot -p123456
MariaDB [(none)]> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
+--------------------+
3 rows in set (0.00 sec)

MariaDB [(none)]> select user,host,password from mysql.user;
+------+-----------+-------------------------------------------+
| user | host      | password                                  |
+------+-----------+-------------------------------------------+
| root | localhost | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |
| root | 127.0.0.1 |                                           |
| root | ::1       |                                           |
+------+-----------+-------------------------------------------+
3 rows in set (0.00 sec)

删除记录历史命令的文件内容

[root@mariadb ~]# >  .bash_history
[root@mariadb ~]# >  .mysql_history 

数据库内设置密码

MariaDB [(none)]> set password for root@"localhost"=password('123456');
Query OK, 0 rows affected (0.00 sec)

数据安全

[root@mariadb ~]# mysql -uroot -p123456 
MariaDB [(none)]> grant all on *.* to tcpuser@"%" identified by "123456";
Query OK, 0 rows affected (0.00 sec)

[root@mariadb ~]# tcpdump -w log -i eth0 src or dst port 3306
tcpdump: listening on eth0, link-type EN10MB (Ethernet), capture size 262144 bytes

[root@guo ~]# mysql -utcpuser -p123456 -h 192.168.4.51    客户端链接数据库
MariaDB [(none)]> select * from mysql.user\G;


[root@mariadb ~]# tcpdump -A -r log
...
14:39:29.860487 IP 192.168.4.254.39290 > mariadb.mysql: Flags [P.], seq 125:154, ack 183, win 229, options [nop,nop,TS val 22095518 ecr 20353473], length 29
E..Q..@[email protected]....#zbi.[...........
.Q&..6.......select * from mysql.user
...

这些数据明文传输,容易被抓取到,所以可以通过ssl或ssh加密数据进行传输

猜你喜欢

转载自blog.csdn.net/weixin_43800781/article/details/85685641