MySQL 是天下上最盛行的开源数据库体系,MariaDB(一个 MySQL 分支)是天下上增长最快的开源数据库体系。在安装 MySQL 服务器之后,在默认设置下是不安全的,确保数据库安全通常是通用数据库管理的根本任务之一。 这将有助于增强和提升整个 Linux 服务器的安全性,因为攻击者总是扫描体系恣意部分的毛病,而数据库在过去是重点目的区域。一个常见的例子是对 MySQL 数据库的 root 暗码的强制破解。 在本指南中,我们将会讲解对开发者有帮助的 MySQL/MariaDB 的 Linux 最佳安全实践。 1. 安全地安装 MySQL 这是安装 MySQL 服务器后第一个发起的步调,用于掩护数据库服务器。这个脚本可以帮助您进步 MySQL 服务器的安全性: ·假如您在安装期间没有设置 root 帐户的暗码,马上设置它 ·通过删除可从当地主机外部访问的 root 帐户来禁用远程 root 用户登录 ·删除匿名用户帐户和测试数据库,默认环境下,所有效户、甚至匿名用户都可以访问这些帐户和测试数据库 [code] # mysql_secure_installation[/code]在运行上述下令之后,设置 root 暗码并通过输入 [Yes/Y] 和按下 [Enter] 键往返复一系列问题。 安全安装 MySQL 环地步面 2. 将数据库服务器绑定到 Loopback 地点 此设置将限定来自远程呆板的访问,它告诉 MySQL 服务器只继承来自当地主机的连接。你可以在主设置文件中进行设置。 [code] # vi /etc/my.cnf [RHEL/CentOS] # vi /etc/mysql/my.conf [Debian/Ubuntu] OR # vi /etc/mysql/mysql.conf.d/mysqld.cnf [Debian/Ubuntu][/code]在 [mysqld] 部分中添加下面这一行 [code] bind-address = 127.0.0.1[/code]3. 禁用 MySQL 的 LOCAL INFILE 作为安全性增强的一部分,您需要禁用 local_infile,利用下面的指令以防止在 [mysqld] 部分从 MySQL 中访问底层文件体系。 [code] local-infile=0[/code]4. 修改 MySQL 的默认端口 设置端口变量用于监听 TCP/IP 连接的 MySQL 端口号。默认端口号是 3306,但是您可以在 [mysqld] 中修改它。 [code] Port=5000[/code]5. 启用 MySQL 日志 日志是相识服务运行过程中发生了什么的最好的方法之一,在受到任何攻击的时候都可以很容易的从日志里看到任何入侵相关的举动。可以通过将下边的变量添加到设置文件[mysqld]部分来开启mysql日志功能。 [code] log=/var/log/mysql.log[/code]6. 设置合适的 MySQL 文件的访问权限 确保你已经为所有的 mysql 服务文件和数据路径设置了合适的访问权限。文件 /etc/my.conf 只能由 root 用户修改,这样就可以制止其他用户修改数据库服务的设置。 [code] # chmod 644 /etc/my.cnf[/code]7. 删除 MySQL shell 汗青 你在 MySQL shell 中执行的所有的下令都会被 mysql 客户端生存到一个汗青文件:~/.mysql_history。这样是很危险的,因为对于你创建过的任何用户账户,所有的在 shell 输入过的用户名和暗码都会记录到汗青文件内里。 [code] # cat /dev/null > ~/.mysql_history[/code]8. 不要在下令行中运行 MySQL 下令 正如你所知道的,你在终端上输入的所有下令都会被存储在一个汗青文件中,具体取决于你正在利用的shell(例如 bash 的 shell 汗青文件放在 ~/.bash_history)。攻击者访问这个汗青文件可以很容易地看到记录在那里的任何暗码。 非常不发起在下令行内里输入暗码,如下: [code] # mysql -u root -ppassword_[/code]利用暗码连接 MySQL 当你查察下令行汗青文件的最后的部分时,可以看到之前输入过的暗码。 [code] # history[/code]查察下令行输入汗青 保举连接 MySQL 的方式是 [code] # mysql -u root -p Enter password:[/code]9. 定义特定应用的数据库用户 对于每一个在服务器上运行的应用,只设置一个与该应用相关的数据库用户。例如你有一个 wordpress 网站,如下创建一个 wordpress 的数据库用户: [code] # mysql -u root -p MariaDB [(none)]> CREATE DATABASE osclass_db; MariaDB [(none)]> CREATE USER 'osclassdmin'@'localhost' IDENTIFIED BY 'osclass@dmin%!2'; MariaDB [(none)]> GRANT ALL PRIVILEGES ON osclass_db.* TO 'osclassdmin'@'localhost'; MariaDB [(none)]> FLUSH PRIVILEGES; MariaDB [(none)]> exit[/code]而且要记着对于不再利用的数据库用户要删掉。 10. 利用额外的安全插件和库 MySQL 包含许多安全插件:验证客户端连接到 MySQL 服务器的哀求、暗码校验和敏感信息的安全存储等,这些都在免费版本中提供。 在这里可查察更多:https://dev.mysql.com/doc/refman/5.7/en/security-plugins.html 11. 定期修改 MySQL 暗码 定期修改暗码是一个常见的信息/应用/体系安全发起。多久修改一次暗码由你内部的安全战略决定。定期修改暗码可以制止恒久跟踪你的“窥探者”,获取你的暗码,登录你的 MySQL 服务器。 [code] MariaDB [(none)]> USE mysql;MariaDB [(none)]> UPDATE user SET password=PASSWORD('YourPasswordHere') WHERE User='root' AND Host = 'localhost';MariaDB [(none)]> FLUSH PRIVILEGES;[/code]12. 定期更新 MySQL Server 包 强烈发起定期从官方仓库更新 mysql/mariadb 包来获取最新的安全更新和错误改进。通常环境下操作体系中默认的包是过期的。 [code] # yum update # apt update[/code]在对 mysql/mariadb server 进行任何修改之后,要重启服务。 [code] # systemctl restart mariadb #RHEL/CentOS # systemctl restart mysql #Debian/Ubuntu[/code]以上就是脚本之家分享给大家关于浅谈12 条用于 Linux 的 MySQL/MariaDB 安全最佳实践的全部内容,盼望对大家有所帮助。感爱好的朋友可以继续参阅本站其他相关专题,如有不足之处,接待留言指出。感谢朋友们对本站的支持! 来源:https://www.jb51.net/LINUXjishu/596404.html 免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作! |
|手机版|小黑屋|梦想之都-俊月星空
( 粤ICP备18056059号 )|网站地图
GMT+8, 2025-7-2 01:02 , Processed in 0.035397 second(s), 18 queries .
Powered by Mxzdjyxk! X3.5
© 2001-2025 Discuz! Team.