设为首页收藏本站
天天打卡

 找回密码
 立即注册
搜索
查看: 104|回复: 16

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

[复制链接]
  • 打卡等级:无名新人
  • 打卡总天数:1
  • 打卡月天数:0
  • 打卡总奖励:9
  • 最近打卡:2024-05-10 17:33:13

3

主题

37

回帖

150

积分

注册会员

积分
150
发表于 2024-4-20 10:29:22 | 显示全部楼层 |阅读模式
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 服务器。
  1. 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
复制代码
以上就是脚本之家分享给大家关于浅谈12 条用于 Linux 的 MySQL/MariaDB 安全最佳实践的全部内容,希望对大家有所帮助。感兴趣的朋友可以继续参阅本站其他相关专题,如有不足之处,欢迎留言指出。感谢朋友们对本站的支持!

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×

0

主题

46

回帖

92

积分

注册会员

积分
92
发表于 2024-4-26 14:15:13 | 显示全部楼层
感谢分享,受益匪浅!

1

主题

57

回帖

137

积分

注册会员

积分
137
发表于 2024-4-27 05:44:00 | 显示全部楼层
谢谢你的提醒,我会注意的。

0

主题

55

回帖

111

积分

注册会员

积分
111
发表于 2024-6-19 02:36:55 | 显示全部楼层
好用好用

0

主题

52

回帖

104

积分

注册会员

积分
104
发表于 2024-6-28 11:40:43 | 显示全部楼层
谢谢你分享这个信息

2

主题

54

回帖

154

积分

注册会员

积分
154
发表于 2024-7-6 17:17:43 | 显示全部楼层
我不太确定,可能需要再确认一下。

0

主题

51

回帖

103

积分

注册会员

积分
103
发表于 2024-7-25 05:22:10 | 显示全部楼层
确实牛逼

0

主题

44

回帖

87

积分

注册会员

积分
87
发表于 2024-7-28 10:52:46 | 显示全部楼层
6666666666

1

主题

49

回帖

121

积分

注册会员

积分
121
发表于 2024-7-29 18:23:54 | 显示全部楼层
我们一起努力,共同解决问题吧。

1

主题

57

回帖

137

积分

注册会员

积分
137
发表于 2024-8-20 22:22:18 | 显示全部楼层
太棒了!感谢分享这个信息!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|爱云论坛 - d.taiji888.cn - 技术学习 免费资源分享 ( 蜀ICP备2022010826号 )|天天打卡

GMT+8, 2024-11-15 05:14 , Processed in 0.093717 second(s), 27 queries .

Powered by i云网络 Licensed

© 2023-2028 正版授权

快速回复 返回顶部 返回列表