和所有以梦为马的诗人一样
岁月易逝 一滴不剩

12 条用于 Linux 的 MySQL/MariaDB 安全最佳实践

点击量:39

MySQL 是世界上最流行的开源数据库系统,MariaDB(一个 MySQL 分支)是世界上增长最快的开源数据库系统。在安装 MySQL 服务器之后,在默认配置下是不安全的,确保数据库安全通常是通用数据库管理的基本任务之一。 这将有助于增

?wx_fmt=png&wxfrom=5&wx_lazy=1

MySQL 是世界上最流行的开源数据库系统,MariaDB(一个 MySQL 分支)是世界上增长最快的开源数据库系统。在安装 MySQL 服务器之后,在默认配置下是不安全的,确保数据库安全通常是通用数据库管理的基本任务之一。

这将有助于增强和提升整个 Linux 服务器的安全性,因为攻击者总是扫描系统任意部分的漏洞,而数据库在过去是重点目标区域。一个常见的例子是对 MySQL 数据库的 root 密码的强制破解。

在本指南中,我们将会讲解对开发者有帮助的 MySQL/MariaDB 的 Linux 最佳安全实践。

1. 安全地安装 MySQL

这是安装 MySQL 服务器后第一个建议的步骤,用于保护数据库服务器。这个脚本可以帮助您提高 MySQL 服务器的安全性:

  • 如果您在安装期间没有设置 root 帐户的密码,马上设置它

  • 通过删除可从本地主机外部访问的 root 帐户来禁用远程 root 用户登录

  • 删除匿名用户帐户和测试数据库,默认情况下,所有用户、甚至匿名用户都可以访问这些帐户和测试数据库


  1. # mysql_secure_installation

在运行上述命令之后,设置 root 密码并通过输入 [Yes/Y] 和按下 [Enter] 键来回答一系列问题。

?wx_fmt=png

安全安装 MySQL 情况界面

2. 将数据库服务器绑定到 Loopback 地址

此配置将限制来自远程机器的访问,它告诉 MySQL 服务器只接受来自本地主机的连接。你可以在主配置文件中进行设置。


  1. # vi /etc/my.cnf                       [RHEL/CentOS]    

  2. # vi /etc/mysql/my.conf                    [Debian/Ubuntu]

  3. OR

  4. # vi /etc/mysql/mysql.conf.d/mysqld.cnf    [Debian/Ubuntu]

[mysqld] 部分中添加下面这一行


  1. bind-address = 127.0.0.1

3. 禁用 MySQL 的 LOCAL INFILE

作为安全性增强的一部分,您需要禁用 local_infile,使用下面的指令以防止在 [mysqld] 部分从 MySQL 中访问底层文件系统。


  1. local-infile=0

4. 修改 MySQL 的默认端口

设置端口变量用于监听 TCP/IP 连接的 MySQL 端口号。默认端口号是 3306,但是您可以在 *[mysqld] *中修改它。


  1. Port=5000

5、启用 MySQL 日志

日志是了解服务运行过程中发生了什么的最好的方法之一,在受到任何攻击的时候都可以很容易的从日志里看到任何入侵相关的行为。可以通过将下边的变量添加到配置文件[mysqld]部分来开启mysql日志功能。


  1. log=/var/log/mysql.log

6、设置合适的 MySQL 文件的访问权限

确保你已经为所有的 mysql 服务文件和数据路径设置了合适的访问权限。文件 /etc/my.conf 只能由 root 用户修改,这样就可以阻止其他用户修改数据库服务的配置。


  1. # chmod 644 /etc/my.cnf

7、删除 MySQL shell 历史

你在 MySQL shell 中执行的所有的命令都会被 mysql 客户端保存到一个历史文件:~/.mysql_history。这样是很危险的,因为对于你创建过的任何用户账户,所有的在 shell 输入过的用户名和密码都会记录到历史文件里面。


  1. # cat /dev/null > ~/.mysql_history


希望你今年过得比去年好一点
是因为有我

Have a nice day :)



上一篇:快速定位生产故障问题-JVM进程CPU占用率高于100%

下一篇:MySQL数据库视图:视图定义、创建视图、修改视图