特别是初学者渗透测试人员通常不太重视数据库安全性。没有数据库配置和安全测试的应用程序是不安全的。您可能已经在使用 MySQL 软件,这是一种数据库管理系统,那么如何才能使它更安全呢?以下是您需要遵循的七个步骤。
1.使用 SSH 隧道代替远程连接
默认情况下,MySQL 服务在端口 3306 上运行。当你安装 MySQL 时,你会看到端口 3306 对所有连接都处于侦听模式。就目前而言,MySQL 端口是对外开放的。这就是为什么您应该将 MySQL 服务设置为仅侦听本地地址。 由于服务器通常在 Linux 发行版上运行,因此下面的示例基于 Debian 发行版。您需要用于 SSH 隧道而不是远程连接并关闭与外界的默认端口的文件是/etc/mysql/my.cnf。在这个文件中,您需要打开一个名为[mysqld]的字段并编写以下命令: [mysqld] bind-address=127.0.0.1
在此过程之后,不要忘记保存此文件并使用以下命令重新启动服务:```
sudo systemctl restart mysqld
or
sudo systemctl restart mariadb.service这样,MySQL 服务将只监听本地地址。 如果您使用的是 MariaDB,您还可以检查/etc/mysql/mariadb.conf.d/50-server.cnf 并检查是否有 bind-address 的定义。 ![setting-bind-address-in-mysql-configuration-file](https://cdn.yihuo.tech/wp-content/uploads/2022/12/8efa22394475fa1.jpg) 现在您已将绑定地址设置为 127.0.0.1,即 localhost,您可以运行 Nmap 扫描并检查输出: ![Using-nmap-to-check-bind-address-setting](https://cdn.yihuo.tech/wp-content/uploads/2022/12/a530a2b060ed033.jpg) 您可以看到 MySQL 端口,因为 127.0.0.1 代表您看到的本地主机。您可以尝试再次更改绑定地址以确保其有效:
[mysqld]
bind-address=127.5.5.1
1 |
|
5.检查 MySQL 本地文件权限
假设您是一名数据库管理员,您想要返回一周前的数据。在这种情况下,您可能必须通过 SSH 连接到数据库服务器并更改所需的 MySQL 文件。在执行此操作时,您可能已经使用了 Linux 的 root 用户权限;也就是说,数据文件的所有权和权限可以更改。你不想要那个。 查看 /var/lib/mysql 目录以检查授予的权限。这里需要检查的是所有文件的所有者是否是 MySQL 用户。以下命令可以解决问题:```
sudo ls -al /var/lib/mysql
6.使用 MySQL SSL
--------------
思考具体示例是理解 MySQL 和 SSL 用法的最佳方式。想象一下,在 ABC 地区,有许多不同的服务器,其中一台服务器被恶意黑客接管了。黑客将在 ABC 区域进行内部扫描。通过这种方式,他们收集有关服务器的信息。 如果他们在此过程中检测到 MySQL 服务器,他们可以对目标服务器执行中间人 (MitM) 攻击,这意味着他们可以窃取连接到该服务器的应用程序和用户的会话信息。避免这种情况的最佳方法之一是在 MySQL 服务器上启用 SSL。
7.日志和历史文件
---------
您使用 MySQL 日志来分析和查找错误。您可以通过输入 my.cnf 来编辑这些日志的保存位置,如下所示:```
# /etc/mysql/my.cnf
[mysqld]
log =/var/log/mylogfiles
```您可以根据需要更改 mylogfiles 名称或位置。您还需要检查一份文件。当您在 Linux 终端中连接到 MySQL 服务器并键入各种命令时,这些查询将保存在 mysql\_history 文件中。如果运行以下命令,您可以在 MySQL 终端中看到您正在使用的查询:```
cat ~/.mysql_history
```如果您不想提供有关您在服务器内部进行的查询类型的信息,则需要删除此文件的内容。使用以下命令删除文件内容:```
sudo echo "cleaned" > ~/.mysql_history
```然后您可以再次检查文件内容。
谁拥有数据库,谁就拥有系统
-------------
无论您在哪个行业工作,您的数据库始终包含重要信息。这可以是您的客户、银行帐户和密码。恶意攻击者知道这些的重要性和价值。数据库开发人员和管理员至少需要了解他们将在渗透测试中遇到的基础知识,才能打败黑客。