如何安装和在Ubuntu 16.04 phpMyAdmin的安全

虽然很多用户需要访问数据库管理系统,如MySQL,并不是所有的用户感到舒服每天都在MySQL的提示进行交互。在本指南中,我们将讨论如何安装并固定phpMyAdmin的,一个网页管理接口的MySQL,一个Ubuntu 16.04服务器上。

介绍

虽然许多用户需要一个数据库管理系统的功能,如MySQL,他们可能不舒服与系统交互,只是从MySQL提示。

phpMyAdmin的创建,使用户可以通过Web界面与MySQL进行交互。 在本指南中,我们将讨论如何安装和保护phpMyAdmin,以便您可以安全地使用它来从Ubuntu 16.04系统管理数据库。

先决条件

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

首先,我们假设你正在使用非root用户使用sudo权限,如在第1步-4中所述的Ubuntu 16.04的初始服务器设置

我们还将假设您已经在Ubuntu 16.04服务器上完成了一个LAMP(Linux,Apache,MySQL和PHP)安装。 如果还没有完成,你可以按照本指南在Ubuntu 16.04安装LAMP

最后,当使用像phpMyAdmin这样的软件时,有一些重要的安全注意事项,因为它:

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

由于这些原因,并且因为它是一个广泛部署的PHP应用程序,经常攻击的目标,你不应该在远程系统上通过纯HTTP连接运行phpMyAdmin。 如果你没有使用SSL / TLS证书配置的现有域,您可以按照本指南以让我们在Ubuntu 16.04加密保护的Apache

完成这些步骤后,您就可以开始使用本指南了。

第一步 - 安装phpMyAdmin

要开始,我们可以从默认的Ubuntu存储库安装phpMyAdmin。

我们可以通过更新本地软件包索引,然后使用做到这一点apt包装系统拉下文件和我们的系统上安装它们:

sudo apt-get update
sudo apt-get install phpmyadmin php-mbstring php-gettext

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

警告:当第一次提示时,Apache2的高亮显示,但未被选中。 如果你不打空格键选择了Apache,安装程序将无法安装过程中移动所需的文件。 空格制表符 ,然后回车 ,选择Apache的。

  • 对于服务器的选择,选择的Apache2。
  • 当被问及选择是否使用dbconfig-common建立数据库
  • 将提示您输入数据库管理员的密码
  • 然后,您会被要求选择并确认密码, phpMyAdmin应用程序本身

安装过程实际上增加了phpMyAdmin的Apache配置文件复制到/etc/apache2/conf-enabled/目录中,它会自动读取。

我们需要做的是明确允许PHP唯一mcryptmbstring扩展,我们可以通过打字这样做:

sudo phpenmod mcrypt
sudo phpenmod mbstring

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

sudo systemctl restart apache2

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

https://domain_name_or_IP/phpmyadmin

phpMyAdmin登录屏幕

您现在可以登录到使用界面root用户名和你的MySQL安装过程中设置的管理密码。

当您登录时,您将看到用户界面,它将如下所示:

phpMyAdmin用户界面

第二步 - 保护您的phpMyAdmin实例

我们能够使我们的phpMyAdmin接口运行起来相当容易。 但是,我们还没有完成。 因为它的无所不在,phpMyAdmin是攻击者的流行目标。 我们应该采取额外的措施,以防止未经授权的访问。

执行此操作的最简单的方法之一是在整个应用程序前放置一个网关。 我们可以使用Apache的内置做到这一点.htaccess验证和授权功能。

将Apache配置为允许.htaccess覆盖

首先,我们需要启用使用.htaccess通过编辑我们的Apache配置文件,文件覆盖。

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

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

我们需要添加一个AllowOverride All的内指令<Directory /usr/share/phpmyadmin>配置文件的部分,如下所示:

/etc/apache2/conf-available/phpmyadmin.conf
<Directory /usr/share/phpmyadmin>
    Options FollowSymLinks
    DirectoryIndex index.php
    AllowOverride All
    . . .

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

要实现所做的更改,请重新启动Apache:

sudo systemctl restart apache2

创建.htaccess文件

现在,我们已经启用.htaccess使用我们的应用,我们需要创建一个实际执行一些安全。

为了成功,必须在应用程序目录中创建文件。 我们可以创建必要的文件,并在我们的文本编辑器中使用root权限打开它:

sudo nano /usr/share/phpmyadmin/.htaccess

在此文件中,我们需要输入以下信息:

/usr/share/phpmyadmin/.htaccess
AuthType Basic
AuthName "Restricted Files"
AuthUserFile /etc/phpmyadmin/.htpasswd
Require valid-user

让我们来看看这些行的含义:

  • AuthType Basic :该行指定,我们正在实施的认证类型。 此类型将使用密码文件实施密码认证。
  • AuthName :设定身份验证对话框中的消息。 您应该保留此通用名称,以便未经授权的用户不会获得有关受保护的任何信息。
  • AuthUserFile :这个设置要用于身份验证的密码文件的位置。 这应该在正在提供的目录之外。 我们将很快创建此文件。
  • Require valid-user :指定只有认证用户应能使用这些资源。 这是什么实际阻止未经授权的用户进入。

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

创建用于验证的.htpasswd文件

现在,我们已经通过使用指定为我们的密码文件的位置AuthUserFile我们内部指令.htaccess文件,我们需要创建这个文件。

我们实际上需要一个额外的包来完成这个过程。 我们可以从我们的默认存储库安装:

sudo apt-get install apache2-utils

随后,我们将有htpasswd工具可用。

我们选择的密码文件的位置是“ /etc/phpmyadmin/.htpasswd ”。 让我们创建此文件,并通过键入以下内容将其传递给初始用户:

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

系统将提示您选择并确认正在创建的用户的密码。 然后,使用您输入的哈希密码创建文件。

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

sudo htpasswd /etc/phpmyadmin/.htpasswd additionaluser

现在,当您访问您的phpMyAdmin子目录时,系统将提示您输入刚才配置的其他帐户名和密码:

https://domain_name_or_IP/phpmyadmin

phpMyAdmin apache密码

输入Apache身份验证后,您将进入常规的phpMyAdmin身份验证页面输入其他凭据。 这将增加一个额外的安全层,因为phpMyAdmin过去遭受了漏洞。

结论

您现在应该配置phpMyAdmin并准备在您的Ubuntu 16.04服务器上使用。 使用此接口,您可以轻松地创建数据库,用户,表等,并执行常见的操作,如删除和修改结构和数据。