云网牛站
所在位置:首页 > Linux云服务器 > 如何在Ubuntu 18.04上安装并保护phpMyAdmin

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

2018-05-28 11:35:29作者:MTPAS稿源:技术啦

在本文中我们将介绍如何安装和保护phpMyAdmin,以便您可以安全地使用它来管理Ubuntu 18.04系统上的数据库。

虽然许多用户需要像MySQL这样的数据库管理系统的功能,但他们可能不愿意仅仅从MySQL提示符与系统进行交互。创建了phpMyAdmin,以便用户可以通过Web界面与MySQL进行交互。

 

先决条件

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

首先,我们假设您的服务器拥有一个拥有特权的非root用户sudo,并且配置了防火墙ufw.

我们还会假设您已经在Ubuntu 18.04服务器上安装了LAMP(Linux,Apache,MySQL和PHP)安装。

最后,使用像phpMyAdmin这样的软件时有一些重要的安全考虑,因为它:

1.直接与您的MySQL安装进行通信

2.使用MySQL凭证处理认证

3.执行并返回任意SQL查询的结果

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

完成这些步骤后,即可开始使用本指南。

 

第1步、安装phpMyAdmin

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

这是通过更新服务器的软件包索引,然后使用apt打包系统来下载文件并将它们安装到系统上来完成的:

sudo apt update

sudo apt install phpmyadmin php-mbstring php-gettext

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

警告:出现提示时,“Apache2的”被选中,但没有选中。如果您没有SPACE选择Apache,则安装过程中安装程序不会移动必要的文件。点击SPACE,TAB然后ENTER选择Apache。

对于服务器选择,请选择 apache2

选择Yes当被问及是否使用dbconfig-common建立数据库

然后您将被要求选择并确认phpMyAdmin的MySQL应用程序密码

安装过程将phpMyAdmin Apache配置文件添加到/etc/apache2/conf-enabled/目录中,并在其中自动读取。您需要做的唯一事情就是明确地启用mbstringPHP扩展,您可以通过输入以下命令来完成该扩展:

sudo phpenmod mbstring

之后,重新启动Apache以使您的更改得到识别:

sudo systemctl restart apache2

现在已安装并配置phpMyAdmin。但是,在您登录并开始与MySQL数据库交互之前,您需要确保您的MySQL用户具有与该程序进行交互所需的权限。

 

第2步、调整用户身份验证和权限

当您将phpMyAdmin安装到您的服务器上时,它会自动创建一个数据库用户phpmyadmin,该用户为该程序执行某些基础进程。不是以安装期间设置的管理密码作为此用户登录,建议您以root用户的MySQL用户身份或专门用于通过phpMyAdmin界面管理数据库的用户身份登录。

为MySQL根帐户配置密码访问

在运行MySQL 5.7(及更高版本)的Ubuntu系统中,根MySQL用户auth_socket默认使用插件进行身份验证,而不是使用密码进行身份验证。这在许多情况下允许更高的安全性和可用性,但是当您需要允许外部程序(如phpMyAdmin)访问用户时,这也会使事情变得复杂。

为了以root用户身份登录到phpMyAdmin auth_socket,mysql_native_password如果您尚未这样做,您需要将其身份验证方法从。为此,请从终端打开MySQL提示符:

sudo mysql

接下来,使用以下命令检查每个MySQL用户帐户使用的身份验证方法:

SELECT user,authentication_string,plugin,host FROM mysql.user;

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

在这个例子中,你可以看到root用户确实使用auth_socket插件进行了身份验证。要配置root帐户以使用密码进行身份验证,请运行以下ALTER USER命令。请务必更改password为您选择的强密码:

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';

然后,运行FLUSH PRIVILEGES它告诉服务器重新加载授权表并使新的更改生效:

FLUSH PRIVILEGES;

再次检查每个用户使用的身份验证方法,以确认root不再使用该auth_socket插件进行身份验证:

SELECT user,authentication_string,plugin,host FROM mysql.user;

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

您可以从此输出中看到root用户将使用密码进行身份验证。您现在可以使用您在此设置的密码以root用户身份登录到phpMyAdmin界面。

为专用MySQL用户配置密码访问

另外,有些人可能会发现,它更适合他们的工作流程,以专用用户连接到phpMyAdmin。要做到这一点,再次打开MySQL shell:

sudo mysql

注意:如果您启用了密码认证,如前一节所述,您将需要使用其他命令来访问MySQL shell。以下将以常规用户权限运行您的MySQL客户端,并且您将只通过身份验证获得数据库中的管理员权限:

mysql -u root -p

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

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

然后,授予您的新用户适当的权限。例如,您可以授予用户数据库中所有表的权限,以及使用以下命令添加,更改和删除用户权限的权限:

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

之后,退出MySQL shell:

exit

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

https://your_domain_or_IP/phpmyadmin

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

以root身份或使用刚配置的新用户名和密码登录界面。

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

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

既然您可以连接并与phpMyAdmin进行交互,那么您所要做的就是强化您的系统安全性,以防止攻击者进入。

 

第3步、保护您的phpMyAdmin实例

由于其无处不在,phpMyAdmin是攻击者的流行目标,您应该格外小心,以防止未经授权的访问。这样做的最简单方法之一是使用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为应用程序启用了使用,则需要创建一个才能真正实现某种安全性。

为了成功,该文件必须在应用程序目录中创建。您可以创建必要的文件,并使用root权限在文本编辑器中打开它,方法是键入以下命令:

sudo nano /usr/share/phpmyadmin/.htaccess

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

/usr/share/phpmyadmin/.htaccess

AuthType Basic

AuthName "Restricted Files"

AuthUserFile /etc/phpmyadmin/.htpasswd

Require valid-user

以下是每条线的含义:

1.AuthType Basic:该行指定您正在实施的认证类型。这种类型将使用密码文件实现密码认证。

2.AuthName:这设置了认证对话框的消息。您应该保留这种通用名称,以便未经授权的用户不会获得有关受保护内容的任何信息。

3.AuthUserFile:这设置将用于认证的密码文件的位置。这应该在正在服务的目录之外。我们很快就会创建这个文件。

4.Require valid-user:这指定只有经过身份验证的用户才能访问此资源。这实际上阻止了未经授权的用户进入。

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

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

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

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

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

sudo htpasswd /etc/phpmyadmin/.htpasswd additionaluser

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

https://domain_name_or_IP/phpmyadmin

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

进入Apache身份验证后,您将进入常规phpMyAdmin身份验证页面输入您的MySQL凭证。这个设置增加了一个额外的安全层,这是因为phpMyAdmin过去曾经遭受漏洞攻击。

 

结论

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

 

相关主题

详细步骤,如何在Ubuntu 18.04中安装MySQL 8服务器

精选文章
热门文章