如何在 Ubuntu 16.04 上安装并保护 phpMyAdmin

介绍

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

在本指南中,我们将讨论如何安装和保护phpMyAdmin,以便您可以安全地使用它来管理您的数据库从Ubuntu 16.04系统。

前提条件

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

首先,我们将假设您正在使用具有 sudo 特权的非根用户,如在 Ubuntu 16.04 初始服务器设置中的步骤 1 到 4 中所述(https://digitalocean.com/community/articles/initial-server-setup-with-ubuntu-16-04)。

我们也将假设您已在 Ubuntu 16.04 服务器上完成了 LAMP (Linux, Apache, MySQL 和 PHP) 安装。

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

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

出于这些原因,并且因为它是一个广泛部署的PHP应用程序,经常针对攻击,你不应该在远程系统上运行phpMyAdmin通过简单的HTTP连接。

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

第一步:安装 phpMyAdmin

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

我们可以通过更新我们的本地包索引,然后使用apt包装系统将文件拖下来并安装到我们的系统:

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

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

<$>[警告] 警告: 当第一个提示出现时,apache2被突出,但 未选择 如果您没有点击 ** Space**以选择Apache,安装程序将在安装过程中移动所需的文件。

  • 对于服务器的选择,请选择 apache2 .
  • 当被问及是否使用dbconfig-common来设置数据库时,请选择 **
  • 您将被要求提供您的数据库管理员的密码
  • 您将被要求选择并确认为phpMyAdmin应用程序本身的密码。

安装过程实际上会将 phpMyAdmin Apache 配置文件添加到 /etc/apache2/conf-enabled/ 目录中,在那里它会自动读取。

我们唯一需要做的就是明确启用PHP的mcryptmbstring扩展,我们可以通过键入这样做:

1sudo phpenmod mcrypt
2sudo phpenmod mbstring

之后,您需要重新启动 Apache 才能识别您的更改:

1sudo systemctl restart apache2

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

1https://domain_name_or_IP/phpmyadmin

phpMyAdmin login screen

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

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

phpMyAdmin user interface

步骤二:保护您的 phpMyAdmin 实例

我们能够让我们的 phpMyAdmin 接口相当轻松地运行,但我们还没有完成,因为它的普遍性, phpMyAdmin 是攻击者的热门目标,我们应该采取额外的步骤来防止未经授权的访问。

最简单的方法之一是将网关放置在整个应用程序前面,我们可以使用Apache内置的.htaccess身份验证和授权功能来做到这一点。

配置 Apache 以允许.htaccess 转移

首先,我们需要通过编辑我们的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 文件

现在我们已经为我们的应用程序启用了.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: 此规定只允许授权的用户访问此资源。

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

创建.htpasswd 文件用于身份验证

我们为我们的密码文件选择的位置是``/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 身份验证页面来输入您的其他身份验证信息,这将增加一个额外的安全层,因为 phpMyAdmin 在过去曾遭受过漏洞。

结论

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

Published At
Categories with 技术
comments powered by Disqus