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

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] 键来回答一系列问题。

 

安全安装 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 

8.不要在命令行中运行 MySQL 命令

正如你所知道的,你在终端上输入的所有命令都会被存储在一个历史文件中,具体取决于你正在使用的shell(例如 bash 的 shell 历史文件放在 ~/.bash_history )。攻击者访问这个历史文件可以很容易地看到记录在那里的任何密码。

非常不建议在命令行里面输入密码,如下:

  1. # mysql -u root -ppassword_ 

 

使用密码连接 MySQL

当你查看命令行历史文件的最后的部分时,可以看到之前输入过的密码。

  1. # history 

 

查看命令行输入历史

推荐连接 MySQL 的方式是

 

  1. # mysql -u root -p 
  2. Enter password

9. 定义特定应用的数据库用户

对于每一个在服务器上运行的应用,只设置一个与该应用相关的数据库用户。例如你有一个 wordpress 网站,如下创建一个 wordpress 的数据库用户:

 

  1. # mysql -u root -p 
  2. MariaDB [(none)]> CREATE DATABASE osclass_db; 
  3. MariaDB [(none)]> CREATE USER 'osclassdmin'@'localhost' IDENTIFIED BY 'osclass@dmin%!2'
  4. MariaDB [(none)]> GRANT ALL PRIVILEGES ON osclass_db.* TO 'osclassdmin'@'localhost'
  5. MariaDB [(none)]> FLUSH PRIVILEGES
  6. MariaDB [(none)]> exit 

并且要记住对于不再使用的数据库用户要删掉。

10.使用额外的安全插件和库

MySQL 包含许多安全插件:验证客户端连接到 MySQL 服务器的请求、密码校验和敏感信息的安全存储等,这些都在免费版本中提供。

在这里可查看更多: https://dev.mysql.com/doc/refman/5.7/en/security-plugins.html

11.定期修改 MySQL 密码

定期修改密码是一个常见的信息/应用/系统安全建议。多久修改一次密码由你内部的安全策略决定。定期修改密码可以阻止长期跟踪你的“窥探者”,获取你的密码,登录你的 MySQL 服务器。

MariaDB [(none)]> USE mysql;MariaDB [(none)]> UPDATE user SET password=PASSWORD(‘YourPasswordHere’) WHERE User=’root’ AND Host = ‘localhost’;MariaDB [(none)]> FLUSH PRIVILEGES;

12.定期更新MySQL Server 包

强烈建议定期从官方仓库更新 mysql/mariadb 包来获取最新的安全更新和错误改进。通常情况下操作系统中默认的包是过时的。

 

  1. # yum update  
  2. # apt update 

在对 mysql/mariadb server 进行任何修改之后,要重启服务。

 

  1. # systemctl restart mariadb #RHEL/CentOS  
  2. # systemctl restart mysql #Debian/Ubuntu 

分享到此结束,欢迎大家在文章下面评论,并且和我们分享文章中没有提到的安全提示。

文章来源网络,作者:运维,如若转载,请注明出处:https://shuyeidc.com/wp/309185.html<

(0)
运维的头像运维
上一篇2025-05-27 22:37
下一篇 2025-05-27 22:38

相关推荐

  • 个人主题怎么制作?

    制作个人主题是一个将个人风格、兴趣或专业领域转化为视觉化或结构化内容的过程,无论是用于个人博客、作品集、社交媒体账号还是品牌形象,核心都是围绕“个人特色”展开,以下从定位、内容规划、视觉设计、技术实现四个维度,详细拆解制作个人主题的完整流程,明确主题定位:找到个人特色的核心主题定位是所有工作的起点,需要先回答……

    2025-11-20
    0
  • 社群营销管理关键是什么?

    社群营销的核心在于通过建立有温度、有价值、有归属感的社群,实现用户留存、转化和品牌传播,其管理需贯穿“目标定位-内容运营-用户互动-数据驱动-风险控制”全流程,以下从五个维度展开详细说明:明确社群定位与目标社群管理的首要任务是精准定位,需明确社群的核心价值(如行业交流、产品使用指导、兴趣分享等)、目标用户画像……

    2025-11-20
    0
  • 香港公司网站备案需要什么材料?

    香港公司进行网站备案是一个涉及多部门协调、流程相对严谨的过程,尤其需兼顾中国内地与香港两地的监管要求,由于香港公司注册地与中国内地不同,其网站若主要服务内地用户或使用内地服务器,需根据服务器位置、网站内容性质等,选择对应的备案路径(如工信部ICP备案或公安备案),以下从备案主体资格、流程步骤、材料准备、注意事项……

    2025-11-20
    0
  • 如何企业上云推广

    企业上云已成为数字化转型的核心战略,但推广过程中需结合行业特性、企业痛点与市场需求,构建系统性、多维度的推广体系,以下从市场定位、策略设计、执行落地及效果优化四个维度,详细拆解企业上云推广的实践路径,精准定位:明确目标企业与核心价值企业上云并非“一刀切”的方案,需先锁定目标客户群体,提炼差异化价值主张,客户分层……

    2025-11-20
    0
  • PS设计搜索框的实用技巧有哪些?

    在PS中设计一个美观且功能性的搜索框需要结合创意构思、视觉设计和用户体验考量,以下从设计思路、制作步骤、细节优化及交互预览等方面详细说明,帮助打造符合需求的搜索框,设计前的规划明确使用场景:根据网站或APP的整体风格确定搜索框的调性,例如极简风适合细线条和纯色,科技感适合渐变和发光效果,电商类则可能需要突出搜索……

    2025-11-20
    0

发表回复

您的邮箱地址不会被公开。必填项已用 * 标注