如何在 Debian 9 上安装并保护 phpMyAdmin

介绍

虽然许多用户需要像MariaDB这样的数据库管理系统的功能,但他们可能并不感到舒适地与系统单独从MariaDB提示器进行交互。

phpMyAdmin是为了让用户可以通过 Web 界面与 MariaDB 进行交互而创建的,在本指南中,我们将讨论如何安装和保护 phpMyAdmin,以便您可以安全地使用它来管理 Debian 9 系统上的数据库。

前提条件

在您开始使用本指南之前,您需要完成一些基本步骤。

首先,我们将假设您的服务器有一个具有sudo权限的非root 用户,以及与ufw配置的防火墙,如在Debian 9的初始服务器安装指南中所描述的(https://andsky.com/tech/tutorials/initial-server-setup-with-debian-9)。

我们还将假设您已在您的 Debian 9 服务器上完成了 LAMP (Linux, Apache, MariaDB 和 PHP) 安装。

最后,在使用phpMyAdmin等软件时,有重要的安全考虑,因为它:

  • 直接与您的 MariaDB 安装进行通信
  • 使用 MariaDB 凭证处理身份验证
  • 执行并返回任意 SQL 查询的结果

出于这些原因,并且因为它是一个广泛部署的PHP应用程序,通常是针对攻击的,你不应该在远程系统上运行phpMyAdmin通过简单的HTTP连接. 如果你没有一个现有的域配置与SSL/TLS证书,你可以遵循这个指南在 保护Apache使用Debian 9的Let's Encrypt

一旦你完成了这些步骤,你已经准备好开始这个指南。

第1步:安装phpMyAdmin

要开始,我们将从默认的 Debian 存储库中安装 phpMyAdmin。

这样做是通过更新您的服务器的包索引,然后使用apt包装系统将文件拖下来并在您的系统上安装:

1sudo apt update
2sudo apt install phpmyadmin php-mbstring php-gettext

这将问你几个问题,以便正确配置您的安装。

<$>[警告] 警告: 当提示出现时,将突出显示apache2,但没有选择 ** 如果您没有按SPACE来选择Apache,安装程序将在安装过程中移动所需的文件。

  • 对于服务器选择,请选择 apache2
  • 当被问及是否使用 dbconfig-common 来设置数据库 时,请选择并确认 phpMyAdmin 的 MySQL 应用程序密码

<$>[注] 注: MariaDB 是一个社区开发的 MySQL 叉子,虽然这两个程序是密切相关的,但它们不是完全可互换的.虽然 phpMyAdmin 专门用于管理 MySQL 数据库,并在各种对话框中引用 MySQL,请放心,您的 MariaDB 安装将与 phpMyAdmin 正常工作。

安装过程会将 phpMyAdmin Apache 配置文件添加到 /etc/apache2/conf-enabled/ 目录中,在那里它会自动读取。您唯一需要做的就是明确启用 mbstring PHP 扩展,用于管理非 ASCII 字符串并将字符串转换为不同的编码。

1sudo phpenmod mbstring

之后,重新启动 Apache,以便您的更改被识别:

1sudo systemctl restart apache2

但是,在您能够登录并开始管理 MariaDB 数据库之前,您需要确保您的 MariaDB 用户具有与该程序进行交互所需的权限。

步骤 2 – 调整用户身份验证和特权

当您在您的服务器上安装 phpMyAdmin 时,它会自动创建一个名为phpmyadmin的数据库用户,该用户会执行该程序的某些基本流程。

在 Debian 系统上的新安装中, root MariaDB 用户被设置为默认使用 unix_socket 插件而不是使用密码进行身份验证,这在许多情况下允许更大的安全性和可用性,但当您需要允许外部程序(如 phpMyAdmin)通过该用户进行管理权限时,这也可能使事情变得复杂。

如果您遵循了 安装 LAMP 堆栈的前提教程,并按照步骤 2 所述创建了一个 MariaDB 用户帐户,您可以通过访问此链接登录该帐户中的 phpMyAdmin,使用您在设置时创建的密码:

1https://your_domain_or_IP/phpmyadmin

如果您尚未创建 MariaDB 用户,或者您想要创建另一个用户,只是为了通过 phpMyAdmin 管理数据库,请继续本节以了解如何设置一个。

首先,打开 MariaDB 壳:

1sudo mariadb

<$>[注] 注: 如果您已启用了密码身份验证,就像您已经为您的MariaDB服务器创建了新用户帐户一样,您需要使用不同的命令访问MariaDB壳。

1mariadb -u user -p

美元

从那里,创建一个新的用户,并给它一个强大的密码:

1CREATE USER 'sammy'@'localhost' IDENTIFIED BY 'password';

例如,您可以向数据库中的所有表授予用户权限,以及使用此命令添加、更改和删除用户权限的权限:

1GRANT ALL PRIVILEGES ON *.* TO 'sammy'@'localhost' WITH GRANT OPTION;

接下来,输出 MariaDB 壳:

1exit

您现在可以通过访问您的服务器的域名或公共 IP 地址访问 Web 界面,然后是 /phpmyadmin:

1https://your_domain_or_IP/phpmyadmin

phpMyAdmin login screen

使用您配置的用户名和密码登录接口。

当您登录时,您将看到用户界面,它将看起来像这样:

phpMyAdmin user interface

现在你可以连接和与phpMyAdmin进行交互,剩下的只是加强系统的安全性,以保护它免受攻击者攻击。

步骤 3 – 保护您的 phpMyAdmin 实例

由于它的普遍性,phpMyAdmin是攻击者最受欢迎的目标,你应该特别小心,以防止未经授权的访问。

要做到这一点,您必须首先通过编辑 Apache 配置文件来启用使用.htaccess 文件翻译。

编辑已放置在您的 Apache 配置目录中的链接文件:

1sudo nano /etc/apache2/conf-available/phpmyadmin.conf

在配置文件的<Directory /usr/share/phpmyadmin>部分中添加一个AllowOverride All指令,如下:

1[label /etc/apache2/conf-available/phpmyadmin.conf]
2<Directory /usr/share/phpmyadmin>
3    Options FollowSymLinks
4    DirectoryIndex index.php
5    AllowOverride All
6    . . .

添加此行后,保存并关闭文件。

要执行所做的更改,请重新启动 Apache:

1sudo systemctl restart apache2

现在,您已为您的应用程序启用了.htaccess的使用,您需要创建一个实际实现某些安全性。

要做到这一点,必须在应用程序目录中创建文件,您可以创建必要的文件,并在您的文本编辑器中打开它,通过键入:

1sudo nano /usr/share/phpmyadmin/.htaccess

在此文件中,输入以下信息:

1[label /usr/share/phpmyadmin/.htaccess]
2AuthType Basic
3AuthName "Restricted Files"
4AuthUserFile /etc/phpmyadmin/.htpasswd
5Require valid-user

以下是每个线条的含义:

  • AuthType Basic: 此行指定您正在实施的身份验证类型. 此类型将使用密码文件执行密码身份验证。
  • AuthName: 此设置了身份验证对话框的信息。 您应该保留此通用信息,以便未经授权的用户不会获取任何有关被保护的东西的信息。
  • AuthUserFile: 此设置了用于身份验证的密码文件的位置。 这应该在被服务的目录之外。 我们将很快创建此文件。
  • Require valid-user: 此规定只允许授权的用户访问此资源。

完成后,保存并关闭文件。

您为您的密码文件选择的位置是 /etc/phpmyadmin/.htpasswd. 您现在可以创建此文件并通过 htpasswd 实用程序将其传递给初始用户:

1sudo htpasswd -c /etc/phpmyadmin/.htpasswd username

您将被要求选择并确认您正在创建的用户的密码。

如果你想输入一个额外的用户,你需要这样做 没有-c旗,如下:

1sudo htpasswd /etc/phpmyadmin/.htpasswd additionaluser

现在,当您访问您的 phpMyAdmin 子目录时,您将被提示提供您刚刚配置的额外帐户名称和密码:

1https://domain_name_or_IP/phpmyadmin

phpMyAdmin apache password

输入 Apache 身份验证后,您将被带到常规的 phpMyAdmin 身份验证页面,以输入您的 MariaDB 凭证。

结论

您现在应该在您的 Debian 9 服务器上配置并准备使用 phpMyAdmin. 使用此界面,您可以轻松创建数据库,用户,表等,并执行通常的操作,如删除和修改结构和数据。

Published At
Categories with 技术
comments powered by Disqus